投票 - 投票数与投票百分比?

时间:2012-04-22 17:44:14

标签: math voting rating-system

我在网站上实施了一个简单的上/下投票系统,我跟踪个人投票以及投票时间和唯一用户iD(哈希IP)。

我的问题不是如何计算投票的百分比或总和 - 更重要的是,根据投票确定好分数的好算法是什么?

我发现按纯投票百分比排序是不可接受的,并且只是简单地计算投票。

考虑这个例子:

  • 图片A:4个upvotes,1个downvotes
  • 图片B:5个upvotes,4个downvotes
  • 图片C:1 upvote,0 downvotes

理想的系统将A放在第一位,然后是B,然后是C。

在纯百分比方案中,订单为C> A> B.(错) 在纯投票计数场景中,订单是B> A> C.(错误)

我有一个基于系统对分数的信心的“混合”算法的想法,可能是这样的:

// (if totalvotes > 0, else score = 0)
score = 1 - ((downvotes+1 / totalvotes+1) * sqrt(1 / totalvotes))

然而,在我从现在开始调整算法直到日落之前,我希望向社群询问是否有任何我已经根本不知道的非常明确的算法。

我也有每个投票的日期数据 - 但是,网站的内容不是非常时间敏感,所以我真的不在乎“什么是热门”。

2 个答案:

答案 0 :(得分:2)

按平均票数排序并不是很好。

通过平衡积极评级的比例与本文中解释的少量观察的不确定性,您可以更好地表达您的分数。

下面的文章解释了如何不犯许多热门网站所犯的错误。 (亚马逊,urbandictionary等)

http://evanmiller.org/how-not-to-sort-by-average-rating.html

希望这有帮助!

答案 1 :(得分:0)

我知道这不能回答你的问题,但我只是花了3分钟寻找乐趣试图找到一些公式而且...只是检查一下:)一列是upvotes而B是downvotes:)

=(LN((A1+1)/(A1+B1+1))+1)*LN(A1)

5   3       0.956866995
4   1       1.133543015
5   4       0.787295787
1   0       0
6   4       0.981910844
2   8       -0.207447157
6   5       0.826007385
3   3       0.483811507
4   0       1.386294361
5   0       1.609437912
6   1       1.552503332
5   2       1.146431478
100 100     -3.020151034
10  10      0.813671022