algorithm - 从向量历史预测二进制占用向量

标签 algorithm binary statistics time-series prediction

我有一组二元向量,其中每个向量代表房子里的一天,由 48 个元素组成(每个元素代表一天中的 30 分钟)。每个元素可以为 1 表示房屋被占用,0 表示房屋未被占用。

我的任务是根据同一天的历史预测下一天(星期一从星期一的历史等)。到目前为止,我使用汉明距离来查找历史上最相似的 5 天,并从中计算入住概率作为这 5 个数字的平均值。当概率高于某个 X(在我的例子中为 0.4)时,我预测它会被占用。

但是肯定有一些更有效的方法可以做到这一点,任何算法都可以捕捉历史趋势?

最佳答案

您的方法听起来相当合理(称为 K 最近邻或 KNN),但我不确定您是否使用了正确的距离度量(今天到目前为止的汉明距离)。您的方法对一天的精确结构相当敏感,可能需要很长时间才能适应假期之类的事情,而一天的前几个小时可能过于敏感。

我会尝试对您的方法进行一种更改,即查看过去 24 小时而不是“今天到目前为止”,或者同时使用这两种方法并对结果进行平均。例如,以前的 24 小时方法会很快在休假时开始计算,但是如果用户碰巧在星期三或其他什么时候从未有过假期,那么到目前为止这一天的方法可能会错过假期。这与 rock paper scissors 的概念类似游戏,它会根据您最后四次 throw 来预测下一次 throw 。

我考虑的另一个改变是在汉明距离计算中使用权重。例如,通过 lambda^(-n) 权衡每一位匹配,其中 lambda 是您可以调整的参数(从 1.1 开始),而 n 表示该位表示过去的小时数。

各种分类算法中的任何一种,如支持向量机、逻辑回归、随机森林等,应该也能很好地工作。添加到特征向量的特征:

  • 星期几
  • 小时
  • 这个小时的平均入住率
  • 今天的平均入住率
  • 本次平均入住率(天、小时)
  • N 的各种值的过去占用 N-gram(即前 N 小时的位向量)
  • 是假期吗?
  • 日出后的小时数

最后,对于新用户,可能需要一段时间才能获得足够的训练数据,因此您可能希望拥有两个模型:一个基于所有用户的整体模型和一个单独的用户模型。然后你可以对两个模型的输出进行加权,随着用户模型的权重增加

关于algorithm - 从向量历史预测二进制占用向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16306464/

相关文章:

performance - 无符号 32 位整数在 SSE 中的水平最小值和位置

algorithm - 在程序集中查找子字符串

java - 我应该采用哪种方法来实现这两个 move() 函数?

excel - VBA 数据类型 "Byte"在什么情况下有用?

java - 使用java插入二叉树不起作用

python - 从 numpy 中高斯正态多元分布的某些概率中得出

python - 为什么我收到 TypeError : unsupported operand type(s) for/: 'str' and 'int' ?

python - 如何修复构建可见性图的算法?

algorithm - 设计退休计划算法,搜索退休率 %

statistics - 是否可以使用 Spark Streaming 实时更新值?