У меня есть существующее веб-приложение, которое позволяет пользователям «оценивать» предметы на основе их сложности. (От 0 до 15). В настоящее время я просто беру среднее значение мнения каждого пользователя и представляю среднее значение из MySQL. Тем не менее, мне становится ясно (и мои пользователи), что взвешивание чисел было бы более уместным.Средневзвешенный
Как ни странно, за несколько часов работы в Google не появилось много. Я нашел две статьи, которые показывали системы рейтингов на сайте, основанные на «байесовских фильтрах» (которые я частично понимаю). Here «ы один пример:
Формула:
WR = (В/(В + М)) * R + (М/(V + М)) * С
Где :
* WR=Weighted Rating (The new rating) * R=Average Rating (arithmetic mean) so far * V=Number of ratings given * M=Minimum number of ratings needed * C=Arithmetic mean rating across the whole site
Мне нравится идея здесь наращивают весовые коэффициенты в зависимости от общего количества голосов по каждому пункту ... однако, поскольку уровни сложности на моем сайте могут варьироваться резко от пункта к пункту, "C" (ариф метрическая средняя оценка по всему сайту) недействительна.
это так, REstate мой вопрос:
Использование MySQL, PHP, или оба, я стараюсь, чтобы получить от aritmetic среднего:
(5 + 5 + 4)/3 = 4.67 (rounded)
... к средневзвешенным:
rating/weight
5/2 (since it was given 2 times)
5/2
4/1
(sum[(rate * weight)])/(sum of weights)
(5 * 2) + (5 * 2) + (4 * 1)/(2 + 2 + 1)
(24)/(5)
= 4.8
Вопрос требует знак вопроса, где ваш? – 2008-11-11 16:46:41