如何在评分数量与评分本身之间取得平衡?
问题内容:
对于学校项目,我们将必须实施排名系统。然而,我们计算过,一个愚蠢的排名平均回敬:东西, 一个
用户排名5星将有一个更好的平均的东西188用户评选为4星级,这只是愚蠢。
因此,我想知道你们中是否有人拥有“智能”排名的示例算法。它只需要考虑给定的排名和排名数。
谢谢!
问题答案:
您可以使用受贝叶斯概率启发的方法。该方法的要旨是对某项商品的真实评级有一个初步的信念,并使用用户的评级来更新您的信念。
此方法需要两个参数:
- 如果您根本没有该商品的等级,您认为该商品的真正“默认”等级是什么?将此数字
R
称为“初始信念”。 - 与用户评分相比,您对最初的信念有多大的重视?将此
W
称为,最初的信念是“值得”W
该值的用户评分。
使用参数R
和W
,计算新的评级很简单: 假设您拥有W
价值评级R
以及任何用户评级,然后计算平均值。例如,如果R = 2
和W = 3
,我们将计算以下各种情况的最终分数:
- 100(用户)的评分4:
(3*2 + 100*4) / (3 + 100) = 3.94
- 3个评分为5,1个评分为4:
(3*2 + 3*5 + 1*4) / (3 + 3 + 1) = 3.57
- 10个评分为4:
(3*2 + 10*4) / (3 + 10) = 3.54
- 1个评分为5:
(3*2 + 1*5) / (3 + 1) = 2.75
- 没有用户评分:
(3*2 + 0) / (3 + 0) = 2
- 1个等级为1:
(3*2 + 1*1) / (3 + 1) = 1.75
该计算考虑了用户评分的数量以及这些评分的值。结果,最终分数大致对应于给定数据可以预期的对某项商品的满意程度。
选择 R
当您选择时R
,请考虑对没有评级的商品您愿意接受的价值。如果要立即让每个人都对它进行评分,那么典型的无评分项目实际上是2.4分(满分5分)吗?如果是这样,R = 2.4
将是一个合理的选择。
你应该 不是 在评级范围使用最小值此参数,因为额定极其糟糕,深受用户的项目应该比没有收视率默认项落得“雪上加霜”。
如果要R
使用数据而非仅凭直觉进行选择,则可以使用以下方法:
- 考虑所有至少具有一定用户评分阈值的项目(因此您可以确信平均用户评分是相当准确的)。
- 对于每个项目,假定其“真实分数”是平均用户评分。
- 选择
R
作为那些分数的中位数。
如果您希望对无评级项目更加乐观或悲观,则可以选择R
成为分数的其他百分位数,例如60%(乐观)或40%(悲观)。
选择 W
的选择W
应取决于典型项目的评分数和评分的一致性。W
如果项目自然会获得很多评级,W
则可以更高;如果您对用户评级的信心较低(例如,垃圾邮件发送者活动较高),则可以更高。请注意,该值W
不必为整数,可以小于1。
选择W
比选择更主观R
。但是,以下是一些准则:
- 如果典型项目获得
C
评分,则W
不应超过C
,否则最终评分将比R
实际用户评分更依赖。取而代之的是,W
应该接近的一小部分C
,也许介于C/20
和之间C/5
(取决于噪音等级或“垃圾邮件”等级)。 - 如果历史评级通常(对于单个项目)是一致的,则
W
应该相对较小。另一方面,如果某项的评分差异很大,则W
应该相对较大。您可以将这种算法视为“吸收”W
异常高或低的评级,从而将这些评级转变为更中等的评级。 - 在极端情况下,设置
W = 0
等同于仅使用用户评分的平均值。设置W = infinity
等同于宣布每个项目的真实评级为R
,而不考虑用户的评级。显然,这些极端都不适合。 - 设置
W
得太大可能会导致偏爱具有较高中等偏高评分的项目而不是异常偏高的偏少评分的项目。