2010-12-21 4 views
2

Ich versuche, einen anständigen Sortieralgorithmus für meine Produktdatenbank zu bekommen. Benutzer können für ihre Produkte mit Noten von 0 bis 5 stimmen (0,5 Punkte sind auch möglich wie 2,5). Meine Tabellenstruktur sieht derzeit wie folgt aus:Formel zum Sortieren/Ranking von Produkten nach ihren Benutzerbewertungen

[ProductID] [Title] ... [NumberOfVotes] [TotalPoints] [FinalScore] 

Jedes Mal, wenn ein Benutzer Stimmen, ich bin der Berechnung der endstand mit einer sehr einfachen Formel wie (TotalPoints/NumberOfVotes) = endstand.

Dann sortiere ich die Tabelle auf FinalScore und NumberOfVotes.

Während dies funktioniert, ist es nicht gerade fair, denn ein Produkt, das nur 1 Stimme von 5 Sternen hat, kann leicht in Top-Rankings kommen.

Ich bin nicht sehr gut in Statistiken oder Algorithmen, um ein faires Produkt-Ranking zu erhalten. Ich suche nach einer relativ einfach zu implementierenden Formel, die gerechter ist als die Methode, die ich jetzt verwende.

Wie kann das gemacht werden?

+1

Sie könnten versuchen, jedes neue Produkt mit einer Reihe von durchschnittlichen Punkten (etwa 2,5) zu "täuschen". Auf diese Weise werden mehrere echte Stimmen benötigt, um das Produkt-Rating zu verschieben, obwohl es den Kunden einen schlechten Eindruck über das Produkt geben könnte. Alternativ können Sie das Produkt nicht in Ihre Top-Rankings aufnehmen, bis es mindestens N Votes hat. – StuartLC

Antwort

1

Sie könnten median verwenden, was oft eine bessere Zahl ist als der rohe Durchschnitt. Darüber hinaus sollten Sie es unter Umständen vermeiden, Bewertungen für Elemente mit weniger als fünf Stimmen abzugeben.

3

fand ich einen großen Beitrag zu diesem hier, dass die verschiedenen Optionen, einschließlich thier Vor- und Nachteile erläutert: How Not To Sort By Average Rating aber es scheint, dass die richtige Lösung ist, diese ...

„Score = Lower von Wilson gebunden Score Konfidenzintervall für einen Bernoulli Parameter“

scheint entmutigend, aber die Post enthält Pseudo-Code und eine klare Erklärung.

Verwandte Themen