Stars Realigned:改進 IMDb 評級系統
已發表: 2022-03-11電影觀眾有時會使用排名來選擇觀看的內容。 自己這樣做後,我注意到許多排名最高的電影都屬於同一類型:戲劇。 這讓我覺得排名可能有某種類型的偏見。
我在最受電影愛好者歡迎的網站之一 IMDb 上,該網站涵蓋了來自世界各地和任何年份的電影。 其著名的排名基於大量評論。 對於這個 IMDb 數據分析,我決定下載那裡的所有可用信息進行分析,並嘗試創建一個新的、改進的排名,該排名將考慮更廣泛的標準。
IMDb 評級系統:過濾 IMDb 的數據
我能夠下載 1970 年至 2019 年間發行的 242,528 部電影的信息。 IMDb 給我的每一個信息是: Rank
、 Title
、 ID
、 Year
、 Certificate
、 Rating
、 Votes
、 Metascore
、 Synopsis
、 Runtime
、 Genre
、 Gross
和SearchYear
。
為了有足夠的信息進行分析,我需要每部電影的評論數量最少,所以我做的第一件事就是過濾評論少於 500 條的電影。 這產生了一組 33,296 部電影,在下表中,我們可以看到對其字段的摘要分析:
場地 | 類型 | 空計數 | 意思是 | 中位數 |
---|---|---|---|---|
秩 | 因素 | 0 | ||
標題 | 因素 | 0 | ||
ID | 因素 | 0 | ||
年 | 詮釋 | 0 | 2003年 | 2006年 |
證書 | 因素 | 17587 | ||
評分 | 詮釋 | 0 | 6.1 | 6.3 |
投票 | 詮釋 | 0 | 21040 | 2017 |
元評分 | 詮釋 | 22350 | 55.3 | 56 |
概要 | 因素 | 0 | ||
運行 | 詮釋 | 132 | 104.9 | 100 |
類型 | 因素 | 0 | ||
總的 | 因素 | 21415 | ||
搜索年 | 詮釋 | 0 | 2003年 | 2006年 |
注意:在 R 中, Factor
指的是字符串。 Rank
和Gross
在原始 IMDb 數據集中是這樣的,例如,由於有數千個分隔符。
在開始細化分數之前,我必須進一步分析這個數據集。 對於初學者來說, Certificate
、 Metascore
和Gross
字段有超過 50% 的空值,因此它們沒有用處。 Rank 本質上取決於 Rating(要改進的變量),因此,它不包含任何有用的信息。 ID
也是如此,因為它是每部電影的唯一標識符。
最後, Title
和Synopsis
是短文本字段。 可以通過一些 NLP 技術使用它們,但由於文本數量有限,我決定在這項任務中不考慮它們。
在第一個過濾器之後,我剩下了Genre
、 Rating
、 Year
、 Votes
、 SearchYear
和Runtime
。 在Genre
字段中,每部電影有多個類型,以逗號分隔。 因此,為了捕捉具有多種類型的附加效果,我使用 one-hot 編碼對其進行了轉換。 這產生了 22 個新的布爾字段(每種類型一個),如果電影具有這種類型,則值為 1,否則為 0。
IMDb 數據分析
為了查看變量之間的相關性,我計算了相關矩陣。
這裡,接近 1 的值表示強正相關,接近 -1 的值表示強負相關。 通過這張圖,我做了很多觀察:
-
Year
和SearchYear
是絕對相關的。 這意味著它們可能具有相同的值,並且兩者都與只有一個相同,所以我只保留了Year
。 - 一些領域預期正相關,例如:
-
Music
與Musical
-
Adventure
Action
-
Adventure
Animation
-
- 負相關也一樣:
-
Drama
與Horror
-
Comedy
與Horror
-
Horror
與Romance
-
- 與我注意到的關鍵變量(
Rating
)相關:- 它與
Runtime
和Drama
具有正相關且重要的相關性。 - 它與
Votes
、Biography
和History
的相關性較低。 - 它與
Horror
具有相當大的負相關性,而與Thriller
、Action
、Sci-Fi
和Year
具有較低的負相關性。 - 它沒有任何其他顯著的相關性。
- 它與
似乎長劇收視率很高,而短片恐怖片則不然。 在我看來——我沒有數據來檢查它——它與產生更多利潤的電影類型無關,比如漫威或皮克斯電影。
可能是在這個網站上投票的人不是一般人標準的最佳代表。 這是有道理的,因為那些花時間在網站上提交評論的人可能是某種具有更具體標準的電影評論家。 無論如何,我的目標是去除常見電影功能的效果,所以我試圖在這個過程中去除這種偏見。
IMDb 評級系統中的流派分佈
下一步是分析每種類型在評分中的分佈。 為此,我根據出現在原始Genre
字段中的第一個流派創建了一個名為Principal_Genre
的新字段。 為了可視化這一點,我製作了一個小提琴圖。
再一次,我可以看到Drama
與高收視率相關,而Horror
與低收視率相關。 但是,該圖表還顯示其他類型的得分也不錯: Biography
和Animation
。 它們的相關性沒有出現在前面的矩陣中可能是因為這些類型的電影太少了。 所以接下來我按流派創建了一個頻率條圖。
實際上, Biography
和Animation
的電影很少, Sport
和Adult
也是如此。 因此,它們與Rating
的相關性不是很好。
IMDb 評級系統中的其他變量
之後,我開始分析連續協變量: Year
、 Votes
和Runtime
。 在散點圖中,您可以看到Rating
和Year
之間的關係。
正如我們之前看到的, Year
似乎與Rating
呈負相關:隨著年份的增加,評級方差也增加,在較新的電影中達到更多的負值。
接下來,我為Votes
製作了相同的情節。
在這裡,相關性更加清晰:投票數越高,排名越高。 然而,大多數電影的票數並不多,在這種情況下, Rating
的差異更大。
最後,我查看了與Runtime
的關係。
同樣,我們有一個類似的模式,但更強大:更高的運行時間意味著更高的評級,但很少有高運行時間的情況。
IMDb 評級系統改進
經過所有這些分析,我對我正在處理的數據有了更好的了解,所以我決定測試一些模型來預測基於這些字段的評級。 我的想法是,我的最佳模型預測與真實Rating
之間的差異將消除共同特徵的影響,並反映使電影比其他電影更好的特定特徵。
我從最簡單的模型開始,線性模型。 為了評估哪個模型表現更好,我觀察了均方根 (RMSE) 和平均絕對值 (MAE) 誤差。 它們是此類任務的標準措施。 此外,它們與預測變量處於同一尺度,因此易於解釋。
在第一個模型中,RMSE 為 1.03,MAE 為 0.78。 但是線性模型假設誤差獨立,中位數為零,方差恆定。 如果這是正確的,“殘差與預測值”圖應該看起來像沒有結構的雲。 所以我決定用圖表來證實這一點。
我可以看到,在預測值中最多有 7 個,它具有非結構化形狀,但在此值之後,它具有明顯的線性下降形狀。 因此,模型假設很糟糕,而且我對預測值有“溢出”,因為在現實中, Rating
不能超過 10。
在之前的IMDb數據分析中, Votes
越高, Rating
越高; 但是,這種情況發生在少數情況下,並且需要大量選票。 這可能會導致模型失真並產生此Rating
溢出。 為了檢查這一點,我評估了使用相同模型會發生什麼,刪除了Votes
字段。
這好多了! 它具有更清晰的非結構化形狀,沒有溢出預測值。 Votes
字段也取決於評論者的活動,不是電影的特色,所以我決定也放棄這個字段。 去除它之後的錯誤是 RMSE 上的 1.06 和 MAE 上的 0.81——稍微差一點,但不是那麼多,我更喜歡有更好的假設和特徵選擇,而不是在我的訓練集上有更好的性能。
IMDb 數據分析:其他模型的效果如何?
接下來我做的是嘗試不同的模型來分析哪個表現更好。 對於每個模型,我使用隨機搜索技術來優化超參數值和 5 折交叉驗證以防止模型偏差。 下表是獲得的估計誤差:
模型 | 均方根誤差 | MAE |
---|---|---|
神經網絡 | 1.044596 | 0.795699 |
提升 | 1.046639 | 0.7971921 |
推理樹 | 1.05704 | 0.8054783 |
加姆 | 1.0615108 | 0.8119555 |
線性模型 | 1.066539 | 0.8152524 |
懲罰線性調節器 | 1.066607 | 0.8153331 |
神經網絡 | 1.066714 | 0.8123369 |
貝葉斯嶺 | 1.068995 | 0.8148692 |
支持向量機 | 1.073491 | 0.8092725 |
如您所見,所有模型的性能都相似,因此我使用其中一些模型來分析更多數據。 我想知道每個字段對評分的影響。 最簡單的方法是觀察線性模型的參數。 但是為了避免之前對它們的扭曲,我對數據進行了縮放,然後重新訓練了線性模型。 重量如圖所示。

在此圖中,很明顯兩個最重要的變量是Horror
和Drama
,其中第一個對評級有負面影響,第二個對評級有正面影響。 還有其他領域會產生積極影響——比如Animation
和Biography
——而Action
、 Sci-Fi
和Year
則產生負面影響。 此外, Principal_Genre
並沒有太大的影響,所以一部電影有哪些類型比哪個是主要類型更重要。
使用廣義加性模型 (GAM),我還可以看到對連續變量的更詳細影響,在本例中是Year
。
在這裡,我們有一些更有趣的東西。 雖然對於最近的電影來說,評分確實較低,但效果並不穩定。 它在 2010 年達到最低值,然後似乎正在“恢復”。 找出那一年之後電影製作中可能產生這種變化的事情會很有趣。
最好的模型是神經網絡,它的 RMSE 和 MAE 最低,但正如你所見,沒有模型達到完美的性能。 但就我的目標而言,這並不是壞消息。 可用的信息讓我可以很好地估計性能,但這還不夠。 還有一些我無法從 IMDb 獲得的其他信息使Rating
與基於Genre
、 Runtime
和Year
的預期分數不同。 它可能是演員表演、電影劇本、攝影或許多其他事情。
從我的角度來看,這些其他特徵在選擇觀看內容時真正重要。 我不在乎給定的電影是戲劇、動作還是科幻小說。 我希望它有一些特別的東西,讓我玩得開心,讓我學習一些東西,讓我反思現實,或者只是讓我開心的東西。
因此,我通過獲取 IMDb 評級並減去最佳模型的預測評級,創建了一個新的、精確的評級。 通過這樣做,我刪除了Genre
、 Runtime
和Year
的影響,並保留了對我來說更重要的其他未知信息。
IMDb 評級系統替代方案:最終結果
現在讓我們看看我的新評分與真實 IMDb 評分的 10 部最佳電影:
數據庫
標題 | 類型 | IMDb 評級 | 細化評級 |
---|---|---|---|
Ko to tamo peva | 冒險,喜劇,劇情 | 8.9 | 1.90 |
地舖2號 | 冒險,家庭 | 8.9 | 3.14 |
El senor de los anillos: El retorno del rey | 冒險,戲劇,奇幻 | 8.9 | 2.67 |
El senor de los anillos: La comunidad del anillo | 冒險,戲劇,奇幻 | 8.8 | 2.55 |
安貝·西瓦姆 | 冒險,喜劇,劇情 | 8.8 | 2.38 |
哈巴姆·西尼菲·塔蒂爾德 | 冒險,喜劇,劇情 | 8.7 | 1.66 |
El senor de los anillos: Las dos torres | 冒險,戲劇,奇幻 | 8.7 | 2.46 |
手印呼喚 | 冒險,戲劇,愛情 | 8.7 | 2.34 |
星際迷 | 冒險,戲劇,科幻 | 8.6 | 2.83 |
未來之輪 | 冒險,喜劇,科幻 | 8.5 | 2.32 |
礦
標題 | 類型 | IMDb 評級 | 細化評級 |
---|---|---|---|
地舖2號 | 冒險,家庭 | 8.9 | 3.14 |
星際迷 | 冒險,戲劇,科幻 | 8.6 | 2.83 |
El senor de los anillos: El retorno del rey | 冒險,戲劇,奇幻 | 8.9 | 2.67 |
El senor de los anillos: La comunidad del anillo | 冒險,戲劇,奇幻 | 8.8 | 2.55 |
Kolah ghermezi va pesar khale | 冒險,喜劇,家庭 | 8.1 | 2.49 |
El senor de los anillos: Las dos torres | 冒險,戲劇,奇幻 | 8.7 | 2.46 |
安貝·西瓦姆 | 冒險,喜劇,劇情 | 8.8 | 2.38 |
Los caballeros de la mesa cuadrada | 冒險,喜劇,奇幻 | 8.2 | 2.35 |
手印呼喚 | 冒險,戲劇,愛情 | 8.7 | 2.34 |
未來之輪 | 冒險,喜劇,科幻 | 8.5 | 2.32 |
如您所見,領獎台並沒有徹底改變。 這是意料之中的,因為 RMSE 並沒有那麼高,我們在這裡觀察頂部。 讓我們看看後 10 名發生了什麼:
數據庫
標題 | 類型 | IMDb 評級 | 細化評級 |
---|---|---|---|
Holnap tortent - 一個 nagy bulvarfilm | 喜劇,懸疑 | 1 | -4.86 |
Cumali Ceber:阿拉塞尼阿爾辛 | 喜劇 | 1 | -4.57 |
巴當 | 喜劇,奇幻 | 1 | -4.74 |
耶耶! 名義上的科斯米奇納 | 喜劇 | 1.1 | -4.52 |
驕傲的美國人 | 戲劇 | 1.1 | -5.49 |
棕色大衣:獨立戰爭 | 動作,科幻,戰爭 | 1.1 | -3.71 |
它生活的周末 | 喜劇,恐怖,懸疑 | 1.2 | -4.53 |
玻利瓦爾:el heroe | 動畫,傳記 | 1.2 | -5.34 |
黑蝙蝠的崛起 | 動作,科幻 | 1.2 | -3.65 |
初戀 | 戲劇 | 1.2 | -5.38 |
礦
標題 | 類型 | IMDb 評級 | 細化評級 |
---|---|---|---|
驕傲的美國人 | 戲劇 | 1.1 | -5.49 |
聖誕老人和冰淇淋兔子 | 家庭,奇幻 | 1.3 | -5.42 |
初戀 | 戲劇 | 1.2 | -5.38 |
雷斯 | 傳記,戲劇 | 1.5 | -5.35 |
玻利瓦爾:el heroe | 動畫,傳記 | 1.2 | -5.34 |
Hanum & Rangga:信仰與城市 | 劇情,愛情 | 1.2 | -5.28 |
上賽季之後 | 動畫、戲劇、科幻 | 1.7 | -5.27 |
Barschel - Genf的Mord | 戲劇 | 1.6 | -5.23 |
羅修來風 | 戲劇 | 1.5 | -5.08 |
卡米福森 | 戲劇 | 1.5 | -5.08 |
這裡也發生了同樣的事情,但現在我們可以看到,在精緻案例中出現的劇集比在 IMDb 中出現的劇集更多,這表明有些劇集可能只是因為劇集而被高分。
也許最有趣的領獎台是 IMDb 評分系統評分和我的精煉評分之間差異最大的 10 部電影。 這些電影更加重視其未知特徵,並且使電影因其已知特徵而比預期的要好(或差)得多。
標題 | IMDb 評級 | 細化評級 | 區別 |
---|---|---|---|
Kanashimi no beradonna | 7.4 | -0.71 | 8.11 |
耶穌會巨星 | 7.4 | -0.69 | 8.09 |
平克弗洛伊德牆 | 8.1 | 0.03 | 8.06 |
天子之蛋 | 7.6 | -0.42 | 8.02 |
吉本·特克·內亞 | 9.4 | 1.52 | 7.87 |
百樂 | 7.8 | 0.00 | 7.80 |
聖誕老人和三隻熊 | 7.1 | -0.70 | 7.80 |
斯克羅治的阿萊格里歷史 | 7.5 | -0.24 | 7.74 |
皮埃爾德阿斯諾 | 7 | -0.74 | 7.74 |
1776 | 7.6 | -0.11 | 7.71 |
如果我是一名電影導演,並且必須製作一部新電影,在完成所有這些 IMDb 數據分析之後,我可以更好地了解製作什麼樣的電影才能獲得更好的 IMDb 排名。 這將是一部長篇動畫傳記劇,將翻拍一部老電影——例如《艾瑪迪斯》。 可能這會確保一個良好的 IMDb 排名,但我不確定利潤……
您如何看待在這項新指標中排名的電影? 你喜歡他們嗎? 還是你更喜歡原版的? 在下面的評論中告訴我!