【问题标题】:Sales Ranking Algorithm销售排名算法
【发布时间】:2023-03-25 03:28:01
【问题描述】:

我正在尝试根据它们迄今为止的整体销售额和最近 x 天的销售额(以显示趋势、热门产品)来找出对某些产品进行排名的最佳方法

我想做的是同时使用这两个,以便最大的卖家排名很高,但如果他们已经售罄,他们就会被降级(最近没有销售),或者如果他们最近的销售额特别高,他们就会跳起来.

由于它是销售额,不同产品的数字可能相差 10 倍,所以我假设我们需要一个对数刻度。将两者结合起来的最佳方法是什么?

【问题讨论】:

  • "最近 x 天的销售额(显示趋势,热门产品)" 你不会从“最近 x 天的销售额”中得到趋势,趋势是持续的(甚至可能增加)率sale - 函数的一阶导数,不是上一周期的积分(总和)。
  • 我猜趋势这个词是错误的,我们正在比较过去 X 天内销售最好的产品(而不是时间)
  • “哪个卖得最好”——最好的是什么?数量、收入、利润?无论如何,我的建议是使用以下之间的加权平均值:(1) 平均(每天)总体销售额和 (2) 过去 10 天的平均销售额(每天),第二个的权重更高。

标签: algorithm math statistics ranking


【解决方案1】:

我想做的是同时使用这两个,以便最大的卖家排名很高,但如果他们已经售罄,他们就会被降级(最近没有销售),或者如果他们最近的销售额特别高,他们就会跳起来.

一种特别简单的方法是为每个产品维护两个exponential moving averages,一个具有短因子,一个具有长因子。请注意,每个这样的平均值只是通过将当天的平均值乘以某个因子,然后将当天的数字乘以补码因子来简单地更新。

您需要根据您的问题设置这两个因素,但请参阅here,了解此因素与平均有效时间之间的关系。

产品的总分是考虑到这两个平均值的总分。

由于它是销售额,不同产品的数字可能相差 10 倍,所以我假设我们需要一个对数刻度。将两者结合起来的最佳方法是什么?

没有最好的方法 - 您需要尝试不同的选项,并对其进行调整,直到您对结果满意为止。

如果多头和空头的平均值分别是 ls,那么一般的平均方法(不是唯一的!)是 α f(l) + (1 - α) f(s),其中 α[0, 1] 中的某个常数,而 f是一个阻尼函数。您提到了对数作为阻尼函数,但您可能会发现,例如,平方根更适合您的情况(对于小参数或零参数,它的问题也较少)。

【讨论】:

  • 我不确定指数衰减就在这里。要添加更多信息,我们出售的“产品”是活动门票。我们注意到一个 U 形的购买趋势——在第 0 天有大量销售,然后在接近活动日的时候逐渐减少并再次回升。尽管所有这些销售都很重要,但随着时间的推移,它们并没有真正变得不那么重要。我们将始终在同一天比较事件,因此它们都处于公平的竞争环境中,所以重要的是它们的总销售量,对最近的销售量进行加权,只是为了更喜欢那些最近有销售量的产品,超过那些不
  • @Ben 对,您可以使用指数平均值、滑动窗口算术平均值以及整体平均值(这是您刚刚提出的)。甚至不需要短期和长期平均线使用相同的方案。
  • 谢谢@Ami,我可以在任何地方看到一些真实世界的例子来比较哪个可能更合适?
  • @Ben 当然。我会环顾计量经济学和技术指标来寻找灵感。维基百科条目可能是很好的起点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-17
  • 1970-01-01
相关资源
最近更新 更多