Smart rating system

R00miss

Guest
Smart rating system

Привет!
Такой вопрос... сделал себе Rating систему, но такая проблема когда делаешь что то типа Top 10. Например есть стих, у него оценка 5/5 и проголосовало 10 чел, есть еще один стих с оценкой 4/5, но проголосовало 100 чел... если делать ORDER BY rank DESC то получается не справедливо, т.к. кол-во проголосовавших имеет большое значение. Если смотреть только на стихи, за которые проголосовало не меньше 25 чел, то на какое то время это поможет, но не на долго, т.к. получится тоже самое когда за 200-300 стихов проголосует больше чем 25 чел.
Что делать? :)

Есть идея нарпимер сделать 1 голос = 10 балов, и потом оценку * на балы и как то подсчитать...
или смотерть на 10 стихов с самым большим кол-ом голосов и их выставлять, но опять же не справедливо будет...

есть предложения? :)
 

jer

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

алгоритм таков:
1. считаешь кол-во голосовавших - N
2. считатешь средреарифметическую оценку - AVG
3. считаешь достоверность оценки F(N) - статистическая функция от аргумента N
4. перемножаешь AVG * F(N) - вот тебе и получится рейтинг

единственное надо определиться с функцией F()
 
Сверху