J'ai un site Web où les utilisateurs peuvent Donc, pour chaque article, j'ai des données telles que le nombre total de "goûts" et le% du total des votes "aime". p>
J'aimerais calculer juste un seul score à montrer aux utilisateurs. En utilisant seulement un% ne fonctionnerait pas car même si item_a pourrait avoir 90% des "goûts" tandis que item_b pourrait avoir une valeur de 80% de "goûts", item_b devrait toujours classer devant item_a si item_b dispose de 10 000 votes au total tandis que item_a 1 000 votes totaux. P>
De même en utilisant Just Total Total "Likes" ne fonctionnerait pas car tandis qu'un article pourrait avoir un grand nombre de "goûts", il ne devrait pas être classé très haut si le% de "goûts" est faible. P>
Quel serait un bon algorithme pour créer un score unique sur les données ci-dessus? P>
Idéalement, le score devrait être "significatif" ou "normalisé" d'une certaine manière. Par exemple, si je vais à IMDb et que je vois qu'un film a un score de 8/10, je sais immédiatement que c'est un bon film. D'autre part si je vois un score de 1 370, je ne saurais pas nécessairement si c'est bon ou mauvais. P>
3 Réponses :
Peut-être que vous pouvez utiliser une statistique basée sur le pourcentage, mais de la colorer en fonction du volume? par exemple. rouge / orange / jaune pour le plus grand nombre d'intérêts, bleu / vert / violet pour les intérêts les plus bas, puis permettre à l'utilisateur de trier en fonction du pourcentage ou de la couleur. P>
Il y a quelques très bons articles sur la façon dont Reddit fait ce genre de classement Ici , et ici . En bref, classez des messages par la partie inférieure de l'intervalle de confiance de 90% de leurs scores. Les entrées avec moins de votes ont des intervalles de confiance plus importants et ont donc tendance à se classer plus bas que les entrées avec plus de votes, mais la même moyenne. P>
Mais alors le problème est de savoir comment calculer l'intervalle de confiance. Utilisez-vous l'écart type de l'échantillon ou l'écart type de l'ensemble des votes, ou une sorte de la moyenne pondérée, ou un nombre arbitraire? Quel est l'intervalle de confiance du score d'un élément qui a 10 votes "oui" et 0 "non" vote "non"?
@ user434507 La formule de calcul de l'intervalle de confiance est dans l'article.
La note bayesienne est parfaite pour ce que vous voulez faire. Il prend en charge les moins de votes, mais une question de notation plus élevée. P>
La note bayésienne utilise la moyenne bayésienne. Il s'agit d'un terme mathématique qui calcule une note d'un article basé sur la "réflexion" des votes. Plus la certitude repose sur le nombre de votes, plus la note bayésienne se rapproche de la note plaine et non pondérée. Quand il y a très peu de voix, la note bayésienne d'un article sera plus proche de la note moyenne de tous les articles. P>
Utilisez cette équation: p>
br = ((((AVG_NUM_VOTES * AVG_RATAT) + (this_num_votes * this_reating)) / (avg_num_votes + this_num_votes) P>
légende: p>
AVG_NUM_VOTES: Nombre moyen de votes de tous les éléments num_votes> 0
avg_ratant: la note moyenne de chaque élément (à nouveau, de ceux qui ont num_votes> 0)
this_num_votes: Nombre de votes pour cet article
this_rating: la note de cet article p>
Remarque: avg_num_votes est utilisé comme poids "magique" dans cette formule. Plus cette valeur est élevée, plus il faut des votes pour influencer la valeur de notation bayésienne. P>
Vous pouvez lire plus ici P>
Un algorithme que vous essayez de décrire n'est pas si simple à mettre en œuvre :) Dans la première étape du projet, je voudrais simplement mettre en œuvre le simple "algorithme de pourcentage" et garder un œil étroit à la suite du résultat. Il est assez simple (connaître des bases de programmation) pour développer l'algorithme en conséquence. Je crois qu'il n'y a pas de réponse uniforme à votre question (malheureusement)
EN.Wikipedia.org/wiki/Bayesian_OOOvert