l'algorithme utilisé pour calculer les 5 étoiles
J'ai besoin de calculer 5 étoiles comme celui sur le site d'Amazon. Je l'ai fait assez de recherche pour trouver quel est le meilleur algorithme, mais je ne suis pas en mesure d'obtenir une réponse adéquate. Par exemple, si ce sont les cotes de
5 star - 252
4 star - 124
3 star - 40
2 star - 29
1 star - 33
totalement 478 examens
Amazon a calculé que cela soit "4.1 sur 5 étoiles". Quelqu'un peut me dire comment ce chiffre est arrivé à? Je ne suis pas en mesure d'obtenir simplement en faire la moyenne.
- incorporer.plnkr.co/5STGsgya9mq7HLrbJtrT Un programme Détaillé pour montrer étoile moyenne de calcul.
InformationsquelleAutor user1241438 | 2012-04-17
Vous devez vous connecter pour publier un commentaire.
C'est une moyenne pondérée, où vous peser chaque cote avec le nombre de voix qu'il a obtenu:
Si vous lancez le calcul de la note globale de début de cette formule va vous aider.
Formule
Exemple
supposons que vous n'avez pas de cotes jusqu'à maintenant, alors la formule est comme,
note globale est "0" jusqu'à maintenant.
total cote "0"
et compte tenu de la notation est "4"
Si la note globale est "4.11" Total notation est "478" Et de la nouvelle notation
donner par un utilisateur est "2"
alors la formule est comme
Il est vraiment génial d'écrire sur ce sujet, au evanmiller.org. Il passe en revue et discute les avantages et les inconvénients de quelques approches et suggère une mathématiquement de façon fiable de la pondération et au calcul des voix.
http://evanmiller.org/ranking-items-with-star-ratings.html
Oui, vous pouvez le moyen de l'en sortir:
Super utile de répondre par Blindy, voici le code PHP qui est basé sur elle. Certains peuvent le trouver utile. Les résultats seront 4.11 par des OP exemple:
Comment construire au-dessus de $cotes tableau
Exemple de pseudo-code, mais qui devrait fonctionner qui explique comment construire l' $cotes tableau lorsque les informations sont stockées dans la bd en supposant que vous avez une table appelée "notation" et une colonne appelée "notation". Dans ce cas, c'est 1 rejoindre, vous aurez besoin de faire 4 joint pour obtenir toutes les cotes, mais cela devrait vous aider à démarrer:
une autre approche suggérée dans les commentaires
SELECT SUM(rating = 1) AS one_s ,SUM(rating = 2) AS two_s ,SUM(rating = 3) as three_s FROM reviews where product_id = 9
Ce système de notation est basé sur un moyenne pondérée ou moyenne pondérée. Qui est, ils ont utilisé le poids en termes de stars pour calculer une valeur décimale qui arrondit à 4.1. Par exemple:
Pondérée la moyenne, la somme du nombre d'étoiles fois son poids, puis la diviser par le nombre total de commentaires.
Vous pouvez consulter cet algorithme out: Calcul de la note Moyenne de la bonne Façon à l'aide de PHP et MySQL - il n'y a pas besoin de l'enregistrement de chaque "étoile" (aka note) et son nombre de voix et puis d'avoir à récupérer les milliers de lignes de la base de données chaque fois que vous avez besoin de calculer leur moyenne. (sauf si vous voulez afficher exactement comment beaucoup de gens nominale de l'élément donné avec 1, 2, 3, 4 & 5 étoiles)
une meilleure façon de le faire,
exemple:
Fait!
5
utilisé danssum_of_max_rating_of_user_count
stand for? Est-il la meilleure note donnée par les utilisateurs?en Javascript
(Total nombre d'étoiles /nombre total de personnes ayant de l'examen * 5 ) * 5
= Réponse
Fixe de décimales en js pour 1.
réponse.toFixed(1);
Exemple le total des examens de 5 personne est de 20 étoiles.
(20/5*5)*5 = 4.0