【问题标题】:Algorithm for ranking with a star rating (1-5) like Amazon?像亚马逊这样的星级(1-5)排名算法?
【发布时间】:2015-02-16 20:37:15
【问题描述】:

我是一名计算机科学专业的学生,​​正在撰写有关替代投票系统的报告。我认为最好的系统之一是排名投票。例如.. 在总统选举中,每位总统的排名为 1-5。 (IMO 美国系统的问题在于,只有对获胜者的投票才算真正的)

只是想知道是否有人知道添加评分的最佳方法?我四处搜索,我知道亚马逊使用加权平均值。我认为将每个“明星”和获胜次数最多的人加起来可能是有意义的。也许更倾向于数学的人可以提出更好的建议?

【问题讨论】:

  • 这取决于你想对总分做些什么。如果你真的在谈论选举,我想你应该阅读社会选择理论。
  • 您可以将“美国系统”更改为“地球上的每个投票系统”(政治系统)

标签: algorithm amazon ranking voting


【解决方案1】:

您可以对评级系统做的一件有趣的事情是让投票通过低通滤波器。这有助于消除极端情况,即 100 人中的一些人只想指责某事。这也有助于减轻那些在最初发布内容后使用自制帐户对产品进行 5 星评价的人。

平均做几乎相同的事情,但低通滤波器可以使投票系统更难或更容易提高排名或保持排名因主题而异。

低通滤波器看起来很简单:

ranks = [2,3,1,2,4,2,1,2,3,4,3,4,2]
y = [ranks[0], ranks[1], ranks[2]]

for(i=2; i<ranks.length; ++i)
    currentRank = .2*ranks[i] + .3*y[2] + .2*y[1] + .3*y[0]
    y.push(currentRank)
    y.shift()

使用这样的滤波器还有其他属性,但这只需要研究数字低通滤波器即可找到那些很酷的属性:)

【讨论】:

    【解决方案2】:

    如果所有项目都有很多评分者,那么取平均值应该会很有效。如果数据稀疏,就会出现问题。例如,假设产品 A 有 1 个 5 星评级,产品 B 有 5 个 5 星和 5 个 4 星评级。我会更信任产品 B,尽管算术平均值较低(4.5 对 5)。

    根本问题是考虑不确定性。直观地说,对于少数评级,我们会考虑先验,该值处于平均范围内。这个excellent blog post 形式化了这个想法并推导出贝叶斯方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-26
      • 1970-01-01
      • 1970-01-01
      • 2011-06-07
      • 1970-01-01
      • 2015-10-20
      • 1970-01-01
      • 2016-11-26
      相关资源
      最近更新 更多