Domanda

Ho un sistema da 1 a 5 di voto e sto cercando di capire il modo migliore per trovare la voce più popolare votato, prendendo in considerazione il numero totale possibile dei voti espressi. Per ottenere un totale di voto, sto contando "1" voti come -3, "2" voti come -2, "3" voti come +1, "4" voti come +2, "5" voti come 3, quindi un "1" votazione annullare un "5" voto e viceversa.

In questo esempio, dire che abbiamo 3 film che giocano in 3 differenti teatri dimensioni.

Film 1: 800 posti / Film 2: 400 posti / Film 3: 180 posti a sedere

In un certo senso, stiamo limitando la quantità totale dei voti sulla base di posti a sedere, quindi vorrei un modo per il film nel teatro più piccolo di non farsi travolgere automaticamente dal film nel teatro più grande. E 'probabile che ci saranno più voti espressi nel teatro più grande, con un conseguente punteggio totale più alto.


Modifica 10/18:

Bene, spero di poter spiegare questo meglio. Sto lavorando per un festival del cinema, e stiamo ballottaggio la prima proiezione di ogni film della fest. Pertanto, ogni film avrà da 0 a un numero massimo di utili sulla base delle dimensioni di ogni teatro. Sto cercando di trovare il film più popolare in 3 categorie: narrativa, documentari, cortometraggi. Con popolare intendo una combinazione di più alto voto medio e il numero di voti.

Sembra una media ponderata è quello che sto cercando, dando meno peso da voti da un teatro più grande e più peso al voto da un teatro più piccolo per le cose anche fuori.

È stato utile?

Soluzione

si sta lavorando con medie ponderate .

Invece di aggiungere e dividendo per il numero totale di elementi (media aritmetica):

 a + b + c
 ---------
     3

Si sta aggiungendo peso ad ogni elemento, in quanto non sono tutti distribuiti in modo uniforme:

 w1*a + w2*b + w3*c
 ------------------
         3

Nel tuo caso, i pesi potrebbe essere questo:

# of people in current theater
--------------------------------
# of people in all the theaters

Proviamo un banco di prova:

Theater 1: 100 people       (rating: 1)
Theater 2: 1,000,000 people (rating: 5)

Average = (100 / (100 + 1000000)) * 1 + (1000000/(100 + 1000000)) * 5
          -----------------------------------------------------------
                                      2
        = 2.49980002

Altri suggerimenti

Beh, a seconda dei tuoi obiettivi suona come siete interessati in una sorta di media ponderata.

Continuando il vostro esempio film, sembra a me come si sta tentando di tasso come "buoni" i film sono. Per fare questo, non si vuole a fattore il numero di visualizzazioni di un film particolare troppo grande nella determinazione finale. Tuttavia, si deve prendere in considerazione un po 'dal momento che un film che solo ma ho visto 5 volte e ha avuto una valutazione media di 2,7 ha molto meno credibilità di un film con 10.000 visualizzazioni ottenendo lo stesso punteggio.

Si potrebbe considerare semplicemente che non includono un film nei risultati meno che non abbia un numero minimo di voti.

Dato un uniforme (anche) la distribuzione dei voti in tutto {1,2,3,4,5}, il rating atteso del tuo film è di 0,2. Questo perché i voti {1} e 5 si annullano a vicenda fuori, come fanno {2 e 4}. Ma il voto 3 ha un valore atteso di 1/5 = 0,2. Quindi, se le persone danno un punteggio di {1,2,3,4,5} con uguale probabilità, quindi ci si aspetta un film (non importa quante persone vedono) per avere una valutazione media vicino a 0,2.

Quindi penso che la migliore opzione per voi sarebbe quella di sommare tutti i punteggi ricevuti e semplicemente dividere per il numero di persone che hanno visto ogni film. Questo dovrebbe essere un buon indovinare il sentimento della gente verso il film come la media della distribuzione non dovrebbe ottenere più grande, semplicemente perché più la gente vede il film.

Se fossi in te, vorrei anche suggerire l'aggiunta di un piccolo termine di penalità per il risultato finale, per tener conto del fatto che alcune persone non hanno neanche voglia di andare a vedere il film. Se un sacco di gente non voleva vedere il film, in primo luogo, ma il 5 o così la gente che ha visto gli diede un 5 stelle, che non rendono un buon film, vero?

Quindi, una soluzione definitiva mi sento di raccomandare: Aggiungi tutti i punti come avete descritto, e dividere per il numero totale di persone che sono andati al cinema. Anche se non è perfetto (qualsiasi mezzo perfetto), dovrebbe dare qualche indicazione di ciò che la gente piace e non piace. Questo significa essenzialmente le persone che non hanno scelto di vedere un film sono l'aggiunta di zero a totale dei punti, ma ancora influenzare la media, perché il risultato finale è diviso per un numero maggiore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top