Корректировка голосов с учетом разного количества избирателей

У меня есть система голосования от 1 до 5, и я пытаюсь найти лучший способ найти самый популярный элемент, за который проголосовали, принимая во внимание общее возможное количество поданных голосов. Чтобы получить общее количество голосов, я считаю «1» голосов как -3, «2» голосами как -2, «3» голосами как +1, «4» голосами как +2, «5» голосов как +3, таким образом, голос «1» аннулирует голос «5» и наоборот.

В этом примере, скажем, у нас есть 3 фильма, которые идут в 3 кинотеатрах разного размера.

Фильм 1: 800 мест / Фильм 2: 400 мест / Фильм 3: 180 мест

В некотором смысле мы ограничиваем общее количество голосов в зависимости от количества мест, поэтому я хотел бы, чтобы фильм в меньшем кинотеатре автоматически не перегружался фильмом в большом кинотеатре. Вполне вероятно, что в более крупном театре будет отдано больше голосов, что приведет к более высокому общему баллу.


Изменить 18/10:

Хорошо, надеюсь, я смогу объяснить это лучше. Я работаю на кинофестивале, и мы голосуем за первый показ каждого фильма на фестивале. Таким образом, каждый фильм получит от 0 до максимального количества голосов в зависимости от размера каждого кинотеатра. Я ищу самый популярный фильм в 3 категориях: повествовательный, документальный, короткометражный. Под популярным я подразумеваю комбинацию наивысшего среднего голоса и количества голосов.

Похоже, что я ищу средневзвешенное значение, придавая меньший вес голосам из более крупного театра и больший вес голосам из меньшего театра, чтобы уравновесить ситуацию.


person chrishall78    schedule 18.10.2011    source источник
comment
Некоторые ссылки из stackoverflow.com/questions/1108717/build-a-ranking могут быть полезны.   -  person mcdowella    schedule 18.10.2011
comment
@mcdowella Спасибо, возможно, я ищу среднее значение Байеса, я немного поэкспериментирую с ним.   -  person chrishall78    schedule 19.10.2011


Ответы (3)


Вы работаете с средневзвешенными значениями.

Вместо того, чтобы просто складывать и делить на общее количество элементов (среднее арифметическое):

 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
person Blender    schedule 18.10.2011
comment
В вашем тестовом примере максимально возможный результат - 2,5, когда все проголосовали 5. - person Dr. belisarius; 18.10.2011
comment
ОП упомянул, что он искал способ предотвратить перевес голосов большого театра над голосами маленького театра. Или я совершенно неверно истолковываю вопрос. - person Blender; 18.10.2011
comment
О, не против. Это было просто наблюдение. Я тоже не уверен, что понимаю вопрос - person Dr. belisarius; 18.10.2011

Что ж, в зависимости от ваших целей кажется, что вас интересует какая-то средневзвешенная величина.

Продолжая ваш пример с фильмом, мне кажется, что вы пытаетесь оценить, насколько «хороши» эти фильмы. Для этого вам не нужно слишком сильно влиять на количество просмотров какого-либо конкретного фильма при окончательном определении. Однако вы должны принять это во внимание, поскольку фильм, который был просмотрен всего 5 раз и имел средний рейтинг +2,7, имеет гораздо меньшее доверие, чем фильм с 10 000 просмотров, получивший такой же рейтинг.

Вы можете просто не включать фильм в результаты, если он не наберет минимальное количество голосов.

person FanOfTamago    schedule 18.10.2011
comment
Ну, я действительно ищу только самый популярный фильм в 3 категориях: повествовательный, документальный, короткометражный. - person chrishall78; 19.10.2011

При равномерном (равномерном) распределении голосов по {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 *, это не делает его хорошим фильмом, не так ли?

Итак, последнее решение, которое я бы порекомендовал: сложите все баллы, как вы описали, и разделите на общее количество людей, которые пошли в кино. Хотя он и не идеален (что бы ни означало «совершенное»), он должен дать вам некоторое представление о том, что людям нравится, а что нет. По сути, это означает, что люди, которые предпочли не смотреть фильм, добавляют ноль к общей сумме баллов, но все же влияют на среднее значение, потому что конечный результат делится на большее число.

person Derek    schedule 18.10.2011
comment
вы не можете просто так исключить части среднего, ожидаемое среднее - 3 - person jk.; 18.10.2011
comment
Это было бы верно, если бы было равномерное распределение голосов, но в большинстве случаев распределение будет неравномерным, и будет тенденция к тому, что все больше людей будут любить или ненавидеть фильм. - person chrishall78; 19.10.2011
comment
да, для равномерного распределения, но нет такого распределения, которое дало бы вам в среднем 0,2 - person jk.; 19.10.2011
comment
Я говорю о ожидаемом значении очков [-3, -2,1,2,3], а не фактическом голосовании за [1,2,3,4,5]. Поэтому, вычисляя математическое ожидание равномерно распределенной переменной на [-3, -2,1,2,3], вы можете просто забыть о значениях -3, -2,2,3. - person Derek; 20.10.2011