Stars Realigned:改進 IMDb 評級系統

已發表: 2022-03-11

電影觀眾有時會使用排名來選擇觀看的內容。 自己這樣做後,我注意到許多排名最高的電影都屬於同一類型:戲劇。 這讓我覺得排名可能有某種類型的偏見。

我在最受電影愛好者歡迎的網站之一 IMDb 上,該網站涵蓋了來自世界各地和任何年份的電影。 其著名的排名基於大量評論。 對於這個 IMDb 數據分析,我決定下載那裡的所有可用信息進行分析,並嘗試創建一個新的、改進的排名,該排名將考慮更廣泛的標準。

IMDb 評級系統:過濾 IMDb 的數據

我能夠下載 1970 年至 2019 年間發行的 242,528 部電影的信息。 IMDb 給我的每一個信息是: RankTitleIDYearCertificateRatingVotesMetascoreSynopsisRuntimeGenreGrossSearchYear

為了有足夠的信息進行分析,我需要每部電影的評論數量最少,所以我做的第一件事就是過濾評論少於 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指的是字符串。 RankGross在原始 IMDb 數據集中是這樣的,例如,由於有數千個分隔符。

在開始細化分數之前,我必須進一步分析這個數據集。 對於初學者來說, CertificateMetascoreGross字段有超過 50% 的空值,因此它們沒有用處。 Rank 本質上取決於 Rating(要改進的變量),因此,它不包含任何有用的信息。 ID也是如此,因為它是每部電影的唯一標識符。

最後, TitleSynopsis是短文本字段。 可以通過一些 NLP 技術使用它們,但由於文本數量有限,我決定在這項任務中不考慮它們。

在第一個過濾器之後,我剩下了GenreRatingYearVotesSearchYearRuntime 。 在Genre字段中,每部電影有多個類型,以逗號分隔。 因此,為了捕捉具有多種類型的附加效果,我使用 one-hot 編碼對其進行了轉換。 這產生了 22 個新的布爾字段(每種類型一個),如果電影具有這種類型,則值為 1,否則為 0。

IMDb 數據分析

為了查看變量之間的相關性,我計算了相關矩陣。

所有剩餘的原始列和新的流派列之間的相關矩陣。接近零的數字會導致網格中出現空白。負相關導致紅點,正相關導致藍點。點越大越暗,相關性越強。 (主要文章正文中描述了視覺亮點。)

這裡,接近 1 的值表示強正相關,接近 -1 的值表示強負相關。 通過這張圖,我做了很多觀察:

  • YearSearchYear是絕對相關的。 這意味著它們可能具有相同的值,並且兩者都與只有一個相同,所以我只保留了Year
  • 一些領域預期正相關,例如:
    • MusicMusical
    • Adventure Action
    • Adventure Animation
  • 負相關也一樣:
    • DramaHorror
    • ComedyHorror
    • HorrorRomance
  • 與我注意到的關鍵變量( Rating )相關:
    • 它與RuntimeDrama具有正相關且重要的相關性。
    • 它與VotesBiographyHistory的相關性較低。
    • 它與Horror具有相當大的負相關性,而與ThrillerActionSci-FiYear具有較低的負相關性。
    • 它沒有任何其他顯著的相關性。

似乎長劇收視率很高,而短片恐怖片則不然。 在我看來——我沒有數據來檢查它——它與產生更多利潤的電影類型無關,比如漫威或皮克斯電影。

可能是在這個網站上投票的人不是一般人標準的最佳代表。 這是有道理的,因為那些花時間在網站上提交評論的人可能是某種具有更具體標準的電影評論家。 無論如何,我的目標是去除常見電影功能的效果,所以我試圖在這個過程中去除這種偏見。

IMDb 評級系統中的流派分佈

下一步是分析每種類型在評分中的分佈。 為此,我根據出現在原始Genre字段中的第一個流派創建了一個名為Principal_Genre的新字段。 為了可視化這一點,我製作了一個小提琴圖。

小提琴圖,顯示每種流派的評分分佈。

再一次,我可以看到Drama與高收視率相關,而Horror與低收視率相關。 但是,該圖表還顯示其他類型的得分也不錯: BiographyAnimation 。 它們的相關性沒有出現在前面的矩陣中可能是因為這些類型的電影太少了。 所以接下來我按流派創建了一個頻率條圖。

一個條形圖,顯示數據庫中每種類型的電影數量。喜劇、戲劇和動作的頻率約為 6,000 或以上;犯罪和恐怖超過 2,000;其餘的都在 1,000 以下。

實際上, BiographyAnimation的電影很少, SportAdult也是如此。 因此,它們與Rating的相關性不是很好。

IMDb 評級系統中的其他變量

之後,我開始分析連續協變量: YearVotesRuntime 。 在散點圖中,您可以看到RatingYear之間的關係。

評級和年份的散點圖。

正如我們之前看到的, 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

如您所見,所有模型的性能都相似,因此我使用其中一些模型來分析更多數據。 我想知道每個字段對評分的影響。 最簡單的方法是觀察線性模型的參數。 但是為了避免之前對它們的扭曲,我對數據進行了縮放,然​​後重新訓練了線性模型。 重量如圖所示。

線性模型權重的條形圖,範圍從恐怖的接近 -0.25 到戲劇的接近 0.25。

在此圖中,很明顯兩個最重要的變量是HorrorDrama ,其中第一個對評級有負面影響,第二個對評級有正面影響。 還有其他領域會產生積極影響——比如AnimationBiography ——而ActionSci-FiYear則產生負面影響。 此外, Principal_Genre並沒有太大的影響,所以一部電影有哪些類型比哪個是主要類型更重要。

使用廣義加性模型 (GAM),我還可以看到對連續變量的更詳細影響,在本例中是Year

使用廣義相加模型的 Year 與 s(Year) 的關係圖。 s(年)值遵循一條曲線,從 1970 年的 0.6 附近開始,在 2010 年跌至 0 以下,到 2019 年再次增加到接近 0。

在這裡,我們有一些更有趣的東西。 雖然對於最近的電影來說,評分確實較低,但效果並不穩定。 它在 2010 年達到最低值,然後似乎正在“恢復”。 找出那一年之後電影製作中可能產生這種變化的事情會很有趣。

最好的模型是神經網絡,它的 RMSE 和 MAE 最低,但正如你所見,沒有模型達到完美的性能。 但就我的目標而言,這並不是壞消息。 可用的信息讓我可以很好地估計性能,但這還不夠。 還有一些我無法從 IMDb 獲得的其他信息使Rating與基於GenreRuntimeYear的預期分數不同。 它可能是演員表演、電影劇本、攝影或許多其他事情。

從我的角度來看,這些其他特徵在選擇觀看內容時真正重要。 我不在乎給定的電影是​​戲劇、動作還是科幻小說。 我希望它有一些特別的東西,讓我玩得開心,讓我學習一些東西,讓我反思現實,或者只是讓我開心的東西。

因此,我通過獲取 IMDb 評級並減去最佳模型的預測評級,創建了一個新的、精確的評級。 通過這樣做,我刪除了GenreRuntimeYear的影響,並保留了對我來說更重要的其他未知信息。

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 排名,但我不確定利潤……

您如何看待在這項新指標中排名的電影? 你喜歡他們嗎? 還是你更喜歡原版的? 在下面的評論中告訴我!