Jak zrównoważyć liczbę ratingów w porównaniu do samych ratingów?

Dla projektu szkolnego, będziemy musieli wdrożyć system rankingowy. Jednak pomyśleliśmy, że głupia średnia ranga będzie do bani: coś, co Jeden Użytkownik w rankingu 5 gwiazdek będzie miał lepszą średnią niż coś 188 użytkowników w rankingu 4 gwiazdki, a to jest po prostu głupie.

Więc zastanawiam się, czy ktoś z Was ma przykładowy algorytm rankingu" smart". Musi tylko wziąć pod uwagę podane rankingi i liczbę rankingów.

Dzięki!

Author: zneak, 2010-03-22

5 answers

Możesz użyć metody inspirowanej prawdopodobieństwem Bayesowskim . Istotą tego podejścia jest wstępne przekonanie o prawdziwej ocenie przedmiotu i wykorzystanie ocen użytkowników, aby zaktualizować swoje przekonanie.

To podejście wymaga dwóch parametrów:

  1. Jak myślisz, jaka jest prawdziwa" domyślna " ocena przedmiotu, jeśli nie masz żadnej oceny dla przedmiotu? Zadzwoń pod ten numer R, "początkowe przekonanie".
  2. ile wagi dajesz początkowemu przekonaniu, w porównaniu z ocenami użytkowników? Nazwij to W, Gdzie początkowe przekonanie jest "warte" W ocen użytkowników tej wartości.

Z parametrami R i W obliczanie nowej oceny jest proste: Załóżmy, że masz W oceny wartości R wraz z dowolnymi ocenami użytkowników i Oblicz średnią . Na przykład, jeśli R = 2 i W = 3, obliczamy końcowy wynik dla różnych scenariuszy poniżej:

  • 100 (użytkownik) ocen 4: (3*2 + 100*4) / (3 + 100) = 3.94
  • 3 oceny z 5 i 1 ocena 4: (3*2 + 3*5 + 1*4) / (3 + 3 + 1) = 3.57
  • 10 ocen z 4: (3*2 + 10*4) / (3 + 10) = 3.54
  • 1 Ocena z 5: (3*2 + 1*5) / (3 + 1) = 2.75
  • Brak ocen użytkowników: (3*2 + 0) / (3 + 0) = 2
  • 1 Ocena 1: (3*2 + 1*1) / (3 + 1) = 1.75

To obliczenie bierze pod uwagę liczbę ocen użytkowników i wartości tych ocen. W rezultacie końcowy wynik z grubsza odpowiada temu, jak szczęśliwy może być dany przedmiot, biorąc pod uwagę dane.

Wybór R

Kiedy wybierzesz R zastanów się jaką wartość można by było założyć, że przedmiot bez ocen. Czy typowa pozycja bez oceny jest rzeczywiście 2.4 na 5, jeśli natychmiast wszyscy ją ocenią? Jeśli tak, to byłby to rozsądny wybór.

Powinieneś Nie używać minimalnej wartości na skali ratingowej dla tego parametru, ponieważ pozycja oceniana bardzo słabo przez użytkowników powinna skończyć się "gorsza" niż pozycja domyślna bez ocen.

Jeśli chcesz wybrać R używając danych, a nie tylko intuicji, możesz można użyć następującej metody:

  • rozważ wszystkie pozycje z co najmniej pewnym progiem ocen użytkowników (dzięki czemu możesz mieć pewność, że średnia ocena użytkowników jest w miarę dokładna).
  • dla każdego przedmiotu, Załóżmy, że jego "prawdziwy wynik" jest średnią oceną użytkownika.
  • Wybierz R jako medianę tych wyników.

Jeśli chcesz być nieco bardziej optymistyczny lub pesymistyczny w stosunku do pozycji bez oceny, możesz wybrać R, aby być innym percentylem wyników, na przykład 60.percentyl (optymistyczny) lub 40. percentyl (pesymistyczny).

Wybór W

Wybór W powinien zależeć od tego, ile ocen ma typowy przedmiot i jak spójne są oceny. W może być wyższa, jeśli przedmioty naturalnie uzyskują wiele ocen, i W powinna być wyższa, jeśli masz mniej zaufania do ocen użytkowników (np. jeśli masz dużą aktywność spamera). Zauważ, że W nie musi być liczbą całkowitą i może być mniejsza niż 1.

Wybór W jest kwestią bardziej subiektywną niż wybór R. Jednak oto kilka wskazówek:

  • Jeśli typowa pozycja uzyskuje C oceny, to W nie powinna przekraczać C, w przeciwnym razie końcowy wynik będzie bardziej zależny od R niż od rzeczywistych ocen użytkowników. Zamiast tego W powinno być blisko ułamka C, być może między C/20 a C/5 (w zależności od tego, jak głośne lub "spamowe" oceny są).
  • Jeśli historyczne oceny są zwykle spójne (dla jednostki pozycja), wtedy W powinna być stosunkowo mała. Z drugiej strony, jeśli oceny dla przedmiotu bardzo się różnią, to W powinny być stosunkowo duże. Możesz myśleć o tym algorytmie jako o" absorbujących " W ocenach, które są nienormalnie wysokie lub niskie, zamieniając te oceny w bardziej umiarkowane.
  • w skrajnym przypadku ustawienie W = 0 jest równoważne użyciu tylko średniej ocen użytkowników. Ustawienie W = infinity jest równoznaczne z ogłoszeniem, że każdy element ma prawdziwą ocenę R, niezależnie od użytkownika oglądalności. Oczywiście żadna z tych skrajności nie jest właściwa.
  • zbyt duże Ustawienie W może mieć skutek faworyzowania przedmiotu o wielu umiarkowanie wysokich ocenach w stosunku do przedmiotu o nieco mniejszej wyjątkowo wysokiej oceny.
 2
Author: pkpnd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-22 20:58:46
 6
Author: Svante,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-22 21:09:31

Ponieważ stwierdziłeś, że maszyna będzie miała tylko rankingi i liczbę rankingów, argumentowałbym, że może to być zaniedbanie, aby spróbować obliczonej metody ważenia.

Po pierwsze, istnieją dwie niewiadome, aby potwierdzić tezę, że w wystarczającym przypadku większa ilość ocen jest lepszym wskaźnikiem jakości niż Mniejsza liczba ocen. Jednym z przykładów jest to, jak długo podawane są rankingi? Czy istnieje równy czas trwania zbioru (równy uwaga) na różne przedmioty uszeregowane tą samą metodą? Inne są, które rynki miały dostęp do tej pozycji i, oczywiście, kto konkretnie klasyfikuje go?

Po drugie, stwierdziłeś w komentarzu pod pytaniem, że nie jest to do użytku front-end, ale raczej "oceny są generowane przez maszyny, dla maszyn", w odpowiedzi na mój komentarz, że " niekoniecznie jest to tylko statystyczne. Jedna osoba może uznać 50 ocen za wystarczająco, gdzie to może nie wystarczyć dla innej. Oraz profile niektórych raterów mogą wyglądać bardziej wiarygodnie dla jednej osoby niż dla drugiej. Gdy jest to przejrzyste, pozwala użytkownikowi dokonać bardziej świadomej oceny."

Dlaczego miałoby być inaczej dla maszyn? :)

W każdym razie, jeśli chodzi o rankingi między maszynami, pytanie wymaga większej szczegółowości, abyśmy mogli zrozumieć, w jaki sposób różne maszyny mogą generować i wykorzystywać rankingi.

Czy ranking generowany przez maszynę może być błędny (tak aby sugerować, że więcej rankingi mogą jakoś zrekompensować te" wadliwe " rankingi? Co to w ogóle znaczy - czy to błąd maszyny? A może dlatego, że przedmiot nie ma zastosowania do tej konkretnej maszyny, na przykład? Jest tu wiele problemów, które możemy najpierw rozpakować, w tym jeśli mamy dostęp do sposobu, w jaki maszyny generują ranking, na pewnym poziomie możemy już wiedzieć, jakie znaczenie może mieć ten przedmiot dla tej maszyny, co sprawia, że zagregowany ranking jest zbędny.

 0
Author: גלעד ברקן,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-25 11:05:51

To, co można znaleźć na różnych plattformach, to wygaszanie ocen bez wystarczającej liczby głosów: "ta pozycja nie ma wystarczającej liczby głosów"
Problem w tym, że nie można tego zrobić w łatwym wzorze do obliczenia rankingu.

Sugerowałbym ukrycie rankingu z mniej niż minimalnymi głosami, ale caclulate intern średnia ruchoma. Zawsze wolę średnią ruchomą w stosunku do średniej całkowitej, ponieważ preferuje głosy z ostatniego czasu przeciwko bardzo starym głosom, które mogą być podane za zupełnie inne okoliczności.
Dodatkowo nie musisz dodawać listy wszystkich głosowań. po prostu masz obliczoną średnią i następne głosowanie tylko zmienia tę wartość.

newAverage = weight * newVoting + (1-weight) * oldAverage

Z wagą około 0,05 dla preferencji ostatnich 20 wartości. (po prostu eksperymentuj z tą wagą)

Dodatkowo zacząłbym od tych warunków:
brak głosów = wartość średniego zakresu (1-5 gwiazdek = > zacznij od 3 gwiazdek)
średnia nie zostanie pokazana, jeśli podano mniej niż 10 głosów.

 0
Author: Bernd Wilke πφ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-28 12:42:52

Proste rozwiązanie może być średnią ważoną:

Sum ( votes) / number_of_votes

W ten sposób 3 osoby głosujące na 1 gwiazdkę, a jedna osoba głosująca na 5 dałaby średnią ważoną (1+1+1+5)/4 = 2 Gwiazdy.

Prosty, skuteczny i prawdopodobnie wystarczający do Twoich celów.

 -2
Author: KarstenF,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-22 20:55:58