Statistics 预测算法:时间序列

Statistics 预测算法:时间序列,statistics,machine-learning,prediction,Statistics,Machine Learning,Prediction,假设在过去的几个月里,我们已经销售了1000种不同的产品。我们每5分钟记录一次每种产品的“性能”(即它产生了多少钱)。一天有288段5分钟。我们的日志如下所示: prod_1 | 2013-03-28 | 1 | 0 prod_1 | 2013-03-28 | 2 | 9.90 prod_1 | 2013-03-28 | 3 | 19.80 prod_1 | 2013-03-28 | 4 | 19.80 ... prod_1 | 2013-03-28 | 287 | 2326.5 prod_1

假设在过去的几个月里,我们已经销售了1000种不同的产品。我们每5分钟记录一次每种产品的“性能”(即它产生了多少钱)。一天有288段5分钟。我们的日志如下所示:

prod_1 | 2013-03-28 | 1 | 0
prod_1 | 2013-03-28 | 2 | 9.90
prod_1 | 2013-03-28 | 3 | 19.80
prod_1 | 2013-03-28 | 4 | 19.80
...
prod_1 | 2013-03-28 | 287 | 2326.5
prod_1 | 2013-03-28 | 288 | 2326.5
因此,在3月28日,我们售出了235台
prod_1
,我们可以画出产品全天的进度曲线。每个产品/日期对都是我们唯一的对象,即我们不连接销售同一产品的不同日期。我们拥有所有产品的相同数据

比如说在2013年3月29日,我们添加了一款新产品-
prod_1001
。本产品日志的最后一行是:

prod_1001 | 2013-03-29 | 153 | 804,6
问题:我们应该使用什么机器算法来预测该特定产品在一天结束时将产生的收入

prod_1001 | 2013-03-29 | 288 | ???

这不是一个算法,但我会对您可能使用的模型类型提出以下建议:

  • 一种可能的模型是,每个时间片都有一个独立的销售数量。将其建模为泊松分布可能是合适的。本期产生的资金为单位*销售价格
  • 在这种模型中,prod_1001的所有观测值都提供了泊松参数的似然函数。最大似然估计是所有观测时间片中单位销售额的平均数。根据这一估计,您将在某个新的时间段内销售的单位数量有一个预测分布
  • 要对一天中剩余的时间进行预测,请将泊松参数乘以一天中剩余的时间片数。这将为您提供一个在一天剩余时间内销售的单位数量分布。这种分布的期望值是泊松参数本身,但您可能对其他数量感兴趣
  • 把这个乘以单位价格,就可以得到一天剩下的时间里你能赚到的钱
因此:如果你今天看到prod_1001在时间片上平均卖出4台,那么你下次卖出多少台的分布就是泊松分布(4)。如果产品售价为4.99英镑,您在下一个时间段的预期收入为19.96英镑,您获得超过8*4.99英镑=39.94英镑等收入的机会不到5%。如果今天剩余50个时间段,则您今天的预期收入为50*4*4.99英镑=998英镑


你可能会问,如何结合从其他产品中收集的知识:我的直觉告诉你,最简单的方法是使用它们来估计泊松参数的先验值。这意味着估计泊松率上伽马分布的两个参数,一个简单的标准是最大化对其他1000个产品的观测可能性。鉴于此,您可以对产品1001的泊松分布进行贝叶斯推断,其作为后验预测分布具有闭合形式

如果不是专家,我的感觉是这是一个问题,据我所知,Mahout没有任何特定的时间序列(我提到这一点是因为您将问题标记为Mahout)

邮件列表中的这些链接应该可以帮助我们了解这件事:。它们来自2011年,但我认为它们的信息仍然是正确的

基本要点是Mahout没有,但是你可以实现这样一件事,为项目做出贡献,或者使用更适合的统计软件来完成任务,比如R