威尔逊五星评级的置信区间

Mic*_*ich 10 algorithm rating

Wilson的Confidence Interval分别将值设为TRUE或FALSE,或"upvotes"和"downvotes".从这些投票中产生一个评级.

出于我的项目的目的,我认为WCI是完美的.然而,标量upvote和downvote不足以描述我评价的东西.

这就是5星评级的地方,这就是我需要有人反驳我的逻辑的地方.现在我想,如果我要用WCI实现5星评级,那么以下应该可以在不破解置信区间内部的情况下工作.

对于评级小部件中的每个星,我们分配一个唯一的整数值.每个值都计为正(upvote)或负(downvote).所以以下值将是:

1/5星:-2 2/5星:-1 3/5星:1 4/5星:2 5/5星:3

总结以上数值.1星的最低投票被归类为2个downvotes.2星投票被列为1投票.对于3星的中等投票,我们给1个upvote.对于4颗星,我们给出2个赞成票.最多5颗星我们给3个赞成票.

请反驳这个逻辑,为什么这不起作用?也许这违反了星级评定系统的"普通人的理解"?

Nik*_*iev 5

很容易想到以下“解决方法”,它将多排名系统转换为二元“赞成/反对”式排名(然后可以使用 Wilson 得分置信区间的下限进行评分):

假设您有流行的 5 星级评级系统。所以我们有很多选票,每个选票的值为:1、2、3、4 或 5。

要将这些评级“转换”为向上/向下投票,请使用以下规则:

For star rating -- Add

*     - 0.00 to up votes and 1.00 to down votes (i.e. a full down vote)
**    - 0.25 to up votes and 0.75 to down votes
***   - 0.50 to up votes and 0.50 to down votes
****  - 0.75 to up votes and 0.25 to down votes
***** - 1.00 to up votes and 0.00 to down votes (i.e. a full up vote)
Run Code Online (Sandbox Code Playgroud)

将 5 星评级降低为上/下评级后,我们可以继续进行 Evan Miller 文章中描述的常规分数计算。

由于我不是统计学家或数学家,我很想听听其他人的意见,这是否有意义,以及这种方法可能存在哪些问题。

  • 我采用类似的方法,将票数乘以 5。好像每个用户都有 5 票可用,所以 1 颗星意味着 1 票赞成和 5 票反对。这也避免了我一些浮动操作。 (2认同)

ElK*_*ina 2

首先,尝试了解 WCI 背后的直觉是什么。或者,更简单的是,正态近似区间(http://en.wikipedia.org/wiki/Binomial_proportion_confidence_interval)。

所有这些区间计算背后的直觉很简单。您计算样本均值和标准差。区间为平均值+-z*标准差。

在你的情况下,计算平均值很简单。它是评级本身的平均值。假设 p1 是 1 星评级的分数,p2,...,p5。p1+p2+...+p5 = 1。并假设您正在使用 n 个样本计算这些统计数据。您的数据的平均值是 1*p1+2*p2+...+5*p5。

数据的方差为 ( E(x^2)-(E(x))^2 )/n = ( (p1*1^2 + p2*2^2..+p5*5^2) - ( 1*p1+2*p2+..+5*p5)^2 )/n

由于 std = sqrt(var),计算正态近似区间非常简单。我将让您将其扩展到 WCI。

  • 哎哟!我希望我在大学里学过统计学……不知何故,除了统计学之外,我学了所有微积分和其他数学课程,现在这种知识的缺乏让我痛不欲生。@ElKamina,如果您可以扩展您的答案并希望提供 Ruby 中的实现(如本页 http://www.evamiller.org/how-not-to-sort-by-average- rating 所示),我将非常感激.html)——对于任何正在寻找使用 Wilsons 置信区间的 5 星级调整的答案的人来说,这将是令人惊奇的。 (2认同)