Wdrożyłem prosty system głosowania w górę/w dół na stronie internetowej i śledzę indywidualne głosy, a także czas głosowania i unikalny iD użytkownika (hashed IP).Głosowanie - Liczba głosów vs Procent głosów?
Moje pytanie nie jest jak obliczyć procent lub sumę głosów - ale więcej, jaki jest dobry algorytm do określenia dobrego wyniku na podstawie głosów?
Uważam, że sortowanie według czystego procentu głosów jest niedopuszczalne, a także po prostu liczenie głosów upvotes.
Rozważmy przykład:
- obrazu A: 4 upvotes, 1 downvotes
- obrazu B: 5 upvotes, 4 downvotes
- Obraz C: 1 upvote, 0 downvotes
Idealny system umieściłby A, najpierw B, a potem C.
W czysto procentowym scenariuszu kolejność jest C> A> B. (źle) w czystej sytuacji głos, kolejność jest B> A> C (źle)
Mam pomysł na nieco „hybrydowym” algorytmu opartego na zaufaniu systemu w wyniku, może coś wzdłuż linii:
// (if totalvotes > 0, else score = 0)
score = 1 - ((downvotes+1/totalvotes+1) * sqrt(1/totalvotes))
jednak miałem nadzieję poprosić społeczność, czy istnieją naprawdę dobrze zdefiniowane algorytmy już tam, że ja po prostu nie wiem, przed I siedzieć i poprawiać algorytm od teraz aż do zachodu słońca.
Mam również dane dotyczące daty każdego głosowania - jednak zawartość strony nie jest zbyt czasochłonna, więc nie mam na czym polega sortowanie według "na topie".
[możliwy duplikat] (http://stackoverflow.com/questions/9169143/finding-most-liked-item-of-a-user-with-rating-values)? Przynajmniej odpowiedź tam jest istotna. – Anthales
Wspaniałe pytanie, muszę powiedzieć :) –