Stelle riallineate: miglioramento del sistema di valutazione IMDb
Pubblicato: 2022-03-11Gli osservatori di film a volte usano le classifiche per selezionare cosa guardare. Dopo averlo fatto io stesso, ho notato che molti dei film meglio classificati appartenevano allo stesso genere: il dramma. Questo mi ha fatto pensare che la classifica potesse avere una sorta di pregiudizio di genere.
Ero su uno dei siti più popolari per gli amanti del cinema, IMDb, che copre film di tutto il mondo e di qualsiasi anno. La sua famosa classifica si basa su una vasta raccolta di recensioni. Per questa analisi dei dati di IMDb, ho deciso di scaricare tutte le informazioni disponibili lì per analizzarle e provare a creare una nuova classifica raffinata che prendesse in considerazione una gamma più ampia di criteri.
Il sistema di valutazione IMDb: filtraggio dei dati di IMDb
Sono stato in grado di scaricare informazioni su 242.528 film usciti tra il 1970 e il 2019 inclusi. Le informazioni che IMDb mi ha fornito per ciascuna di esse sono state: Rank
, Title
, ID
, Year
, Certificate
, Rating
, Votes
, Metascore
, Synopsis
, Runtime
, Genre
, Gross
e SearchYear
.
Per avere informazioni sufficienti da analizzare, avevo bisogno di un numero minimo di recensioni per film, quindi la prima cosa che ho fatto è stata filtrare i film con meno di 500 recensioni. Ciò ha prodotto un set di 33.296 film e nella tabella successiva potremmo vedere un'analisi riepilogativa dei suoi campi:
Campo | Tipo | Conteggio nullo | Significare | Mediano |
---|---|---|---|---|
Classifica | Fattore | 0 | ||
Titolo | Fattore | 0 | ||
ID | Fattore | 0 | ||
Anno | int | 0 | 2003 | 2006 |
Certificato | Fattore | 17587 | ||
Valutazione | int | 0 | 6.1 | 6.3 |
Voti | int | 0 | 21040 | 2017 |
Metapunteggio | int | 22350 | 55.3 | 56 |
Sinossi | Fattore | 0 | ||
Tempo di esecuzione | int | 132 | 104.9 | 100 |
Genere | Fattore | 0 | ||
Schifoso | Fattore | 21415 | ||
Cerca Anno | int | 0 | 2003 | 2006 |
Nota: in R, Factor
si riferisce alle stringhe. Rank
e Gross
sono così nel set di dati IMDb originale a causa della presenza, ad esempio, di migliaia di separatori.
Prima di iniziare a perfezionare il punteggio, ho dovuto analizzare ulteriormente questo set di dati. Per cominciare, i campi Certificate
, Metascore
e Gross
avevano più del 50% di valori null, quindi non sono utili. Il ranking dipende intrinsecamente dal Rating (la variabile da affinare), quindi non contiene alcuna informazione utile. Lo stesso vale per l' ID
in quanto è un identificatore univoco per ogni film.
Infine, Title
e Synopsis
sono campi di testo brevi. Potrebbe essere possibile usarli attraverso alcune tecniche di PNL, ma poiché si tratta di una quantità limitata di testo, ho deciso di non tenerne conto per questo compito.
Dopo questo primo filtro, sono rimasto con Genre
, Rating
, Year
, Votes
, Anno di ricerca e SearchYear
di Runtime
. Nel campo Genre
c'era più di un genere per film, separati da virgole. Quindi, per catturare l'effetto additivo di avere molti generi, l'ho trasformato usando la codifica one-hot. Ciò ha prodotto 22 nuovi campi booleani, uno per ogni genere, con un valore di 1 se il film aveva questo genere o 0 in caso contrario.
Analisi dei dati IMDb
Per vedere le correlazioni tra le variabili, ho calcolato la matrice di correlazione.
Qui, un valore vicino a 1 rappresenta una forte correlazione positiva e valori vicini a -1 una forte correlazione negativa. Con questo grafico, ho fatto molte osservazioni:
-
Year
e AnnoSearchYear
sono assolutamente correlati. Ciò significa che probabilmente hanno gli stessi valori e che averli entrambi equivale ad averne uno solo, quindi ho mantenuto soloYear
. - Alcuni campi si aspettavano correlazioni positive, come ad esempio:
-
Music
conMusical
-
Action
conAdventure
-
Animation
conAdventure
-
- Lo stesso per le correlazioni negative:
-
Drama
controHorror
-
Comedy
controHorror
-
Horror
vs.Romance
-
- In relazione alla variabile chiave (
Rating
) ho notato:- Ha una correlazione positiva e importante con
Runtime
eDrama
. - Ha una correlazione più bassa con
Votes
,Biography
eHistory
. - Ha una correlazione considerevolmente negativa con l'
Horror
e una più bassa negativa conThriller
,Action
,Sci-Fi
eYear
. - Non ha altre correlazioni significative.
- Ha una correlazione positiva e importante con
Sembrava che i drammi lunghi fossero ben valutati, mentre i film horror brevi non lo erano. Secondo me - non avevo i dati per verificarlo - non era correlato al tipo di film che generano più profitti, come i film Marvel o Pixar.
Potrebbe essere che le persone che votano su questo sito non siano i migliori rappresentanti del criterio generale delle persone. Ha senso perché coloro che si prendono il tempo per inviare recensioni sul sito sono probabilmente una sorta di critici cinematografici con un criterio più specifico. Ad ogni modo, il mio obiettivo era rimuovere l'effetto delle funzionalità cinematografiche comuni, quindi ho cercato di rimuovere questa distorsione nel processo.
Distribuzione del genere nel sistema di classificazione IMDb
Il passo successivo è stato quello di analizzare la distribuzione di ciascun genere rispetto alla valutazione. Per fare ciò, ho creato un nuovo campo chiamato Principal_Genre
basato sul primo genere apparso nel campo Genre
originale. Per visualizzare questo, ho creato un grafico di violino.
Ancora una volta, ho potuto vedere che il Drama
correlato con valutazioni alte e l' Horror
con valutazioni inferiori. Tuttavia, questo grafico ha rivelato anche altri generi con buoni punteggi: Biography
e Animation
. Il fatto che le loro correlazioni non apparissero nella matrice precedente era probabilmente perché c'erano troppo pochi film con questi generi. Quindi ho creato un grafico della barra di frequenza per genere.
In effetti, Biography
e Animation
avevano pochissimi film, così come Sport
e Adult
. Per questo motivo non sono molto ben correlati con il Rating
.
Altre variabili nel sistema di rating IMDb
Successivamente, ho iniziato ad analizzare le covariabili continue: Year
, Votes
e Runtime
. Nel grafico a dispersione, puoi vedere la relazione tra Rating
e Year
.
Come abbiamo visto in precedenza, Year
sembrava avere una correlazione negativa con Rating
: all'aumentare dell'anno, aumenta anche la varianza di rating, raggiungendo valori più negativi sui film più recenti.
Successivamente, ho realizzato la stessa trama per Votes
.
Qui la correlazione era più chiara: più alto era il numero dei voti, più alta era la classifica. Tuttavia, la maggior parte dei film non ha avuto così tanti voti e, in questo caso, la Rating
ha avuto una variazione maggiore.
Infine, ho esaminato il rapporto con Runtime
.
Anche in questo caso, abbiamo uno schema simile ma ancora più forte: tempi di autonomia più elevati significano valutazioni più elevate, ma ci sono stati pochissimi casi per tempi di autonomia elevati.
Perfezionamenti del sistema di valutazione IMDb
Dopo tutta questa analisi, avevo un'idea migliore dei dati con cui avevo a che fare, quindi ho deciso di testare alcuni modelli per prevedere le valutazioni in base a questi campi. La mia idea era che la differenza tra le mie migliori previsioni del modello e la Rating
reale rimuovesse l'influenza delle caratteristiche comuni e riflettesse le caratteristiche particolari che rendono un film migliore di altri.
Ho iniziato con il modello più semplice, quello lineare. Per valutare quale modello ha funzionato meglio, ho osservato gli errori root-mean-square (RMSE) e mean absolute (MAE). Sono misure standard per questo tipo di attività. Inoltre, sono sulla stessa scala della variabile prevista, quindi sono facili da interpretare.
In questo primo modello, RMSE era 1,03 e MAE 0,78. Ma i modelli lineari presuppongono l'indipendenza dagli errori, una mediana pari a zero e una varianza costante. Se ciò è corretto, il grafico "valori residui rispetto a quelli previsti" dovrebbe apparire come una nuvola senza struttura. Quindi ho deciso di rappresentarlo graficamente per confermarlo.
Ho potuto vedere che fino a 7 nei valori previsti aveva una forma non strutturata, ma dopo questo valore ha una chiara forma di discesa lineare. Di conseguenza, le ipotesi del modello erano pessime e inoltre ho avuto un "overflow" sui valori previsti perché in realtà il Rating
non può essere superiore a 10.
Nella precedente analisi dei dati IMDb, con un maggior numero di Votes
, il Rating
è migliorato; tuttavia, ciò è avvenuto in pochi casi e per un'enorme quantità di voti. Ciò potrebbe causare distorsioni nel modello e produrre questo overflow della Rating
. Per verificare questo, ho valutato cosa sarebbe successo con questo stesso modello, rimuovendo il campo Votes
.

Questo era molto meglio! Aveva una forma più chiara e non strutturata senza valori previsti dall'overflow. Il campo Votes
dipende anche dall'attività dei revisori e non è una caratteristica dei film, quindi ho deciso di abbandonare anche questo campo. Gli errori dopo averlo rimosso erano 1,06 su RMSE e 0,81 su MAE, un po' peggio, ma non così tanto, e ho preferito avere supposizioni e funzionalità migliori rispetto a prestazioni leggermente migliori sul mio set di allenamento.
Analisi dei dati IMDb: come funzionano gli altri modelli?
La prossima cosa che ho fatto è stata provare diversi modelli per analizzare quale funzionava meglio. Per ogni modello, ho utilizzato la tecnica di ricerca casuale per ottimizzare i valori dell'iperparametro e la convalida incrociata 5 volte per prevenire la distorsione del modello. Nella tabella seguente sono riportati gli errori stimati ottenuti:
Modello | RMSE | MAE |
---|---|---|
Rete neurale | 1.044596 | 0,795699 |
Potenziamento | 1.046639 | 0.7971921 |
Albero di inferenza | 1.05704 | 0.8054783 |
GAM | 1.0615108 | 0.8119555 |
Modello lineare | 1.066539 | 0.8152524 |
Reg. lineare penalizzato | 1.066607 | 0.8153331 |
KNN | 1.066714 | 0.8123369 |
cresta bayesiana | 1.068995 | 0.8148692 |
SVM | 1.073491 | 0.8092725 |
Come puoi vedere, tutti i modelli si comportano in modo simile, quindi ne ho usati alcuni per analizzare un po' più di dati. Volevo conoscere l'influenza di ciascun campo sulla valutazione. Il modo più semplice per farlo è osservare i parametri del modello lineare. Ma per evitare distorsioni su di essi in precedenza, avevo ridimensionato i dati e quindi riqualificato il modello lineare. I pesi erano come nella foto qui.
In questo grafico è chiaro che due delle variabili più importanti sono Horror
e Drama
, dove la prima ha un impatto negativo sul rating e la seconda un positivo. Ci sono anche altri campi che hanno un impatto positivo, come Animation
e Biography
, mentre Action
, Sci-Fi
e Year
hanno un impatto negativo. Inoltre, Principal_Genre
non ha un impatto considerevole, quindi è più importante quali generi ha un film rispetto a quale sia il principale.
Con il modello additivo generalizzato (GAM), ho potuto vedere anche un impatto più dettagliato per le variabili continue, che in questo caso era l' Year
.
Qui abbiamo qualcosa di più interessante. Sebbene fosse vero che per i film recenti la valutazione tendeva a essere più bassa, l'effetto non era costante. Ha il valore più basso nel 2010 e poi sembra "riprendersi". Sarebbe interessante scoprire cosa è successo dopo quell'anno nella produzione cinematografica che potrebbe aver prodotto questo cambiamento.
Il modello migliore erano le reti neurali, che avevano RMSE e MAE più bassi, ma come puoi vedere, nessun modello ha raggiunto prestazioni perfette. Ma questa non era una cattiva notizia in termini di mio obiettivo. Le informazioni disponibili mi consentono di stimare le prestazioni in modo piuttosto buono, ma non sono sufficienti. Ci sono altre informazioni che non sono riuscito a ottenere da IMDb che fanno sì che la Rating
differisca dal punteggio previsto in base a Genre
, tempo di Runtime
e Year
. Può essere la performance dell'attore, le sceneggiature di film, la fotografia o molte altre cose.
Dal mio punto di vista, queste altre caratteristiche sono ciò che conta davvero nella scelta di cosa guardare. Non mi interessa se un determinato film è un dramma, d'azione o di fantascienza. Voglio che abbia qualcosa di speciale, qualcosa che mi faccia divertire, mi faccia imparare qualcosa, mi faccia riflettere sulla realtà o semplicemente mi diverta.
Quindi ho creato un nuovo rating raffinato prendendo il rating IMDb e sottraendo il rating previsto del miglior modello. In questo modo, rimuovevo l'effetto di Genre
, Runtime
e Year
e conservavo quest'altra informazione sconosciuta che è molto più importante per me.
Alternativa al sistema di valutazione IMDb: i risultati finali
Vediamo ora quali sono i 10 migliori film in base alla mia nuova valutazione rispetto alla reale valutazione di IMDb:
IMDb
Titolo | Genere | Valutazione IMDb | Valutazione raffinata |
---|---|---|---|
Ko a tamo peva | Avventura, Commedia, Drammatico | 8.9 | 1.90 |
Dipu numero 2 | Avventura, famiglia | 8.9 | 3.14 |
El senor de los anillos: El retorno del rey | Avventura, Drammatico, Fantasia | 8.9 | 2.67 |
El senor de los anillos: La comunidad del anillos | Avventura, Drammatico, Fantasia | 8.8 | 2.55 |
Anbe Sivam | Avventura, Commedia, Drammatico | 8.8 | 2.38 |
Hababam Sinifi Tatilde | Avventura, Commedia, Drammatico | 8.7 | 1.66 |
El senor de los anillos: Las dos torres | Avventura, Drammatico, Fantasia | 8.7 | 2.46 |
Mudra chiamata | Avventura, Drammatico, Romantico | 8.7 | 2.34 |
Interessante | Avventura, Drammatico, Fantascienza | 8.6 | 2.83 |
Voler al futuro | Avventura, commedia, fantascienza | 8.5 | 2.32 |
Il mio
Titolo | Genere | Valutazione IMDb | Valutazione raffinata |
---|---|---|---|
Dipu numero 2 | Avventura, famiglia | 8.9 | 3.14 |
Interessante | Avventura, Drammatico, Fantascienza | 8.6 | 2.83 |
El senor de los anillos: El retorno del rey | Avventura, Drammatico, Fantasia | 8.9 | 2.67 |
El senor de los anillos: La comunidad del anillos | Avventura, Drammatico, Fantasia | 8.8 | 2.55 |
Kolah ghermezi va pesar khale | Avventura, commedia, famiglia | 8.1 | 2.49 |
El senor de los anillos: Las dos torres | Avventura, Drammatico, Fantasia | 8.7 | 2.46 |
Anbe Sivam | Avventura, Commedia, Drammatico | 8.8 | 2.38 |
Los caballeros de la mesa cuadrada | Avventura, Commedia, Fantasia | 8.2 | 2.35 |
Mudra chiamata | Avventura, Drammatico, Romantico | 8.7 | 2.34 |
Voler al futuro | Avventura, commedia, fantascienza | 8.5 | 2.32 |
Come puoi vedere, il podio non è cambiato radicalmente. Questo era previsto perché l'RMSE non era così alto e qui stiamo guardando il massimo. Vediamo cosa è successo con gli ultimi 10:
IMDb
Titolo | Genere | Valutazione IMDb | Valutazione raffinata |
---|---|---|---|
Holnap tortent - Un brutto film bulvar | Commedia, Mistero | 1 | -4.86 |
Cumali Ceber: Allah Seni Alsin | Commedia | 1 | -4.57 |
Badang | Commedia, Fantasia | 1 | -4.74 |
Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Kosmiczna nominacja | Commedia | 1.1 | -4.52 |
orgoglioso americano | Dramma | 1.1 | -5.49 |
Giacche marroni: guerra d'indipendenza | Azione, Fantascienza, Guerra | 1.1 | -3.71 |
Il fine settimana che vive | Commedia, Horror, Mistero | 1.2 | -4.53 |
Bolivar: l'eroe | Animazione, Biografia | 1.2 | -5.34 |
L'ascesa del pipistrello nero | Azione, fantascienza | 1.2 | -3.65 |
Hatsukoi | Dramma | 1.2 | -5.38 |
Il mio
Titolo | Genere | Valutazione IMDb | Valutazione raffinata |
---|---|---|---|
orgoglioso americano | Dramma | 1.1 | -5.49 |
Babbo Natale e il coniglietto gelato | Famiglia, Fantasia | 1.3 | -5.42 |
Hatsukoi | Dramma | 1.2 | -5.38 |
Reis | Biografia, Drammatico | 1.5 | -5.35 |
Bolivar: l'eroe | Animazione, Biografia | 1.2 | -5.34 |
Hanum & Rangga: La fede e la città | Drammatico, Romantico | 1.2 | -5.28 |
Dopo la scorsa stagione | Animazione, Drammatico, Fantascienza | 1.7 | -5.27 |
Barschel - Mord a Genf | Dramma | 1.6 | -5.23 |
Rashu raifu | Dramma | 1.5 | -5.08 |
Kamifusen | Dramma | 1.5 | -5.08 |
La stessa cosa è successa qui, ma ora possiamo vedere che nel caso raffinato compaiono più drammi che in IMDb, il che dimostra che alcuni drammi potrebbero essere sopravvalutati solo per essere drammi.
Forse il podio più interessante da vedere è quello dei 10 film con la maggiore differenza tra il punteggio del sistema di valutazione di IMDb e il mio raffinato. Questi film sono quelli che hanno più peso sulle loro caratteristiche sconosciute e rendono il film molto migliore (o peggiore) del previsto per le sue caratteristiche note.
Titolo | Valutazione IMDb | Valutazione raffinata | Differenza |
---|---|---|---|
Kanashimi non beradonna | 7.4 | -0,71 | 8.11 |
Jesucristo Superstar | 7.4 | -0,69 | 8.09 |
Pink Floyd The Wall | 8.1 | 0.03 | 8.06 |
Tenshi no tamago | 7.6 | -0,42 | 8.02 |
Jibon Theke Neya | 9.4 | 1.52 | 7.87 |
El baile | 7.8 | 0.00 | 7.80 |
Babbo Natale e i tre orsi | 7.1 | -0,70 | 7.80 |
L'alegre historia de Scrooge | 7.5 | -0,24 | 7.74 |
Piel de Asno | 7 | -0,74 | 7.74 |
1776 | 7.6 | -0.11 | 7.71 |
Se fossi un regista e dovessi produrre un nuovo film, dopo aver fatto tutta questa analisi dei dati di IMDb, potrei avere un'idea migliore di che tipo di film fare per avere una migliore classifica di IMDb. Sarebbe un lungo dramma biografico animato che sarebbe un remake di un vecchio film, ad esempio Amadeus. Probabilmente questo assicurerebbe un buon ranking di IMDb, ma non sono sicuro dei profitti…
Cosa ne pensi dei film che si classificano in questa nuova misura? Ti piacciono? O preferisci quelli originali? Fammi sapere nei commenti qui sotto!