Stars Realigned: Meningkatkan Sistem Peringkat IMDb

Diterbitkan: 2022-03-11

Pengamat film terkadang menggunakan peringkat untuk memilih apa yang akan ditonton. Setelah melakukan ini sendiri, saya perhatikan bahwa banyak film dengan peringkat terbaik memiliki genre yang sama: drama. Ini membuat saya berpikir bahwa peringkat bisa memiliki semacam bias genre.

Saya berada di salah satu situs paling populer untuk pecinta film, IMDb, yang mencakup film dari seluruh dunia dan dari tahun mana pun. Peringkatnya yang terkenal didasarkan pada banyak koleksi ulasan. Untuk analisis data IMDb ini, saya memutuskan untuk mengunduh semua informasi yang tersedia di sana untuk menganalisisnya dan mencoba membuat peringkat baru yang disempurnakan yang akan mempertimbangkan rentang kriteria yang lebih luas.

Sistem Peringkat IMDb: Memfilter Data IMDb

Saya dapat mengunduh informasi tentang 242.528 film yang dirilis antara tahun 1970 dan 2019. Informasi yang diberikan IMDb kepada saya untuk masing-masing adalah: Rank , Title , ID , Year , Certificate , Rating , Votes , Metascore , Synopsis , Runtime , Genre , Gross , dan SearchYear .

Untuk mendapatkan informasi yang cukup untuk dianalisis, saya memerlukan jumlah minimum ulasan per film, jadi hal pertama yang saya lakukan adalah menyaring film dengan kurang dari 500 ulasan. Ini menghasilkan satu set 33.296 film, dan di tabel berikutnya, kita bisa melihat ringkasan analisis bidangnya:

Bidang Jenis Hitungan Null Berarti median
Pangkat Faktor 0
Judul Faktor 0
pengenal Faktor 0
Tahun ke dalam 0 2003 2006
Sertifikat Faktor 17587
Peringkat ke dalam 0 6.1 6.3
Suara ke dalam 0 21040 2017
Metaskor ke dalam 22350 55.3 56
Ringkasan Faktor 0
Waktu tayang ke dalam 132 104.9 100
Aliran Faktor 0
Bruto Faktor 21415
CariTahun ke dalam 0 2003 2006

Catatan: Dalam R, Factor mengacu pada string. Rank dan Gross seperti itu dalam dataset IMDb asli karena memiliki, misalnya, ribuan pemisah.

Sebelum mulai memperbaiki skor, saya harus menganalisis lebih lanjut dataset ini. Sebagai permulaan, bidang Certificate , Metascore , dan Gross memiliki lebih dari 50% nilai nol sehingga tidak berguna. Peringkat secara intrinsik bergantung pada Peringkat (variabel yang akan disempurnakan), oleh karena itu, tidak ada informasi yang berguna. Hal yang sama berlaku dengan ID karena itu adalah pengidentifikasi unik untuk setiap film.

Akhirnya, Title dan Synopsis adalah bidang teks pendek. Mungkin saja untuk menggunakannya melalui beberapa teknik NLP, tetapi karena jumlah teksnya terbatas, saya memutuskan untuk tidak memperhitungkannya untuk tugas ini.

Setelah filter pertama ini, tersisa Genre , Rating , Year , Votes , SearchYear , dan Runtime . Di bidang Genre , ada lebih dari satu genre per film, dipisahkan dengan koma. Jadi untuk menangkap efek tambahan karena memiliki banyak genre, saya mengubahnya menggunakan enkode one-hot. Ini menghasilkan 22 bidang boolean baru—satu untuk setiap genre—dengan nilai 1 jika film memiliki genre ini atau 0 sebaliknya.

Analisis Data IMDb

Untuk melihat korelasi antar variabel, saya menghitung matriks korelasi.

Matriks korelasi di antara semua kolom asli yang tersisa dan kolom genre baru. Angka yang mendekati nol menghasilkan ruang kosong di kisi. Korelasi negatif menghasilkan titik merah dan korelasi positif menghasilkan titik biru. Titik-titik yang lebih besar dan lebih gelap semakin kuat korelasinya. (Sorotan visual dijelaskan dalam teks artikel utama.)

Di sini, nilai yang mendekati 1 menunjukkan korelasi positif yang kuat, dan nilai yang mendekati -1 menunjukkan korelasi negatif yang kuat. Dengan grafik ini, saya membuat banyak pengamatan:

  • Year dan SearchYear benar-benar berkorelasi. Ini berarti bahwa mereka mungkin memiliki nilai yang sama dan memiliki keduanya sama dengan hanya memiliki satu, jadi saya hanya menyimpan Year .
  • Beberapa bidang telah mengharapkan korelasi positif, seperti:
    • Music dengan Musical
    • Action dengan Adventure
    • Animation dengan Adventure
  • Sama untuk korelasi negatif:
    • Drama vs. Horror
    • Comedy vs. Horror
    • Horror vs. Romance
  • Terkait dengan variabel kunci ( Rating ) saya perhatikan:
    • Ini memiliki korelasi positif dan penting dengan Runtime dan Drama .
    • Ini memiliki korelasi yang lebih rendah dengan Votes , Biography , dan History .
    • Ini memiliki korelasi yang sangat negatif dengan Horror dan negatif yang lebih rendah dengan Thriller , Action , Sci-Fi , dan Year .
    • Itu tidak memiliki korelasi signifikan lainnya.

Tampaknya drama panjang memiliki rating yang baik, sedangkan film horor pendek tidak. Menurut saya—saya tidak punya data untuk memeriksanya—tidak ada korelasinya dengan jenis film yang menghasilkan lebih banyak keuntungan, seperti film Marvel atau Pixar.

Bisa jadi orang yang memberikan suara di situs ini bukanlah perwakilan terbaik dari kriteria masyarakat umum. Masuk akal karena mereka yang meluangkan waktu untuk mengirimkan ulasan di situs mungkin adalah semacam kritikus film dengan kriteria yang lebih spesifik. Bagaimanapun, tujuan saya adalah menghilangkan efek fitur film umum, jadi saya mencoba menghilangkan bias ini dalam prosesnya.

Distribusi Genre dalam Sistem Rating IMDb

Langkah selanjutnya adalah menganalisis distribusi masing-masing genre berdasarkan peringkat. Untuk melakukan itu, saya membuat bidang baru bernama Principal_Genre berdasarkan genre pertama yang muncul di bidang Genre asli. Untuk memvisualisasikannya, saya membuat grafik biola.

Plot biola yang menunjukkan distribusi peringkat untuk setiap genre.

Sekali lagi, saya bisa melihat bahwa Drama berkorelasi dengan rating tinggi dan Horror dengan rating rendah. Namun, grafik ini juga mengungkapkan genre lain yang memiliki skor bagus: Biography dan Animation . Bahwa korelasi mereka tidak muncul dalam matriks sebelumnya mungkin karena terlalu sedikit film dengan genre ini. Jadi selanjutnya saya membuat plot bar frekuensi berdasarkan genre.

Grafik batang yang menunjukkan berapa banyak film dari setiap genre dalam database. Komedi, Drama, dan Aksi memiliki frekuensi sekitar 6.000 atau lebih; Kejahatan dan Horor berada di atas 2.000; sisanya di bawah 1.000.

Secara efektif, Biography and Animation hanya memiliki sedikit film, seperti halnya Sport and Adult . Untuk alasan ini, mereka tidak berkorelasi dengan baik dengan Rating .

Variabel Lain dalam Sistem Peringkat IMDb

Setelah itu, saya mulai menganalisis kovariabel kontinu: Year , Votes , dan Runtime . Di plot pencar, Anda dapat melihat hubungan antara Rating dan Year .

Plot pencar peringkat dan tahun.

Seperti yang kita lihat sebelumnya, Year tampaknya memiliki korelasi negatif dengan Rating : Seiring bertambahnya tahun, varian peringkat juga meningkat, mencapai lebih banyak nilai negatif pada film-film baru.

Selanjutnya, saya membuat plot yang sama untuk Votes .

Plot pencar peringkat dan suara.

Di sini, korelasinya lebih jelas: semakin tinggi jumlah suara, semakin tinggi peringkatnya. Namun, sebagian besar film tidak memiliki banyak suara, dan dalam hal ini, Rating memiliki varian yang lebih besar.

Terakhir, saya melihat hubungannya dengan Runtime .

Plot sebar antara rating dan runtime.

Sekali lagi, kami memiliki pola yang serupa tetapi bahkan lebih kuat: Runtime yang lebih tinggi berarti peringkat yang lebih tinggi, tetapi hanya ada sedikit kasus untuk runtime yang tinggi.

Penyempurnaan Sistem Peringkat IMDb

Setelah semua analisis ini, saya memiliki gagasan yang lebih baik tentang data yang saya tangani, jadi saya memutuskan untuk menguji beberapa model untuk memprediksi peringkat berdasarkan bidang ini. Ide saya adalah bahwa perbedaan antara prediksi model terbaik saya dan Rating sebenarnya akan menghilangkan pengaruh fitur umum dan mencerminkan karakteristik tertentu yang membuat film lebih baik daripada yang lain.

Saya mulai dengan model paling sederhana, model linier. Untuk mengevaluasi model mana yang berkinerja lebih baik, saya mengamati kesalahan root-mean-square (RMSE) dan mean absolute (MAE). Mereka adalah ukuran standar untuk tugas semacam ini. Juga, mereka berada pada skala yang sama dengan variabel yang diprediksi, sehingga mudah untuk ditafsirkan.

Pada model pertama ini, RMSE adalah 1,03, dan MAE 0,78. Tetapi model linier mengandaikan independensi atas kesalahan, median nol, dan varians konstan. Jika ini benar, grafik “nilai sisa vs. prediksi” akan terlihat seperti awan tanpa struktur. Jadi saya memutuskan untuk membuat grafik untuk menguatkan itu.

Residual vs. nilai prediksi scatterplot.

Saya dapat melihat bahwa hingga 7 dalam nilai prediksi, ia memiliki bentuk yang tidak terstruktur, tetapi setelah nilai ini, ia memiliki bentuk penurunan linier yang jelas. Akibatnya, pengandaian modelnya buruk, dan juga, saya memiliki "kelimpahan" pada nilai prediksi karena pada kenyataannya, Rating tidak boleh lebih dari 10.

Dalam analisis data IMDb sebelumnya, dengan jumlah Votes yang lebih tinggi, Rating meningkat; namun, ini terjadi dalam beberapa kasus dan untuk sejumlah besar suara. Hal ini dapat menyebabkan distorsi pada model dan menghasilkan Rating overflow. Untuk memeriksa ini, saya mengevaluasi apa yang akan terjadi dengan model yang sama ini, menghapus bidang Votes .

Residual vs. nilai prediksi scatterplot saat kolom Suara dihapus.

Ini jauh lebih baik! Itu memiliki bentuk yang lebih jelas dan tidak terstruktur tanpa nilai prediksi overflow. Bidang Votes juga bergantung pada aktivitas pengulas dan bukan merupakan fitur film, jadi saya memutuskan untuk menghapus bidang ini juga. Kesalahan setelah menghapusnya adalah 1,06 pada RMSE dan 0,81 pada MAE — sedikit lebih buruk, tetapi tidak terlalu banyak, dan saya lebih suka memiliki anggapan dan pemilihan fitur yang lebih baik daripada kinerja yang sedikit lebih baik pada set pelatihan saya.

Analisis Data IMDb: Seberapa Baik Model Lain Bekerja?

Hal berikutnya yang saya lakukan adalah mencoba berbagai model untuk menganalisis mana yang berkinerja lebih baik. Untuk setiap model, saya menggunakan teknik pencarian acak untuk mengoptimalkan nilai hyperparameter dan validasi silang 5 kali lipat untuk mencegah bias model. Pada tabel berikut adalah estimasi error yang didapat:

Model RMSE MAE
Jaringan syaraf 1.044596 0,795699
meningkatkan 1.046639 0.7971921
Pohon Inferensi 1.05704 0.8054783
GAM 1.0615108 0.8119555
Model Linier 1.066539 0.8152524
Reguler Linear yang Dihukum 1.066607 0.8153331
KNN 1.066714 0.8123369
Bukit Bayesian 1.068995 0.8148692
SVM 1.073491 0.8092725

Seperti yang Anda lihat, semua model bekerja dengan cara yang sama, jadi saya menggunakan beberapa di antaranya untuk menganalisis lebih banyak data. Saya ingin tahu pengaruh masing-masing bidang terhadap peringkat. Cara paling sederhana untuk melakukannya adalah dengan mengamati parameter model linier. Tetapi untuk menghindari distorsi pada mereka sebelumnya, saya telah menskalakan data dan kemudian melatih kembali model linier. Bobotnya seperti yang digambarkan di sini.

Grafik batang bobot model linier mulai dari hampir -0,25 untuk Horror hingga hampir 0,25 untuk Drama.

Dalam grafik ini, jelas terlihat bahwa dua variabel terpenting adalah Horror dan Drama , di mana yang pertama berdampak negatif pada rating dan yang kedua berdampak positif. Ada juga bidang lain yang berdampak positif—seperti Animation dan Biography —sementara Action , Sci-Fi , dan Year berdampak negatif. Selain itu, Principal_Genre tidak memiliki dampak yang cukup besar, jadi lebih penting genre mana yang dimiliki sebuah film daripada yang utama.

Dengan Generalized Additive Model (GAM), saya juga bisa melihat dampak yang lebih detail untuk variabel kontinu, yang dalam hal ini adalah Year .

Grafik Tahun vs. s(Tahun) menggunakan model aditif umum. Nilai s(Tahun) mengikuti kurva yang dimulai mendekati 0,6 untuk tahun 1970, turun di bawah 0 pada 2010, dan meningkat mendekati 0 lagi pada 2019.

Di sini, kami memiliki sesuatu yang lebih menarik. Memang benar bahwa untuk film-film baru-baru ini, peringkatnya cenderung lebih rendah, efeknya tidak konstan. Ini memiliki nilai terendah pada tahun 2010 dan kemudian tampaknya "pulih." Akan menarik untuk mengetahui apa yang terjadi setelah tahun itu dalam produksi film yang dapat menghasilkan perubahan ini.

Model terbaik adalah jaringan saraf, yang memiliki RMSE dan MAE terendah, tetapi seperti yang Anda lihat, tidak ada model yang mencapai kinerja sempurna. Tapi ini bukan berita buruk dalam hal tujuan saya. Informasi yang tersedia izinkan saya memperkirakan kinerjanya dengan baik, tetapi itu tidak cukup. Ada beberapa informasi lain yang tidak saya dapatkan dari IMDb yaitu membuat Rating berbeda dari skor yang diharapkan berdasarkan Genre , Runtime , dan Year . Mungkin penampilan aktor, skrip film, fotografi, atau banyak hal lainnya.

Dari sudut pandang saya, karakteristik lain inilah yang benar-benar penting dalam memilih apa yang harus ditonton. Saya tidak peduli apakah film yang diberikan adalah drama, aksi, atau fiksi ilmiah. Saya ingin itu memiliki sesuatu yang istimewa, sesuatu yang membuat saya bersenang-senang, membuat saya belajar sesuatu, membuat saya merenungkan kenyataan, atau hanya menghibur saya.

Jadi saya membuat peringkat baru yang disempurnakan dengan mengambil peringkat IMDb dan mengurangi peringkat yang diprediksi dari model terbaik. Dengan melakukan ini, saya menghapus efek Genre , Runtime , dan Year dan menyimpan informasi lain yang tidak diketahui ini yang jauh lebih penting bagi saya.

Alternatif Sistem Peringkat IMDb: Hasil Akhir

Mari kita lihat sekarang mana 10 film terbaik menurut peringkat baru saya vs. menurut peringkat IMDb yang sebenarnya:

IMDb

Judul Aliran Peringkat IMDb Peringkat Halus
Ko ke tamo peva Petualangan,Komedi,Drama 8.9 1.90
Dipu Nomor 2 Petualangan, Keluarga 8.9 3.14
El senor de los anillos: El retorno del rey Petualangan, Drama, Fantasi 8.9 2.67
El senor de los anillos: La comunidad del anillo Petualangan, Drama, Fantasi 8.8 2.55
Anbe Sivam Petualangan,Komedi,Drama 8.8 2.38
Hababam Sinifi Tatilde Petualangan,Komedi,Drama 8.7 1.66
El senor de los anillos: Las dos torres Petualangan, Drama, Fantasi 8.7 2.46
Panggilan Mudra Petualangan, Drama, Romansa 8.7 2.34
Tertarik Petualangan, Drama, Fiksi Ilmiah 8.6 2.83
Volver al futuro Petualangan, Komedi, Fiksi Ilmiah 8.5 2.32

Milikku

Judul Aliran Peringkat IMDb Peringkat Halus
Dipu Nomor 2 Petualangan, Keluarga 8.9 3.14
Tertarik Petualangan, Drama, Fiksi Ilmiah 8.6 2.83
El senor de los anillos: El retorno del rey Petualangan, Drama, Fantasi 8.9 2.67
El senor de los anillos: La comunidad del anillo Petualangan, Drama, Fantasi 8.8 2.55
Kolah ghermezi va pesar khale Petualangan,Komedi,Keluarga 8.1 2.49
El senor de los anillos: Las dos torres Petualangan, Drama, Fantasi 8.7 2.46
Anbe Sivam Petualangan,Komedi,Drama 8.8 2.38
Los caballeros de la mesa cuadrada Petualangan,Komedi,Fantasi 8.2 2.35
Panggilan Mudra Petualangan, Drama, Romansa 8.7 2.34
Volver al futuro Petualangan, Komedi, Fiksi Ilmiah 8.5 2.32

Seperti yang Anda lihat, podium tidak berubah secara radikal. Ini diharapkan karena RMSE tidak begitu tinggi, dan di sini kita melihat puncaknya. Mari kita lihat apa yang terjadi dengan 10 terbawah:

IMDb

Judul Aliran Peringkat IMDb Peringkat Halus
Torten Holnap - Film bulvar yang nakal Komedi, Misteri 1 -4,86
Cumali Ceber: Allah Seni Alsin Komedi 1 -4.57
Badang Komedi, Fantasi 1 -4,74
yyyreek!!! Kosmiczna nominacja Komedi 1.1 -4.52
Orang Amerika yang Bangga Drama 1.1 -5.49
Browncoats: Perang Kemerdekaan Aksi, Fiksi Ilmiah, Perang 1.1 -3.71
Akhir Pekan Itu Hidup Komedi, Horor, Misteri 1.2 -4,53
Bolivia: el heroe Animasi, Biografi 1.2 -5.34
Bangkitnya Kelelawar Hitam Aksi, Fiksi Ilmiah 1.2 -3.65
hatsukoi Drama 1.2 -5.38

Milikku

Judul Aliran Peringkat IMDb Peringkat Halus
Orang Amerika yang Bangga Drama 1.1 -5.49
Santa dan Kelinci Es Krim Keluarga, Fantasi 1.3 -5.42
hatsukoi Drama 1.2 -5.38
Reis Biografi, Drama 1.5 -5.35
Bolivia: el heroe Animasi, Biografi 1.2 -5.34
Hanum & Rangga: Iman & Kota Drama, Romantis 1.2 -5.28
Setelah Musim Lalu Animasi, Drama, Fiksi Ilmiah 1.7 -5.27
Barschel - Mord di Genf Drama 1.6 -5.23
Rashu raifu Drama 1.5 -5.08
Kamifusen Drama 1.5 -5.08

Hal yang sama terjadi di sini, tetapi sekarang kita dapat melihat bahwa lebih banyak drama muncul dalam kasus yang disempurnakan daripada di IMDb, yang menunjukkan bahwa beberapa drama dapat di-over-ranking hanya untuk menjadi drama.

Mungkin podium yang paling menarik untuk dilihat adalah 10 film dengan perbedaan terbesar antara skor sistem peringkat IMDb dan yang saya haluskan. Film-film ini adalah film-film yang memiliki bobot lebih pada karakteristiknya yang tidak diketahui dan membuat film tersebut jauh lebih baik (atau lebih buruk) dari yang diharapkan untuk fitur-fiturnya yang diketahui.

Judul Peringkat IMDb Peringkat Halus Perbedaan
Kanashimi no beradonna 7.4 -0,71 8.11
Superstar Yesus 7.4 -0,69 8.09
Tembok Pink Floyd 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
Santa dan Tiga Beruang 7.1 -0,70 7.80
La alegre historia de Gober 7.5 -0,24 7.74
Piel de asno 7 -0,74 7.74
1776 7.6 -0,11 7.71

Jika saya adalah seorang sutradara film dan harus membuat film baru, setelah melakukan semua analisis data IMDb ini, saya dapat memiliki gagasan yang lebih baik tentang jenis film apa yang harus dibuat untuk mendapatkan peringkat IMDb yang lebih baik. Itu akan menjadi drama biografi animasi panjang yang akan menjadi remake dari film lama—misalnya, Amadeus. Mungkin ini akan memastikan peringkat IMDb yang bagus, tapi saya tidak yakin tentang keuntungan…

Apa pendapat Anda tentang film-film yang mendapat peringkat dalam ukuran baru ini? Anda menyukai mereka? Atau lebih suka yang original? Beri tahu saya di komentar di bawah!