Ранжирование на основе голосов и средних оценок

kombat

Новичок
Ранжирование на основе голосов и средних оценок

Приветствую.

На сайте есть база фоток, посетители оценивают их по 5 балльной шкале (1 - ужасно, 2 - плохо, 3 - нормально, 4 - хорошо, 5 - отлично). Как организовать сортировку этих фоток с учетом средних оценок и числа голосов? Проблему вижу в следующем:

Допустим есть 3 фотки:
первая фотка: средняя оценка 4.77, число голосов 300.
вторая фотка: средняя оценка 5.00, число голосов 2.
третья фотка: средняя оценка 5.00, число голосов 250.

Если сортировать по усредненным оценкам, то получится:
1 место - третья фотка.
2 место - вторая фотка.
3 место - первая фотка.

Все вроде замечательно, но меня смущает второе место.. понятно, что 2 голоса не могут давать объективную оценку, т.е. вполне возможно, что вторая фотка занимает второе место незаслуженно. исключать эту фотку из рейтинга не хотелось бы (пользователь должен иметь возможность просматривать все фотографии даже если он произвел сортировку по рейтингу). но куда ее поместить ума не приложу. перемещать ее ниже фотки со средней оценкой 4.77 тоже как-то криво.

Может ввести дополнительный параметр у каждой фотки - объективность оценки. и рассчитывать эту объективность исходя из числа голосов? но тут возникает другая проблема - какое кол-во голосов считать объективным. 2 голоса на фоне общего числа оценивающих пользователей, которых к примеру 1000 чел это конечно мало. но если на сайте 5 юзеров.. короче нипааанятнаа ))

посмотрел яндекс. фотки, там вроде без выкрутасов сделано, т.е. сначала идут, например, фотки со средн. оценкой 5 (при этом сортируются по числу голосов), а за ними следуют фотки с оценкой 4 и тд. Но заметил там встречаются такие непонятные вещи как:
фотка со средн. оценкой 5 и кол-вом голосов 25 находится выше, чем фотка с оценкой 5 и числом голосов 75. как-то странно на мой взгляд.. или я чего-то не догоняю. помогите плз. может есть уже какие стандартные решения, чтобы велосипед не изобретать. спасибо.
 

Dovg

Продвинутый новичок
Например:
Индекс=средняя_оценка*среднее_количество_голосов_в_день
 

kombat

Новичок
Автор оригинала: Dovg
Например:
Индекс=средняя_оценка*среднее_количество_голосов_в_день
ну допустим:
первая фотка: средняя оценка 4.77, число голосов 300, среднее число голосов в день 100.
вторая фотка: средняя оценка 5.00, число голосов 2, среднее число голосов в день 1.
третья фотка: средняя оценка 5.00, число голосов 250, среднее число голосов в день 80.

рейтинг первой фотки = 4.77 * 100 = 477.
рейтинг второй фотки = 5.00 * 1 = 5.
рейтинг третьей фотки = 5.00 * 80 = 400.

получаем:

первое место: фотка со средн. оценкой 4.77 (300 голосов).
второе место: фотка со средн. оценкой 5.00 (250 голосов).
третье место: фотка со средн. оценкой 5.00 (2 голоса).

как-то не правильно мне кажется.
 

Nutty

Новичок
может я не совсем понимаю, но можно же сортировать по нескольким полям. order by numvoice desc, severalvoice desc.
отсортирует по максимальному количеству голосов и средней оценке.
 

kombat

Новичок
Автор оригинала: Nutty
может я не совсем понимаю, но можно же сортировать по нескольким полям. order by numvoice desc, severalvoice desc.
отсортирует по максимальному количеству голосов и средней оценке.
в таком случае может получиться вот так:

1 место: средняя оценка 5.00, число голосов 250.
2 место: средняя оценка 5.00, число голосов 2.
3 место: средняя оценка 4.91, число голосов 300.

вам не кажется, что было бы разумнее поменять местами 2-е и 3-е?
 

YRusinov

Филин Ух
Лично мне не кажется, так как на 2м месте средневзвешенная оценка больше, чем на 3м.
 

partizan

Новичок
Я бы взял шкалу не 1..5, а -2..2, и рейтинг фотки, у которой число голосов меньше определенного порога считал нулевым
 

kombat

Новичок
YRusinov, ну вот вам пример

фотка_1 - красивый пейзаж.
фотка_2 - размытая никому неинтетесная фотка, которую оценили на 5 сам автор и его друг.
фотка_3 - красивый портрет.

понятно, что рано или поздно вторая фотка скатится вниз, но пока-то она занимает высокие позиции... вот в чем проблема.

я подумал может прикрутить еще коэффициент объективности.. например такой:

К = 1 - 1/число_голосов.

и считать рейтинг так: Р = средн_оценка * К ???

но в таком случае к примеру фотка со средней оценкой 5.00 и числом голосов 2 будет ниже фотки со ср. оц. 3 и числом голосов 1000. тоже как-то не правильно. а вдруг фотка на самом деле хорошая, но не успела набрать голоса...


блин я висну )). тут математики есть?
 

itprog

Cruftsman
5.00 и числом голосов 2 будет ниже фотки со ср. оц. 3 и числом голосов 1000.
так это нормально, первая - это которую оценили на 5 сам автор и его друг.
вторая - более популярная
 

kombat

Новичок
Автор оригинала: itprog
так это нормально, первая - это которую оценили на 5 сам автор и его друг.
вторая - более популярная
а как можно объяснить ситуацию на яндекс. фотках. там фотка со средн. оценкой 5 и кол-вом голосов 25 находится выше, чем фотка с оценкой 5 и числом голосов 75. правда средняя оценка показана в виде звездочек. он для отображения округляет что-ли, а считает по точным данным? или как?
 

YRusinov

Филин Ух
Автор оригинала: kombat

фотка_1 - красивый пейзаж.
фотка_2 - размытая никому неинтетесная фотка, которую оценили на 5 сам автор и его друг.
фотка_3 - красивый портрет.

блин я висну )). тут математики есть?
Я сам имею ученую степень кандидата физ.-мат. наук, так вот супротив статистики не попрешь, ежели убрать подоплеку, как-то (пейзаж, портрет и т.п.), то я бы тогда оценивал не только средне-взвешенное мат. ожидание, но и дисперсию и выводил бы на первые места возможно те фотки, которые набрали большее число положительных оценок.
 

Bitterman

Новичок
kombat
ИМХО, надо сначала определиться с идеей - что ты хочешь получить в результате, а потом уже думать как это реализовать. Никто не сможет подсказать тебе алгоритм подсчета баллов, пока ты сам не определишься, где ты хочешь видеть фотку с двумя проголосовавшими и средней оценкой 5.
 

kombat

Новичок
Автор оригинала: Bitterman
kombat
ИМХО, надо сначала определиться с идеей - что ты хочешь получить в результате, а потом уже думать как это реализовать. Никто не сможет подсказать тебе алгоритм подсчета баллов, пока ты сам не определишься, где ты хочешь видеть фотку с двумя проголосовавшими и средней оценкой 5.
вопрос не в том где ее хочу видеть я, а в том где ее хотят видеть большинство пользователей. я в психологии не силен.. поэтому и спрашиваю про наиболее распостраненное решение
 

Sokil.Dmytro

Новичок
не. написал потом передумал. тут действительно все нереально сопоставить поскольку время голосования разное у каждой фотки. и ктото да будет в обиде.

-~{}~ 22.08.07 21:08:

но склоняюсь к варианту Dovg
 

kombat

Новичок
блин простая как показалось вначале задачка не дает мне покоя уже третий день (((

а если просто суммировать баллы по такой системе?

-3 -2 -1 +1 +2 +3.

но в этом случае если 10 чел поставят фотке по -3 и 10 чел. поставят по +3, то суммарный балл-рейтинг будет 0. т.е. эта фотка и фотки которые никто не оценивал окажутся на одном уровне. справедливо ли это? или к примеру если какое-то фото оценят 100 человек по максимуму +3 (т.е. рейтинг будет +300) то оно не попадет в топ где рейтинги например от 10000.. тоже не правильно как мне кажется.

-~{}~ 22.08.07 21:35:

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

cDLEON

Онанист РНРСlub
Очередное высасвание проблемы из пальца.
Когда вы уже наконец поймёте, что главное - это то, что б всё красиво выглядело ? Обычным пользователям пофиг как идут фотки. И на рейтинг они мин. внимания обращают. А вы - циклитесь.
 

kombat

Новичок
Автор оригинала: cDLEON
Очередное высасвание проблемы из пальца.
Когда вы уже наконец поймёте, что главное - это то, что б всё красиво выглядело ? Обычным пользователям пофиг как идут фотки. И на рейтинг они мин. внимания обращают. А вы - циклитесь.
не согласен. проблема эта высасывается не из пальца, а из нежелания делать бесполезные вещи только для того "чтобы было". я например постоянно качаю фильмы с сервака в локалке и очень часто ищу хорошие фильмы по рейтингу. и когда там в топ20 вылезает какое-нибудь отстойное кино, которое посмотрели 2 торчка и поставили ему по 5, меня это бесит. какая разница фотки это или еще что-то. а вдруг в будущем придется создавать систему рейтинга каки-нибудь товаров например или, что еще серьезней, рейтинг пользователей. лучше уж щас прошукать эту тему, чтобы потом не зацикливаться. рейтинг он для того и нужен, чтобы отражать максимально объективную картину. к тому же это отличный инструмент продаж, если он конечно сделал не на "отъе**сь"
 
Сверху