这个问题与逻辑的关系比任何编程语言都要大。如果这个问题不适合论坛,请让我知道,我会删除这篇文章。
我必须写一个逻辑来计算一个博客奖励网站的博客分数。一个博客可能会被提名为多个奖项类别,并由评审团进行同行评审或评级,等级从-1到5 (-1表示他们完全不喜欢的博客)。现在,一个博客可以由一个或多个评委进行评分。计算博客最终得分的一个标准是,如果一个博客被更多的人评价为正面,那么它应该获得更多的权重(反之亦然)。同样,一个博客即使被评委评为-1,其分数也会受到影响(-1在这里是一种否决)。最后,我还想要一个基于博客Technorati排名的额外分数(这样最终的分数是基于Juror评分+ Technorati排名的组合)。
例如:一个博客被6位评委评为A类。2评级为3,3评级为2,1评级为4。(我过去计算得分为(2*3 + 3*2 + 1*4)/6 = 16/6 = 2.67以获得加权平均值,但我对此不满意,主要是因为当陪审团评级为-1时效果不佳。此外,我还需要添加Technorati排名标准)。
你能帮我决定计算最终分数的最佳方法吗(保持上面的评分方法不变,因为现在不能改变)?
发布于 2009-06-15 07:19:29
如果您想更强烈地加权-1评级的影响,请使用相同的平均分数计算,但只要看到-1,就替换为-10。如果您不希望负评分为较强的权重,则可以选择-10以外的值。
发布于 2009-06-15 08:25:59
根据选票计算分数将非常容易。添加technorati排名将是棘手的部分。
我做了一个快速脚本,根据这个算法计算一些分数
score = ( vote_sum - ( vetos * veto_weight ) ) / number_of_votes您可以更改url参数以获得不同的值
有很多平局,所以也许你可以使用technorati博客排名来打破平局
发布于 2009-07-10 17:35:15
您可能会考虑使用威尔逊得分区间的下限来进行评分。
有关更多详细信息,请参阅http://www.evanmiller.org/how-not-to-sort-by-average-rating.html。尽管在这里,它被用于更简单的Bernoulli情况。
要点是,如果你的评分很高,你对自己的得分就会有更高的信心。然后,您可以将本地收视率和Technorati收视率的分数合并,方法是根据本地和Technorati上的投票者数量对分数进行加权。
至于想要一个单一的1票有很高的影响,只需将其重新映射为与您期望的影响成比例的大负值,然后将其输入到您的评分公式中。
https://stackoverflow.com/questions/994819
复制相似问题