根据不同的选民数量调整选票

时间:2011-10-18 03:50:42

标签: algorithm math voting weighted-average

我有1到5个投票系统,我正在试图找出最好的方式来找到投票的最受欢迎的项目,同时考虑到投票的总票数。为了获得投票总数,我将“1”票数作为-3,“2”票数为-2,“3”投票为+1,“4”投票为+2,“5”投票为+3,因此,“1”投票将取消“5”投票,反之亦然。

对于这个例子,假设我们在3个不同大小的剧院中播放了3部电影。

电影1:800席/影片2:400席/影片3:180席

在某种程度上,我们限制了基于座位的总投票数量,因此我想让较小剧院的电影不会被大型影院的电影自动淹没。在较大的剧院中可能会有更多的选票投票,从而导致总得分更高。


编辑10/18:

好的,希望我能更好地解释这一点。我正在为一个电影节工作,我们正在为电影节中的每部电影进行第一次放映。因此,每部电影将根据每个影院的大小从0到最大票数。我正在寻找三大类中最受欢迎的电影:叙事,纪录片,短片。通过流行,我的意思是最高平均投票和投票数的组合。

看起来加权平均值正是我正在寻找的,从较大的剧院投票减轻重量,从较小的剧院投票到均衡投票的重量更轻。

3 个答案:

答案 0 :(得分:2)

您正在使用weighted averages

而不是仅仅加起来除以元素总数(算术平均值):

 a + b + c
 ---------
     3

您正在为每个元素添加权重,因为它们并非均匀分布:

 w1*a + w2*b + w3*c
 ------------------
         3

在您的情况下,权重可以是:

# of people in current theater
--------------------------------
# of people in all the theaters

让我们试一下测试用例:

Theater 1: 100 people       (rating: 1)
Theater 2: 1,000,000 people (rating: 5)

Average = (100 / (100 + 1000000)) * 1 + (1000000/(100 + 1000000)) * 5
          -----------------------------------------------------------
                                      2
        = 2.49980002

答案 1 :(得分:1)

那么,根据你的目标,你可能会对某种加权平均感兴趣。

继续你的电影例子,听起来像你在试图评价电影的“好”程度。要做到这一点,您不希望将任何特定电影的视图数量过高地分配到最终确定中。但是,你必须考虑到这一点,因为一部只有5次观看并且平均评分为+2.7的电影的可信度远远低于拥有10,000次观看同等评级的电影。

除非获得最低票数,否则您可能会考虑在结果中不包括电影。

答案 2 :(得分:0)

鉴于{1,2,3,4,5}的投票分布均匀(均匀),您的电影预期评分为0.2。这是因为投票{1和5}取消了彼此,{2和4}也是如此。但投票3的预期值为1/5 = 0.2。因此,如果人们以相同的概率给出{1,2,3,4,5}的评级,那么你会期望一部电影(无论有多少人看到它)的平均评分接近0.2。

所以我认为最好的选择是将所有收到的分数加起来,然后简单地除以每部电影的人数。这应该是人们对电影的情绪的一个很好的猜测,因为分发的平均值不应该因为更多的人看电影而变得更大。

如果我是你,我还建议在你的最终结果中增加一个小刑期,以考虑到有些人甚至不想看电影。如果很多人不想首先看电影,但看到它的5个人给了它5 *的评分,这不是一部好电影,是吗?

所以我建议最后的解决方案:按照你的描述添加所有积分,然后除以去过电影院的人数。虽然不完美(无论什么完美的手段),它应该给你一些人们喜欢和不喜欢的东西。这实际上意味着选择不看电影的人正在将总数加零,但仍会影响平均值,因为最终结果除以较大的数字。