新闻网站排名

时间:2012-11-08 01:10:44

标签: math ranking

我正在建立一个新闻网站,用户可以在该网站上下投票。这些文章链接到不同的实体:人,地点,公司......实体具有全局分数和每个用户分数。

因此,当用户在文章中向上/向下投票时,链接的实体全局得分和每个用户得分会发生变化。

例如:有一篇文章提及谷歌和微软。用户A喜欢这篇文章并投票。谷歌和微软实体的全球和用户A分数增加。

我希望用户A对他的个人得分影响更大,对全球得分影响更小。

此外,实体必须从一些分数开始,以便第一个网站用户不能减少太多分数。

我正在考虑将实体从0到1排序。投票是二元的:像(1),而不是像(0)。

我正在查看Bayesian average中提到的this blog post方法,其中C = 0.7并且m的值不同(我使用m代表个人分数,另一个代表一般分数)。我跑的测试显示个人和全球得分几乎没有差异。好像我找不到合适的价值观。

编辑:

这是我用来计算贝叶斯的代码(python)。使用这个公式,结果更好:

def bayesian_average(votes, C=100, m=0.7): #C higher for global
    #votes = [1,0,1,0,0,1,1,1]
    avg_votes = C
    avg_rating = m
    ent_votes = len(votes) #entity votes
    ent_rating = sum(votes) / float(ent_votes)
    ba = ( (avg_votes * avg_rating) + (ent_votes * ent_rating) ) / (avg_votes + ent_votes)
    return ba

1 个答案:

答案 0 :(得分:2)

当我想做这样的事情时,我现在就去Evan Miller's home page。您可能需要这三种技术中的一种(或多种):