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?
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