Jak lépe řadit příspěvky podle hodnocení?
Máte hodně hodnotitelných příspěvků a rozhodli jste se je seřadit podle hodnocení?
Nechcete je však řadit podle:
- Absolutního skóre (skóre = plusové hlasy – mínusové hlasy), kde vyhrají (starší) příspěvky s více hlasy a nepustí před sebe novější, ale kvalitnější příspěvky s menším relativním počtem mínusových hlasů.
- Průměru (průměr = plusové hlasy / (plusové hlasy + mínusové hlasy)), kde může být první příspěvek s jediným kladným hlasem a 100 %.
Pak je pro vás řešení použití spodní hranice konfidenčního intervalu Wilsonova skóre. Ten využije přednosti obou dvou algoritmů.
Připraveny jsou rovnou SQL kódy, které předpokládají že máte u každého příspěvku kladné a záporné hodnocení.
80% konfidenční interval normálního rozdělení
„SELECT `id`,((plus + 0.8192) / (plus + minus) – 1.28 * SQRT((plus * minus) / (plus + minus) + 0.4096) / (plus + minus)) / (1 + 1.6384 / (plus + minus)) AS `points`, (plus+minus) AS `votes`,`text` FROM `sometable` ORDER BY `points` DESC“
Čím menší konfidence, tím větší citlivost na „nové“ příspěvky. Tento tedy boostuje nové dobře hodnocené příspěvky.
90% konfidenční interval normálního rozdělení
„SELECT `id`,((plus + 1.3448) / (plus + minus) – 1.64 * SQRT((plus * minus) / (plus + minus) + 0.6724) / (plus + minus)) / (1 + 2.6896 / (plus + minus)) AS `points`, (plus+minus) AS `votes`,`text` FROM `sometable` ORDER BY `points` DESC“
95% konfidenční interval normálního rozdělení
„SELECT `id`,((plus + 1.9208) / (plus + minus) – 1.96 * SQRT((plus * minus) / (plus + minus) + 0.9604) / (plus + minus)) / (1 + 3.8416 / (plus + minus)) AS `points`, (plus+minus) AS `points`, (plus+minus) AS `votes`,`text` FROM `sometable` ORDER BY `points` DESC“
Tento naopak dává více přednost starým a prověřeným věcem.
Kredit patří Evan Miller a vysvětlenou teorii, případně další percentily najdete na Wiki.