Stele realiniete: îmbunătățirea sistemului de evaluare IMDb
Publicat: 2022-03-11Privitorii de filme folosesc uneori clasamente pentru a selecta ce să vizioneze. Odată ce am făcut asta și eu, am observat că multe dintre cele mai bine clasate filme aparțineau aceluiași gen: dramă. Acest lucru m-a făcut să cred că clasamentul ar putea avea un fel de părtinire de gen.
Am fost pe unul dintre cele mai populare site-uri pentru iubitorii de film, IMDb, care acoperă filme din toată lumea și din orice an. Celebrul său clasament se bazează pe o colecție uriașă de recenzii. Pentru această analiză a datelor IMDb, am decis să descarc toate informațiile disponibile acolo pentru a le analiza și a încerca să creez un clasament nou, rafinat, care să ia în considerare o gamă mai largă de criterii.
Sistemul de evaluare IMDb: filtrarea datelor IMDb
Am putut descărca informații despre 242.528 de filme lansate între 1970 și 2019 inclusiv. Informațiile pe care IMDb mi le-a oferit pentru fiecare dintre ele au fost: Rank
, Title
, ID
, Year
, Certificate
, Rating
, Votes
, Metascore
, Synopsis
, Timp de Runtime
, Genre
, Gross
și SearchYear
de căutare .
Pentru a avea suficiente informații de analizat, aveam nevoie de un număr minim de recenzii per film, așa că primul lucru pe care l-am făcut a fost să filtrez filmele cu mai puțin de 500 de recenzii. Acest lucru a dus la un set de 33.296 de filme, iar în tabelul următor, am putut vedea o analiză sumară a câmpurilor sale:
Camp | Tip | Număr Null | Rău | Median |
---|---|---|---|---|
Rang | Factor | 0 | ||
Titlu | Factor | 0 | ||
ID | Factor | 0 | ||
An | Int | 0 | 2003 | 2006 |
Certificat | Factor | 17587 | ||
Evaluare | Int | 0 | 6.1 | 6.3 |
Voturi | Int | 0 | 21040 | 2017 |
Metascor | Int | 22350 | 55.3 | 56 |
Rezumat | Factor | 0 | ||
Timp de rulare | Int | 132 | 104,9 | 100 |
Gen | Factor | 0 | ||
Brut | Factor | 21415 | ||
Caută Anul | Int | 0 | 2003 | 2006 |
Notă: în R, Factor
se referă la șiruri. Rank
și Gross
sunt așa în setul de date original IMDb, deoarece au, de exemplu, mii de separatori.
Înainte de a începe să perfecționez scorul, a trebuit să analizez în continuare acest set de date. Pentru început, câmpurile Certificate
, Metascore
și Gross
au avut mai mult de 50% din valori nule, așa că nu sunt utile. Clasamentul depinde intrinsec de Rating (variabila de rafinat), prin urmare, nu contine informatii utile. Același lucru este valabil și cu ID
-ul, deoarece este un identificator unic pentru fiecare film.
În cele din urmă, Title
și Synopsis
sunt câmpuri de text scurte. Ar putea fi posibil să le utilizez printr-o tehnică NLP, dar pentru că este o cantitate limitată de text, am decis să nu le iau în considerare pentru această sarcină.
După acest prim filtru, am rămas cu Genre
, Rating
, Year
, Votes
, SearchYear
și Runtime
. În câmpul Genre
, au existat mai mult de un gen pentru fiecare film, separate prin virgule. Așa că pentru a surprinde efectul aditiv de a avea mai multe genuri, l-am transformat folosind codificare one-hot. Acest lucru a dus la 22 de câmpuri booleene noi - câte unul pentru fiecare gen - cu o valoare de 1 dacă filmul avea acest gen sau 0 în caz contrar.
Analiza datelor IMDb
Pentru a vedea corelațiile dintre variabile, am calculat matricea de corelație.
Aici, o valoare apropiată de 1 reprezintă o corelație pozitivă puternică, iar valorile apropiate de -1 o corelație negativă puternică. Prin acest grafic, am făcut multe observații:
-
Year
șiSearchYear
sunt absolut corelate. Aceasta înseamnă că probabil au aceleași valori și că a avea ambele este la fel ca a avea doar una, așa că am păstrat doarYear
. - Unele domenii se așteptau la corelații pozitive, cum ar fi:
-
Music
cuMusical
-
Action
cuAdventure
-
Animation
cuAdventure
-
- Același lucru pentru corelațiile negative:
-
Drama
versusHorror
-
Comedy
vsHorror
-
Horror
vs.Romance
-
- Legat de variabila cheie (
Rating
) am observat:- Are o corelație pozitivă și importantă cu
Runtime
șiDrama
. - Are o corelație mai mică cu
Votes
,Biography
șiHistory
. - Are o corelație considerabil negativă cu
Horror
și una mai mică cuThriller
,Action
,Sci-Fi
șiYear
. - Nu are alte corelații semnificative.
- Are o corelație pozitivă și importantă cu
Se părea că dramele lungi erau bine cotate, în timp ce filmele scurte de groază nu. După părerea mea — nu aveam datele pentru a verifica — nu se corela cu genul de filme care generează mai multe profituri, precum filmele Marvel sau Pixar.
S-ar putea ca persoanele care votează pe acest site să nu fie cel mai bun reprezentant al criteriului general al oamenilor. Are sens pentru că cei care își fac timp pentru a trimite recenzii pe site sunt probabil un fel de critici de film cu un criteriu mai specific. Oricum, obiectivul meu a fost să elimin efectul caracteristicilor comune ale filmului, așa că am încercat să elimin această părtinire în acest proces.
Distribuția genurilor în sistemul de evaluare IMDb
Următorul pas a fost analizarea distribuției fiecărui gen pe rating. Pentru a face asta, am creat un câmp nou numit Principal_Genre
, bazat pe primul Genre
care a apărut în câmpul original Gen. Pentru a vizualiza acest lucru, am făcut un grafic de vioară.
Încă o dată, am putut vedea că Drama
se corelează cu ratinguri mari și Horror
cu evaluări mai mici. Cu toate acestea, acest grafic a dezvăluit și alte genuri ca având scoruri bune: Biography
și Animation
. Faptul că corelațiile lor nu au apărut în matricea anterioară a fost probabil pentru că erau prea puține filme cu aceste genuri. Așa că în continuare am creat un grafic cu bare de frecvență pe gen.
Efectiv, Biography
și Animation
au avut foarte puține filme, la fel ca Sport
și Adult
. Din acest motiv, ele nu sunt foarte bine corelate cu Rating
.
Alte variabile în sistemul de evaluare IMDb
După aceea, am început să analizez covariabilele continue: Year
, Votes
și Runtime
. În graficul de dispersie, puteți vedea relația dintre Rating
și Year
.
După cum am văzut anterior, Year
părea să aibă o corelație negativă cu Rating
: Pe măsură ce anul crește, și varianța evaluării crește, atingând valori mai negative la filmele mai noi.
Apoi, am făcut același complot pentru Votes
.
Aici, corelația a fost mai clară: cu cât numărul de voturi era mai mare, cu atât clasamentul era mai mare. Cu toate acestea, majoritatea filmelor nu au avut atât de multe voturi, iar în acest caz, Rating
a avut o variație mai mare.
În cele din urmă, m-am uitat la relația cu Runtime
.
Din nou, avem un model similar, dar chiar mai puternic: timpi de execuție mai mari înseamnă evaluări mai mari, dar au existat foarte puține cazuri pentru durate mari.
Îmbunătățiri ale sistemului de evaluare IMDb
După toată această analiză, am avut o idee mai bună asupra datelor cu care aveam de-a face, așa că am decis să testez câteva modele pentru a prezice ratingurile pe baza acestor câmpuri. Ideea mea a fost că diferența dintre cele mai bune predicții ale mele de model și Rating
reală ar elimina influența caracteristicilor comune și ar reflecta caracteristicile particulare care fac un film mai bun decât alții.
Am început cu cel mai simplu model, cel liniar. Pentru a evalua ce model a funcționat mai bine, am observat erorile rădăcină pătrată medie (RMSE) și erorile absolute medii (MAE). Sunt măsuri standard pentru acest tip de sarcină. De asemenea, ele sunt la aceeași scară cu variabila prezisă, deci sunt ușor de interpretat.
În acest prim model, RMSE a fost 1,03 și MAE 0,78. Dar modelele liniare presupun independență față de erori, o mediană de zero și varianță constantă. Dacă acest lucru este corect, graficul „valori reziduale vs. prezise” ar trebui să arate ca un nor fără structură. Așa că m-am hotărât să-l grafic pentru a confirma asta.
Am putut vedea că până la 7 în valorile prezise, avea o formă nestructurată, dar după această valoare, are o formă clară de coborâre liniară. În consecință, presupunerile modelului au fost proaste și, de asemenea, am avut un „debordare” asupra valorilor prezise pentru că, în realitate, Rating
nu poate fi mai mare de 10.
În analiza anterioară a datelor IMDb, cu o cantitate mai mare de Votes
, Rating
sa îmbunătățit; totuși, acest lucru s-a întâmplat în câteva cazuri și pentru un număr uriaș de voturi. Acest lucru ar putea cauza distorsiuni în model și poate produce acest depășire a Rating
. Pentru a verifica acest lucru, am evaluat ce s-ar întâmpla cu același model, eliminând câmpul Votes
.

Asta a fost mult mai bine! Avea o formă mai clară, nestructurată, fără valori prezise de preaplin. Câmpul Votes
depinde și de activitatea recenzenților și nu este o caracteristică a filmelor, așa că am decis să renunț și la acest câmp. Erorile după eliminarea acestuia au fost 1,06 pe RMSE și 0,81 pe MAE — puțin mai rău, dar nu atât de mult, și am preferat să am presupuneri și o selecție de caracteristici mai bune decât o performanță puțin mai bună pe setul meu de antrenament.
Analiza datelor IMDb: Cât de bine funcționează alte modele?
Următorul lucru pe care l-am făcut a fost să încerc diferite modele pentru a analiza care au funcționat mai bine. Pentru fiecare model, am folosit tehnica de căutare aleatorie pentru a optimiza valorile hiperparametrului și validarea încrucișată de 5 ori pentru a preveni părtinirea modelului. In tabelul urmator sunt estimate erorile obtinute:
Model | RMSE | MAE |
---|---|---|
Retea neurala | 1,044596 | 0,795699 |
Amplificare | 1,046639 | 0,7971921 |
Arborele de inferență | 1,05704 | 0,8054783 |
GAM | 1,0615108 | 0,8119555 |
Model liniar | 1,066539 | 0,8152524 |
Reg. Linear Penalizat | 1,066607 | 0,8153331 |
KNN | 1,066714 | 0,8123369 |
Creasta Bayesiană | 1,068995 | 0,8148692 |
SVM | 1,073491 | 0,8092725 |
După cum puteți vedea, toate modelele funcționează similar, așa că am folosit unele dintre ele pentru a analiza puțin mai multe date. Am vrut să știu influența fiecărui câmp asupra ratingului. Cel mai simplu mod de a face acest lucru este prin observarea parametrilor modelului liniar. Dar pentru a evita distorsiunile asupra lor anterior, am scalat datele și apoi am reantrenat modelul liniar. Greutățile au fost ca în imaginea de aici.
În acest grafic, este clar că două dintre cele mai importante variabile sunt Horror
și Drama
, unde prima are un impact negativ asupra ratingului, iar a doua este pozitiv. Există și alte domenii care au un impact pozitiv, cum ar fi Animation
și Biography
, în timp ce Action
, Sci-Fi
și Year
au un impact negativ. Mai mult, Principal_Genre
nu are un impact considerabil, așa că este mai important ce genuri are un film decât care este principalul.
Cu modelul aditiv generalizat (GAM), am putut observa și un impact mai detaliat pentru variabilele continue, care în acest caz a fost Year
.
Aici, avem ceva mai interesant. Deși era adevărat că pentru filmele recente, ratingul tinde să fie mai mic, efectul nu a fost constant. Are cea mai scăzută valoare în 2010 și apoi pare să se „recupereze”. Ar fi intrigant să aflăm ce s-a întâmplat după acel an în producția de filme care ar fi putut produce această schimbare.
Cel mai bun model au fost rețelele neuronale, care aveau cel mai mic RMSE și MAE, dar după cum puteți vedea, niciun model nu a atins performanța perfectă. Dar aceasta nu a fost o veste rea în ceea ce privește obiectivul meu. Informațiile disponibile îmi permit să estimez performanța oarecum bine, dar nu sunt suficiente. Există și alte informații pe care nu le-am putut obține de la IMDb, care fac ca Rating
să difere de scorul așteptat în funcție de Genre
, Timp de Runtime
și Year
. Poate fi interpretarea unui actor, scenarii de film, fotografie sau multe alte lucruri.
Din punctul meu de vedere, aceste alte caracteristici sunt cele care contează cu adevărat în alegerea ce să vizionezi. Nu-mi pasă dacă un anumit film este o dramă, acțiune sau science fiction. Îmi doresc să aibă ceva special, ceva care să mă facă să mă distrez, să învăț ceva, să reflectez la realitate sau pur și simplu să mă distreze.
Așa că am creat o evaluare nouă, rafinată, luând ratingul IMDb și scăzând ratingul prezis pentru cel mai bun model. Făcând acest lucru, am eliminat efectul Genre
, Runtime
și Year
și am păstrat aceste alte informații necunoscute care sunt mult mai importante pentru mine.
Alternativa sistemului de evaluare IMDb: Rezultatele finale
Să vedem acum care sunt cele mai bune 10 filme după noua mea evaluare față de ratingul real IMDb:
IMDb
Titlu | Gen | Evaluare IMDb | Evaluare rafinată |
---|---|---|---|
Ko to tamo peva | Aventură, comedie, dramă | 8.9 | 1,90 |
Dipu Numărul 2 | Aventură, familie | 8.9 | 3.14 |
El señor de los anillos: El retorno del rey | Aventură, dramă, fantezie | 8.9 | 2,67 |
El señor de los anillos: La comunidad del anillo | Aventură, dramă, fantezie | 8.8 | 2,55 |
Anbe Sivam | Aventură, comedie, dramă | 8.8 | 2.38 |
Hababam Sinifi Tatilde | Aventură, comedie, dramă | 8.7 | 1,66 |
El señor de los anillos: Las dos torres | Aventură, dramă, fantezie | 8.7 | 2.46 |
Chemarea lui Mudras | Aventură, Dramă, Romantism | 8.7 | 2.34 |
Interestelar | Aventură, Dramă, Sci-Fi | 8.6 | 2,83 |
Volver al futuro | Aventură, Comedie, Sci-Fi | 8.5 | 2.32 |
A mea
Titlu | Gen | Evaluare IMDb | Evaluare rafinată |
---|---|---|---|
Dipu Numărul 2 | Aventură, familie | 8.9 | 3.14 |
Interestelar | Aventură, Dramă, Sci-Fi | 8.6 | 2,83 |
El señor de los anillos: El retorno del rey | Aventură, dramă, fantezie | 8.9 | 2,67 |
El señor de los anillos: La comunidad del anillo | Aventură, dramă, fantezie | 8.8 | 2,55 |
Kolah ghermezi va pesar khale | Aventură, Comedie, Familie | 8.1 | 2.49 |
El señor de los anillos: Las dos torres | Aventură, dramă, fantezie | 8.7 | 2.46 |
Anbe Sivam | Aventură, comedie, dramă | 8.8 | 2.38 |
Los caballeros de la mesa cuadrada | Aventură, comedie, fantezie | 8.2 | 2.35 |
Chemarea lui Mudras | Aventură, Dramă, Romantism | 8.7 | 2.34 |
Volver al futuro | Aventură, Comedie, Sci-Fi | 8.5 | 2.32 |
După cum puteți vedea, podiumul nu s-a schimbat radical. Acest lucru era de așteptat pentru că RMSE nu era atât de mare, iar aici ne uităm la vârf. Să vedem ce s-a întâmplat cu cei 10 de jos:
IMDb
Titlu | Gen | Evaluare IMDb | Evaluare rafinată |
---|---|---|---|
Holnap tortent - Un film bulvar nagy | Comedie, mister | 1 | -4,86 |
Cumali Ceber: Allah Seni Alsin | Comedie | 1 | -4,57 |
Badang | Comedie, Fantezie | 1 | -4,74 |
Yyyreek!!! Kosmiczna nominacja | Comedie | 1.1 | -4,52 |
Mândru american | Dramă | 1.1 | -5,49 |
Maronii: Războiul de Independență | Acțiune, Sci-Fi, Război | 1.1 | -3,71 |
Weekend-ul Trăiește | Comedie, groază, mister | 1.2 | -4,53 |
Bolivar: el erou | Animație, biografie | 1.2 | -5,34 |
Rise of the Black Bat | Acțiune, Sci-Fi | 1.2 | -3,65 |
Hatsukoi | Dramă | 1.2 | -5,38 |
A mea
Titlu | Gen | Evaluare IMDb | Evaluare rafinată |
---|---|---|---|
Mândru american | Dramă | 1.1 | -5,49 |
Moș Crăciun și iepurașul de înghețată | Familie, Fantezie | 1.3 | -5,42 |
Hatsukoi | Dramă | 1.2 | -5,38 |
Reis | Biografie, dramă | 1.5 | -5,35 |
Bolivar: el erou | Animație, biografie | 1.2 | -5,34 |
Hanum & Rangga: Faith & The City | Dramă, romantism | 1.2 | -5,28 |
După sezonul trecut | Animație, Dramă, Sci-Fi | 1.7 | -5,27 |
Barschel - Mord în Genf | Dramă | 1.6 | -5,23 |
Rasshu raifu | Dramă | 1.5 | -5.08 |
Kamifusen | Dramă | 1.5 | -5.08 |
Același lucru s-a întâmplat și aici, dar acum putem vedea că în cazul rafinat apar mai multe drame decât în cele IMDb, ceea ce arată că unele drame ar putea fi supra-comandate doar pentru că sunt drame.
Poate cel mai interesant podium de văzut sunt cele 10 filme cu cea mai mare diferență între scorul sistemului de rating IMDb și cel rafinat al meu. Aceste filme sunt cele care au mai multă greutate pe caracteristicile lor necunoscute și fac filmul mult mai bun (sau mai rău) decât se aștepta pentru caracteristicile sale cunoscute.
Titlu | Evaluare IMDb | Evaluare rafinată | Diferență |
---|---|---|---|
Kanashimi no 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 |
Moș Crăciun și cei trei urși | 7.1 | -0,70 | 7,80 |
La 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 |
Dacă aș fi regizor de film și ar trebui să produc un film nou, după ce am făcut toată această analiză a datelor IMDb, aș putea avea o idee mai bună despre ce fel de film să fac pentru a avea un clasament IMDb mai bun. Ar fi o lungă dramă de biografie animată, care ar fi un remake al unui film vechi, de exemplu, Amadeus. Probabil că asta ar asigura un clasament bun IMDb, dar nu sunt sigur de profituri...
Ce părere aveți despre filmele care se încadrează în această nouă măsură? Iti plac? Sau le preferi pe cele originale? Anunță-mă în comentariile de mai jos!