機器學習預測電影評價

前陣子在資料科學競賽網站Kaggle上看到網友chuansun76分享網路上最大的電影資料庫IMDb(Internet Movie Database) 從1916年到2016年歷時100年共超過5,000部電影的資料集,覺得這樣的資料很有趣,於是決定動手試試看!有興趣的話資料可以在這裡下載。

imdb-screen-shot

紅色框線的區域都是資料集中有抓取的欄位,其中比較特別的包涵電影海報中出現多少頭像,主要演員的FaceBook帳號有多少讚數等等。以下是資料集大致的樣子。

imdb-dataset-screen-shot

從電影的資料探索開始吧!

hist of score freq.jpeg

首先看看IMDb中電影的評分分佈,在5,000+部電影的評分之中分布大致上呈現偏左分佈(Negtive(left) skewed distribution),分布狀況也相當平均,前250名的電影評分大約是在8.0分以上,評分為1~5分的電影大概就是那些被視為爛片的電影。而評分前三名的電影分別是1974年上映的災難電影《火燒摩天樓》(Towering Inferno)、1994年上映的小說改編電影《刺激1995》(The Shawshank Redemption) 和1978年上映的犯罪電影《教父》(The Godfather)。

由於用人臉辨識技術偵測電影海報有多少人物頭像的欄位真的非常特別,所以決定針對這個欄位做一些探索。(筆者在前幾篇也曾經實作過關於人臉偵測的相關實作,有興趣的話可以看看這裡

hist of face number in poster.jpeg

電影海報的人臉數量分佈幾乎集中在10個以下,其中又以沒有人頭的電影海報為最大宗。而最多頭像的電影海報則是《戀夏500日》(The 500 days of summer) 的43個。

five_hundred_days_of_summer
戀夏500日電影海報

在新電影公開播放前,相信電影海報是在公車、捷運、報章雜誌、或是網頁靜態廣告投放中相當重要的宣傳媒介之一,因此進一步瞭解電影海報和評分與票房的關係。gross-and-imdb-score

上圖是IMDb上電影評分( imdb_score)、電影票房(gross) 和電影海報上頭像數量(count) 的關係,剛剛我們知道電影海報頭像數量的分佈幾乎都分佈在10個以下,其中又以0~5個為大宗,所以在此我將海報人頭數量在5個以上的電影歸在同一類,也就是圖片中的 over 5。

黑色方框中大致上是評價最高的電影,不難看出海報的人頭數量都是0~4,五個頭像以上的電影海報無論是票房或評分都相對較低。

當然這樣的探索性視覺化圖表還有很多可以發揮的空間,如:國家、FaceBook的讚數等等和IMDb評分的關係,筆者這裡僅列出研究這個主題的過程中幾個有趣的例子供參考。

電影評分預測

這次嘗試了用隨機森林(Random Forest)來建立模型,其中隨機設定資料集的80%設定為訓練集(Training set)剩下的20%為測試集(Testing set),過程中刪除了一些對此模型沒有幫助的特徵,如電影名稱、電影的IMDb網址等,也刪除了一些電影上映前沒辦法得知的訊息,如:票房,同時也刪除一些建模過程太多類別的類別型變數,如:導演、電影主角等等。

經過篩選後,拿來建模的特徵有:

  • color
  • duration
  • director FaceBook likes
  • actor 1, 2 and 3 FaceBook likes
  • face number in poster
  • budget
  • number user for review

此次的隨機森林產生了500個樹,而每個樹有3個特徵分裂節點(No. of variables tried at each split),均方差(Mean Square Error, MSE) 為0.6738299, 解釋變異量的百分比(% Var explained) 為38.13

fit.jpeg

特徵的重要程度則如下,播映時間是最為重要的特徵,其次為評論人數、預算和導演的FaceBook按讚人數。

variable-importance

發現與洞見

  • 通常在線播映時間越久的電影,在IMDb的評價就會越高。
  • 評論越多的電影,似乎也意味著比較受歡迎。
  • 電影海報的人頭數量並沒有真正影響電影評價,和前面探索階段的觀察有落差。
  • 票房最高的前幾名和前述評價最高的前幾名電影有極大落差,票房高的前幾名幾乎都是近二十年內的電影,如:阿凡達、鐵達尼號、侏羅紀公園和復仇者聯盟,而這些電影在評價的前幾名似乎沒有出現,因此幾十年來的幣值改變和通膨的影響似乎是在票房這個欄位中不可忽視的影響因素。(這部分是個人觀察後的結果,因此沒有呈獻在文章中)

如果對程式內容有興趣,我將詳細的code操作內容放在Github上供參考:https://github.com/poweihuang/IMDb

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

Create a website or blog at WordPress.com

向上 ↑

%d 位部落客按了讚: