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:

  1. 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ů.
  2. 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.

Publikováno: 21.9.2015 15:01