Donc, je viens de construire un système de notation et d'essayer de trouver un algorithme pour lister les éléments les mieux notés. Par souci de simplicité, voici les colonnes:PHP/MySQL - algorithme pour "Top Rated"
item_name
average_rating (a decimal from 1 to 5)
num_votes
Je suis en train de déterminer le « sweet spot » entre le nombre de votes et note. Par exemple ...
- Un élément noté (4,6/20 votes) devrait être plus élevé sur la liste que un élément qui est (5,0/2 votes)
- Un élément noté (2,5/100 votes) devrait être ci-dessous un élément qui est (4,5/2 votes)
en d'autres termes, NUM_VOTES joue un rôle dans ce qui est "Top".
Quelqu'un connaît un algorithme qui est assez bon pour déterminer ce "sweet spot"?
Merci d'avance.
Pour compléter ceci, il y a cette option aussi, c'est un peu plus intense: http://www.evanmiller.org/how-not-to-sort-by-average-rating.html La classification bayésienne est probablement bien meilleure . C'est une autre approche intéressante cependant. – brianreavis
Cette solution est bonne, mais elle a le désavantage de connaître le nombre moyen de votes et d'évaluations! Cela signifie plus de [!] Requêtes MySQL pour chaque calcul d'évaluation. – tuergeist
cette page evanmiller.org est celle que je cherchais car c'est aussi un excellent algorithme. Je ne pouvais pas regarder au travail parce que pour une raison quelconque, il est bloqué par le filtre de contenu. – longneck