Vous êtes un développeur. Vous avez des utilisateurs. Vos utilisateurs évaluent les contenus de votre site. Vous voulez placer les éléments les mieux notés en haut de la page et les moins bien notés en bas. Vous avez besoin d’une sorte de “score” pour le tri.
Une première solution (mauvaise)
Utiliser la formule suivante : votes positifs – votes négatifs
Supposons qu’un élément ait 1200 évaluations positives et 800 évaluations négatives : 60% d’évaluations positives. Supposons que l’élément deux a 5500 évaluations positives et 4500 évaluations négatives : 55 % d’évaluations positives. Cet algorithme place l’élément deux (score = 1000, mais seulement 55% de positif) au-dessus de l’élément un (score = 100, et 60% de positif). Ce n’est pas un effet qu’on a envie d’avoir
Une seconde solution (mauvaise aussi)
Utiliser cette fois la formule : votes positifs / (votes positifs + votes négatifs) = votes positifs / votes totaux
Pourquoi ce n’est pas ouf : L’évaluation moyenne fonctionne bien si vous avez toujours une beaucoup d’évaluations, mais en général c’est un phénomène rare. Supposons que l’article 1 a 2 évaluations positives et 0 évaluation négative. Supposons que l’article 2 ait 100 évaluations positives et 1 évaluation négative. Cet algorithme place l’élément 2 (des tonnes d’évaluations positives) en dessous de l’élément 1 (très peu d’évaluations positives). Ce n’est pas un effet qu’on a non plus envie d’avoir.
Une bonne solution : Le score de Wilson
Cette solution part du principe bayésien suivant : plus un élément reçoit d’interactions plus sa note est fiable, plus les interactions sont positives, plus elles sont fiables. On va donc favoriser les éléments avec beaucoup d’interactions dont une grande partie est positive.
Edwin B. Wilson a trouvé la solution mathématique (qui a donc donné lieu au score de Wilson) à ce problème en 1927. La question que nous voulons poser est la suivante : Étant donné les évaluations dont je dispose, il y a 95 % de chances que la fraction “réelle” des évaluations positives soit au moins égale à quoi ? Wilson donne la réponse. En ne considérant que les évaluations positives et négatives (c’est-à-dire pas une échelle de 5 étoiles), la limite inférieure de la proportion d’évaluations positives est donnée par :
\dfrac{ \hat p+\frac{z^2_{\alpha/2}}{2n}\pm\sqrt{\frac{\hat p(1-\hat p)+\frac{z^2_{\alpha/2}}{4n}}{n} }}{1+\frac{z^2_{\alpha/2}}{n}}
Avec les valeurs suivantes :
\hat p
est la proportion de notes positives.
z_{\alpha/2}
est le (1-α/2) quantile de la distribution normale. On prend la borne inférieur donc la version avec un “-” dans le “±” de la formule.
n est le nombre total d’interactions (positives + négatives).
Si on prend 1-α/2 = 0.95, on a
z_{\alpha/2}=1.96
Admettons que l’on note des commentaires, désigné par une colonne “comment” en SQL, voici son implémentation :
SELECT comment, ((positive + 1.9208) / (positive + negative) -
1.96 * SQRT((positive * negative) / (positive + negative) + 0.9604) /
(positive + negative)) / (1 + 3.8416 / (positive + negative))
AS ci_lower_bound FROM widgets WHERE positive + negative > 0
ORDER BY ci_lower_bound DESC;
Le score vaut 0 lorsqu’il n’y a pas d’interaction.
Autres applications
L’intervalle de confiance du score de Wilson n’est pas seulement destiné au tri, bien sûr. Il est utile chaque fois que vous voulez savoir avec certitude quel pourcentage de personnes a entrepris une action quelconque. Par exemple, il peut être utilisé pour :
- Détecter les spams/abus : Quel pourcentage de personnes qui voient cet élément le marqueront comme spam ?
- Créer une liste des “meilleurs” : Quel pourcentage de personnes qui voient cet élément le marqueront comme “le meilleur de” ?
- Créez une liste des “plus partagés” : Quel pourcentage de personnes qui voient cette page cliqueront sur “Partager” ?
En effet, il peut être plus utile, dans une liste des “mieux notés”, d’afficher les éléments ayant le plus grand nombre d’évaluations positives par page vue, téléchargement ou achat, plutôt que des évaluations positives par note. De nombreuses personnes qui trouvent quelque chose de médiocre ne prendront pas la peine de l’évaluer ; le fait de regarder ou d’acheter quelque chose et de ne pas l’évaluer contient des informations utiles sur la qualité de cet article.
Cet article vous a plu ? Alors découvrez nos derniers articles sur le même thème :
- Le nombre de Shannon
- Un peu de géométrie : Le triangle de Reuleaux
- Les mathématiques du Rubik’s cube : Nombre d’arrangements
- Modéliser l’évolution d’une population : Les modèles de Malthus et Verhulst
- Comment le classement Elo est-il calculé aux échecs ?