2010-03-22 10 views
8

Per un progetto scolastico, dovremo implementare un sistema di classificazione. Tuttavia, pensavamo che una media stupida avrebbe fatto schifo: qualcosa che un utente classificato 5 stelle avrebbe una media migliore che qualcosa di 188 utenti classificato 4 stelle, e questo è solo stupido.Come bilanciare il numero di valutazioni rispetto alle valutazioni stesse?

Quindi mi chiedo se qualcuno di voi ha un algoritmo di esempio di classificazione "intelligente". Deve solo tenere conto delle classifiche date e del numero di classifiche.

Grazie!

risposta

6

Ecco un articolo decente che descrive la teoria dietro un bayesiana sistema di classificazione:

Bayesian Rating - how to implement a weighted ranking system

+0

Grazie, lo leggerò. – zneak

+1

Questa risposta è buona. Potrebbe essere reso perfetto copiando alcune delle informazioni collegate a questa risposta, in modo che rimanga se il collegamento originale muore. – Beska

+0

@Beska Sono un po 'a corto di tempo al momento, ne passerò sicuramente un po' a breve. –

-1

Una soluzione semplice potrebbe essere una media ponderata:

somma (voti)/number_of_votes

Quello modo, 3 persone che votano 1 stella e una persona che vota 5 darebbe una media ponderata di (1 + 1 + 1 + 5)/4 = 2 stelle.

Semplice, efficace e probabilmente sufficiente per i vostri scopi.

+1

Quanto è diverso da una media normale? Inoltre, ha ancora il problema che l'OP voleva risolvere, in quanto una persona con un solo voto di "5" si classificherà più in alto di un'altra persona con 100 voti di 4. –

+0

Questo è esattamente ciò che non ha volere. 1 persona 5 stelle darebbe una media di 5 stelle. – Beska

+0

@ E.J. Brennan: "Jinx!" – Beska

5

Dai un'occhiata qui: How not to sort by average rating.

+0

+1. Vedi anche l'articolo di Randall Munroe su come viene usato su Reddit: http://blog.reddit.com/2009/10/reddits-new-comment-sorting-system.html. Questo sistema ha anche il vantaggio che non è necessario conoscere la valutazione media, o ricalcolare quando cambia, che è richiesto dal sistema bayesiano. –

+0

Questo è abbastanza bello, anche se sembra funzionare solo per una valutazione buona/cattiva, e non per un sistema "start-based". Potrebbe tornare utile comunque, quindi ti faccio +1. – zneak

+0

@ mio altro commento: dov'era la mia testa quando ho scritto questo? Si tratta di un sistema basato su "scala", non proprio di una "stella", e ancor meno di "start-based". – zneak

Problemi correlati