我有一个1到5的投票系统,考虑到可能的投票总数,我正在尝试找出最受欢迎的投票项目的最佳方法。为了获得投票总数,我将“ 1”票视为-3,2“票为-2,3”票为+1,“ 4”票为+2,5“ 5”票作为+3,因此,“ 1”投票将取消“ 5”投票,反之亦然。

在此示例中,假设我们有3部电影在3个不同的剧院中播放。

电影1:800座位 /电影2:400座位 /电影3:180座位

从某种意义上说,我们正在限制基于座位的总投票,因此我希望在较小剧院的电影中有一种方式不会自动被较大剧院的电影所淹没。在较大的剧院中可能会有更多的选票,从而获得更高的总分。


编辑10/18:

好吧,希望我能更好地解释这一点。我正在为电影节工作,我们正在投票节中的每部电影的第一部放映。因此,每部电影的规模都将根据每个剧院的规模从0到最大票数。我希望找到三类最受欢迎的电影:叙事,纪录片,短片。受欢迎的是,我的意思是最高平均投票和选票数量的结合。

似乎是我想要的加权平均水平,从较大的剧院获得的投票减少了,从较小的剧院到票数更大的投票。

有帮助吗?

解决方案

您正在与之合作 加权平均值.

而不是仅将元素的总数加起来并划分(算术平均值):

 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

其他提示

好吧,根据您的目标,听起来您对某种加权平均水平感兴趣。

继续您的电影示例,听起来您就像您正在试图评估电影的“好”。为此,您不想将任何特定电影的观点数量化为最终决定。但是,您必须考虑到这一点,因为一部仅观看了5次的电影,平均评分为+2.7的信誉要比有10,000次观看次数的电影获得相同的评分。

您可能会认为除非有最少的选票数量,否则您可能会仅将电影不包括在结果中。

鉴于在{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*评分,这并不能使它成为一部好电影,对吗?

因此,我建议的最终解决方案:按照您描述的所有要点,并除以去电影院的人数总数。虽然不是完美的(无论是完美的),但它应该给您一些人喜欢和不喜欢的东西。从本质上讲,这意味着选择不看电影的人将积分添加为零,但仍然会影响平均水平,因为最终结果除以更大的数量。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top