5 algorithm binary statistics time-series prediction
我有一组二进制向量,其中每个向量代表一个房子入住的一天,由48个元素组成(每个元素一天30分钟).每个元素可以是1表示房子被占用,0表示非占用房屋.
我的任务是根据同一天的历史(星期一从星期一的历史等)预测第二天.到目前为止,我正在使用汉明距离找到历史上5个最相似的日子,并从中我计算出占用的概率作为这5个数字的平均值.当概率高于某些X时,在我的情况下为0.4,我预测它会被占用.
但是肯定有一些更有效的方法可以做到这一点,任何可以捕捉历史趋势的算法?
您可能只想保存最近的 N 天,和/或为最近的天分配更大的权重。否则,算法将无法足够快地响应用户习惯的变化。
如果您按时间间隔而不是按位向量比较占用率,您也可能会得到更好的结果 - 通常,房屋将在很长一段时间内有人/无人居住,而不是例如每半小时交替占用。在工作日尤其如此,从早上到晚上,房子将有八(或九,或十)小时无人居住;早上的占用间隔可以很好地预测中午(未)占用间隔,因为如果占用者早或晚去上班,那么他们可能会早或晚回家。如果他们在 10:00 或 11:00 仍然在家,那么他们可能会整天在家(由于生病或度假)。与位向量相比,比较和索引间隔也很容易 - 例如,您可以将日期存储在间隔树中(或者更确切地说,将间隔树转换为树状图),以间隔为键,将日期存储为值,以便快速确定哪些天共享当天的早晨占用间隔。
您将需要两个数据结构:一个间隔树(地图)数组,一周中的每一天一棵树,它使用早上的占用间隔作为键,并使用前几天的集合作为值。该收集需要汇总晚上的入住间隔;任何给定半小时时间段的预测占用率是具有相同早晨占用间隔的前几天的众数(因此,如果您存储了 7 天,其中 5 天预测时间 X 的占用率,则数据结构预测时间 X 的占用率X)。您还需要一个包含所有先前日期的队列,以便可以从间隔树中删除最旧的日期。(作为替代方案,为最近的日子分配更大的权重;但是,这实施起来比较困难,因为您还需要降低较早的日子的权重。)
您可能会发现只需要两棵区间树,一棵用于工作日,一棵用于周末。