首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >投票票数和得票率是多少?

投票票数和得票率是多少?
EN

Stack Overflow用户
提问于 2012-04-22 17:44:13
回答 2查看 428关注 0票数 6

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

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

我认为按纯得票率进行排序是不可接受的,而且只是简单地计算选票。

考虑一下这个例子:

  • 图像A: 4次投票,1次downvotes
  • Image B: 5次投票,4次downvotes
  • Image C: 1次投票,0次否决

理想系统首先是A,然后是B,然后是C。

在纯百分比方案中,顺序为C >A> B (错误)在纯计票方案中,顺序为B>A>C(错误)。

我想出了一个有点“混合”的算法,它是基于系统对分数的信心,也许是这样的:

代码语言:javascript
复制
// (if totalvotes > 0, else score = 0)
score = 1 - ((downvotes+1 / totalvotes+1) * sqrt(1 / totalvotes))

然而,我想问问社区,在我从现在到日落之前,在调整我的算法之前,是否已经有任何我根本不知道的真正定义良好的算法。

我也有每一次投票的日期数据-然而,网站的内容不是非常时间敏感,所以我真的不愿意按“什么是热的”来排序。

EN

回答 2

Stack Overflow用户

发布于 2012-04-22 18:14:47

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

相反,通过平衡正面评分的比例和少数观察结果的不确定性,如本文所解释的,你可以更好地表达你的分数。

下面的文章解释了如何不犯许多流行网站所犯的错误。(亚马逊、城市词典等)

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

希望这能有所帮助!

票数 2
EN

Stack Overflow用户

发布于 2012-04-22 17:58:01

我知道这不能回答你的问题,但我只是花了3分钟来找一些公式.只需检查它:) A列向上,B被否决:)

代码语言:javascript
复制
=(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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10270421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档