如何计算分数?
Posted
技术标签:
【中文标题】如何计算分数?【英文标题】:How to calculate scores? 【发布时间】:2010-11-02 22:46:25 【问题描述】:这个问题比任何编程语言都更与逻辑相关。如果这个问题不适合论坛,请告诉我,我会删除它。
我必须编写一个逻辑来计算博客奖网站的博客分数。博客可能会被提名多个奖项类别,并由陪审团以-1到5的等级进行同行评审或评级(-1表示他们完全不喜欢的博客)。现在,一个博客可以由一个或多个陪审员评分。计算博客最终得分的一个标准是,如果博客被更多人正面评价,则它应该获得更多权重(反之亦然)。同样,即使由一名陪审员评价为 -1 的博客也应该影响其分数(-1 在这里有点否决权)。最后,我还想根据博客的 Technorati 排名获得一个额外的分数(因此最终分数是基于陪审员评分 + Technorati 排名的混合)。
示例:博客被总共 6 名陪审员评为 A 类。 2 评分为 3,3 评分为 2,1 评分为 4。(我曾经将分数计算为 (2*3 + 3*2 + 1*4)/6 = 16/6 = 2.67 来加权平均但我对此并不满意,主要是因为当陪审员评分为-1时效果不佳。此外,我还需要添加Technorati排名排名标准。
您能帮我确定计算最终分数的最佳方法吗(保持与上面相同的评分方法,因为现在无法更改)?
【问题讨论】:
这个问题对 SO 来说似乎很好。您要求使用“最佳”算法来分配分数。 有趣的问题,+1 你为什么不在评分前使用if (scores include -1) remove from competition
?这或多或少是否决权的意思,对吧?
【参考方案1】:
如果您想更强烈地衡量 -1 评级的影响,请使用相同的平均得分计算,但只要看到 -1 就替换为 -10。如果您不希望负面评分影响太大,则可以选择 -10 以外的值。
【讨论】:
谢谢格雷格。您对 Technorati 排名有何建议?您对加权平均值的计算方式满意吗? 您尚未指定 Technorati 排名是什么。它也是介于 -1 和 5 之间的值吗?或者是别的什么?您想在多大程度上权衡陪审员的排名?您还需要回答这些问题才能确定如何使用该排名。 Greg, Technorati 排名是 Technorati.com 根据流量、Linkback 等各种因素对网站给出的分数。排名值越低,网站越好。因此,Technorati 排名 3000 的网站比排名 40000 的网站更好。 Technorati 值的范围是多少?这还取决于您认为 Technorati 评级的重要性。我的意思是你可以将每个分数的重要性分开,让陪审员占分数的某个百分比,比如 80%,然后 Technorati 评分可能是另外的 20%。但我真的不知道你觉得它应该有多重要。此外,如果您想获得更多的好分数,只需根据平均分数将分数上移即可。【参考方案2】:您可能会考虑使用 Wilson 得分区间的下限来进行评分。
请参阅http://www.evanmiller.org/how-not-to-sort-by-average-rating.html 了解更多详情。虽然在那里,它用于更简单的伯努利情况。
要点是,如果您有很多评分,那么您对评分的信心就会更高。然后,您可以将本地评分和 Technorati 评分的分数结合起来,方法是按本地和 Technorati 上的选民数量对分数进行加权。
至于希望单个 -1 投票具有高影响,只需将其重新映射为与您想要的影响成比例的大负值,然后再将其输入您的评分公式。
【讨论】:
【参考方案3】:根据投票计算分数将非常容易。添加技术人员等级将是棘手的部分。
我做了一个快速脚本,根据这个算法计算一些分数
score = ( vote_sum - ( vetos * veto_weight ) ) / number_of_votes
您可以更改 url 参数以获取不同的值
有很多平局,所以也许您可以使用 technorati 博客排名作为决胜局
【讨论】:
感谢 Galen 使用脚本演示它。【参考方案4】:您可以在内部处理从 0 到 6 的分数。只需移动 1,计算分数并返回。我猜 -1 对你的计算有一些干扰。
【讨论】:
以上是关于如何计算分数?的主要内容,如果未能解决你的问题,请参考以下文章