2015-03-11 4 views
0

У меня есть несколько объектов, каждый объект должен быть оценен по [q] Качество, [v] Значение и [s] Пригодность для пользователя.Подходящий алгоритм оценки для 3 баллов

В настоящее время я извлекая общее среднее каждого объекта по Score = (q+v+s/3) - Это сказал я бег в популярный вопрос, когда объект с 1 рейтингом 10,10,10 аттестован выше объекта с 3 рейтингами 10,9,9 | 9,10,10 | 10,10,8 - Не хорошо!

Я хочу забить каждый объект на общую сумму. Есть ли какой-нибудь алгоритм, который лучше всего подходит? Конечный результат будет в среде PHP. Примером может быть примерно то, что Awwwards имеет в настоящее время для каждого из перечисленных сайтов.

Я осмотрелся и могу видеть similar requirements и предлагаемый байесовский метод, я не уверен, как это будет соответствовать моим требованиям, хотя, как необходимость знать «минимум»?

Копаясь немного больше, я нашел это - применительно к некоторому SQL это будет работать? Любые проблемы?

<?php 

$avg_num_votes = 17; // Average number of reviews on all objects 
$avg_rating = 4.5; // Average review for all objects 
$this_num_votes = 17; // Number of reviews on this object 
$this_rating = 4; // Review for this object 

$bayesian_rating = (($avg_num_votes * $avg_rating) + ($this_num_votes * $this_rating))/($avg_num_votes + $this_num_votes); 
echo $bayesian_rating; 

//(FR) = ((av * ar) + (v × r))/(av + v) 
//(FR) = ((17 * 4.5) + (17 * 4))/(17 + 17) 
//(FR) = (76.5 + 68)/34 
//(FR) = 162.5/34 
//(FR) = 4.25 
?> 
+1

Это простой пример размера выборки (из статистики). Поскольку у вас небольшой размер выборки, ваша уверенность низкая. Таким образом, хотя у вас есть оценка 10 из одного рейтинга, уверенность в том, что оценка низкая. Сколько оценок вам нужно, чтобы доверие было разумным? Это зависит от размера населения, который предоставляет рейтинги. – kainaw

+0

Думаю, я понимаю @kainaw - что бы определить, сколько оценок вам нужно? Мнение? Определенный% от общей суммы? – potts

+0

Вы можете найти множество калькуляторов размера выборки онлайн (Google «калькулятор размера выборки»). Вам нужно будет выбрать процент доверия (обычно 95%), размер населения (сколько всего людей дают рейтинги) и доверительный интервал (это то, что вы видите, когда кто-то говорит, что рейтинг равен 8 + -1, интервал 1). Оттуда вы получаете размер выборки. – kainaw

ответ

0

Laplace smoothing прост в применении, хотя вам нужно выбрать один параметр. Это то, что называется «байесовская оценка» или «байесовский метод», хотя это не совсем правильно, и есть много других методов, которые более точно реализуют байесовское обновление для разных вариантов предыдущих распределений.

Выберите M, назвав число «минимальных» оценок некоторыми. Рассчитайте средний рейтинг A по всем категориям. Дайте каждому среднему рейтингу M объекта в дополнение к рейтингам пользователей. Если вы измените M, это изменит, насколько вы доверяете небольшой выборке. Большие значения M дают меньше кредитов небольшому числу рейтингов.

Вам не нужно регулировать это, основываясь на трех оценках. Назовите сумму рейтинга.

Например, предположим, что средний рейтинг в любом месте равен 25, вы выбрали M = 3, и вы сравниваете один объект с 1 рейтингом 30 с объектом с 7 рейтингами 27. Для первого вы вычисляете сглаженный рейтинг (30*1 + 25*3)/(1+3) = 26.25. Сглаженный рейтинг второго - (27*7+25*3)/(7+3) = 26.4. Таким образом, второй объект имел бы более высокий сглаженный рейтинг, чем первый.

Смежные вопросы