0

可以说,在过去的几个月里,我们一直在销售 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-03-29我们添加了一个新产品 - prod_1001。该产品日志的最后一行内容如下:

prod_1001 | 2013-03-29 | 153 | 804,6

问题:我们应该使用什么机器算法来预测这个特定产品在一天结束时会产生的收入?

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

2 回答 2

2

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

  • 一种可能的模型是,每个时间片中都有独立的销售额。将其建模为泊松分布可能是合适的。在此期间产生的钱是单位*销售价格。
  • 在这样的模型中,prod_1001 的所有观测值都提供了泊松参数的似然函数。最大似然估计是所有观察到的时间片中的平均单位销售数量。鉴于此估计,您可以预测在某个新时间段内将销售的单位数量
  • 要对当天剩余时间进行预测,请将泊松参数乘以当天剩余的时间片数。这为您提供了一天剩余时间内将出售的单位数量的分布。此分布的期望值是泊松参数本身,但您可能对其他量感兴趣。
  • 将其乘以单价即可获得您在当天剩余时间里赚到的钱

因此:如果您今天看到 prod_1001 的时间片平均售出 4 个单位,那么您对下一次售出数量的分布是 Poisson(4)。如果产品售价为 4.99 英镑,您在下一个时间片中的预期收入为 19.96 英镑,您赚取超过 8*4.99 英镑 = 39.94 英镑的机会不到 5%,依此类推。如果今天还剩下 50 个时间片,那么您希望今天多赚 50*4*4.99 英镑=998 英镑。

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

于 2013-03-29T09:38:27.537 回答
0

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

邮件列表中的这些链接应该为此事提供一些启示:link1link2。它们来自 2011 年,但我认为它们的信息仍然适用。

基本要点是 Mahout 没有它,但是您可以实现这样的东西并为项目做出贡献,或者使用更适合 R 等任务的统计软件(链接)

于 2013-03-29T09:43:51.337 回答