| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > Самый лучший фильм |
| Автор: Самозванка 16.3.2009, 16:26 |
| Может кто подскажет какой алгоритм тут применить...? Сейчас на сайте "самые лучшие" вычисляются правильно с математической точки зрения, но неправльно с логической -- не учитывается количество проголосовавших. Допустим, за фильм проголосовал 1 чел на "5", а за другой фильм 5 чел на "5" и 1 чел. "4" -- этот второй фильм окажется хуже. Помогите придумать адекватную схему расчета "хорошести". |
| Автор: Lipetsk 16.3.2009, 17:21 |
| Думаю это не реально |
| Автор: UniBomb 16.3.2009, 17:50 |
А он и будет хуже. Ведь за первый фильм никто не проголосовал хуже чем "5". |
| Автор: ksnk 16.3.2009, 18:17 |
| Самозванка, Вот примерная формула, только что высосана из пальца... Чем больше народу проголосовало - тем интереснее фильм. Оценка, по сути, не важна Формула - чего-то вроде: (K1*N) + K2*Max(0,Nплюс-(N/3)) - K2*Max(0,Nминус-(N/3)), где K1, K2 - коэффициенты среднепотолочные... к примеру {1, 3} Nплюс - сколько плюсов, Nминус - сколько минусов, N - сколько всего. |
| Автор: bars80080 16.3.2009, 18:41 |
| может просто сложить положительные и отрицательные оценки? |
| Автор: GoldFinch 16.3.2009, 18:42 |
| тут надо копать в сторону теорвера, например делать чтото вроде поправки n/(n-1) |
| Автор: Soah 16.3.2009, 18:49 |
| ИМХО, надо сравнивать среднее арифметическое значение, если ровно, смотрим у кого больше отрицательных - тот хуже. |
| Автор: W4FhLF 17.3.2009, 06:40 |
| Умножаешь количество оценок каждого номинала (от 1 до 5) на номинал оценки и делишь на количество оценок, далее суммируешь. Получаешь средневзвешанное, где в качестве веса выступает номинал оценки. |
| Автор: Самозванка 17.3.2009, 13:32 |
вернее не подходит... 1 фильм - 5 2 фильм - 5 5 4 (5*1)/1 а второй (5*2)/3 + (4*1)/3 получаем опять первый лучше... |
| Автор: GoldFinch 17.3.2009, 15:23 |
| если число оценок = 1, оценка = X, писать "оценка примерно X" если число оценок >1, то считать по формулам матожидание m и СКО s ошибки, писать "оценка равна m+-s" если база оценок большая, что можно откорректировать вероятности оценок по их частоте в базе |
| Автор: ksnk 17.3.2009, 16:13 |
| W4FhLF, А оно чем-нибудь от среднего арифметического отличается? |
| Автор: nworm 17.3.2009, 18:09 |
| Самозваночка, Можно делать как примерно как сказал ksnk Оценка=N5*(количество пятёрок)+N4*(количество четвёрок)+N3*(количество троек)+N2*(количество двоек)+N1*(количество единиц) Коэффициенты N1,N2,N3,N4,N5 взять с потолка Типа Оценка=1*(количество пятёрок)+0.5*(количество четвёрок)+0.1*(количество троек)-0.5*(количество двоек)-1*(количество единиц) И всё время будут недовольные как в парадоксе Эрроу. |
| Автор: bars80080 17.3.2009, 18:26 |
| может не ломать голову? писать среднюю оценку и в скобках показывать количество проголосовавших? 8,6 (17 голосов) |
| Автор: Самозванка 17.3.2009, 18:58 |
| bars80080, так сейчас так и пишется ладно, пусть будет так... Добавлено через 12 секунд и спасибо всем |
| Автор: Silent 18.3.2009, 13:15 | ||
| напрашивается идея ранжирования по количеству голосов, что-нить типа умножения средневзвешенной на некую величину, которая зависит от количества голосов, я предлагаю такую формулу: ln(n+e)*средневзвешенная где е - экспонента, exp(1) пример:
наглядно видно что приоритет отдается тем фильмам, у кого больше голосов, но зело с великой хитростию (№4 и №5) - качество оценок тоже имеет огромное значение. Например, фильм, за который проголосовало 12 человек, но все пятерками (наверняка очень хороший фильм!), обгонит в рейтинге фильм с бОльшим количеством голосов - №5 - за который проголосовало аж 16 человек (у него ж на четверть голосов больше!) P.S. Жаль что здесь нельзя вставлять таблицы, а то все разъехалось |