Для каждого поста создайте границы того, насколько полезным вы его ожидаете. Я предпочитаю использовать интервал Агрести-Кулла. Псевдокод:
float AgrestiCoullLower(int n, int k) {
//float conf = 0.05; // 95% confidence interval
float kappa = 2.24140273; // In general, kappa = ierfc(conf/2)*sqrt(2)
float kest=k+kappa^2/2;
float nest=n+kappa^2;
float pest=kest/nest;
float radius=kappa*sqrt(pest*(1-pest)/nest);
return max(0,pest-radius); // Lower bound
// Upper bound is min(1,pest+radius)
}
Затем возьмите нижнюю часть оценки и отсортируйте ее. Таким образом, 2/2 (по Agresti-Coull) с вероятностью 95% упадет в диапазоне «полезности» от 23,7% до 100%, так что оно сортируется ниже 999/1000, который имеет диапазон от 99,2% до 100% (с 0,237 < 0,992).
Редактировать: Поскольку некоторые люди считают это полезным (ха-ха), позвольте мне отметить, что алгоритм может быть изменен в зависимости от того, насколько вы уверены в себе / не склонны к риску. Чем меньше доверия вам нужно, тем больше у вас будет желания отказаться от «проверенных» (с высоким рейтингом) отзывов для непроверенных, но с высокими оценками. 90% доверительный интервал дает каппа = 1,95996398, 85% доверительный интервал дает 1,78046434, 75% доверительный интервал дает 1,53412054, а 50% -ный доверительный интервал дает 1,15034938.
50% доверительный интервал дает
1) 999/1000 (99.7%) = 50% likely to fall in 'helpfulness' range of 99.7% to 100%
2) 299/400 (72.2%) = 50% likely to fall in 'helpfulness' range of 72.2% to 77.2%
3) 2/2 (54.9%) = 50% likely to fall in 'helpfulness' range of 54.9% to 100%
4) 3/4 (45.7%) = 50% likely to fall in 'helpfulness' range of 45.7% to 91.9%
5) 1/1 (37.5%) = 50% likely to fall in 'helpfulness' range of 37.5% to 100%
, который не так уж отличается в целом, но предпочитает 2/2 безопасности 3 / 4.