1. 豆瓣評分是怎麼計算出來的
眾所周知,在中國的電影觀看者心中,豆瓣電影的評分是很強大的一個參考標准。一些有文藝情懷的青年可以在此閑話國際新浪潮,批判一些超現實主義,而迷妹們可以為自己心中的偶像所,參演的影片點贊,支持……更多的人,可能根本對電影沒有太多研究,甚至只憑喜好或者「聽別人說」而去觀影的同時也會選擇在買票之前參考一下豆瓣電影的評分。
可以說,豆瓣電影的評分一度成為大家評價電影質量的標桿,甚至可以影響一部電影的票房高低,那麼豆瓣電影的評分標准到底是怎樣的呢?
上訴圖片是2015 年的時候豆瓣總經理阿北發表的一篇長文中所說的,意思很明確,豆瓣電影的評分就是基於用戶打分:把豆瓣用戶的打分(一到五星換算為零到十分)加起來,再除以用戶數。就是豆瓣電影的評分,這個分數完全來自程序的計算,中間沒有編輯審核,每隔幾分鍾就自動更新一下,以便快速的展現出及時的評分。
可以說,這是一個「簡單粗暴」的評分機制。觀眾的評價將以非常直接的方式反映在電影的分數上,心情好時打的「五星」和心情不好時的「一星」都將被加入到簡單的計算公式中,最終變成其他人的參考標准。
但同時,阿北也說到,豆瓣也是有「非正常打分」規避機制的。作為一個擁有一億多用戶的「大眾評審團」,每個用戶都是「一人一票」制,而且隨著打分人數的增加,單人評分對整體評分走向的影響其實是在不斷被稀釋。因此,評分計算方法很簡單,但「刷分」基本上是不可能的。
所以,總體來說,豆瓣的電影評分是參與評分人群的意見「平均值」,雖然有很多的規避以及防範措施,但總體上受評分人個人喜好的影響較大。但我們都知道,豆瓣的用戶,更多的是在全國一二線城市,而且受眾群體大多數都是人們口中所謂的文藝青年們,所以,對於擁有相對「高端」用戶群體的豆瓣,其評分還是偏「小眾」的
2. 豆瓣電影數據分析報告
近年來電影產業迅猛發展,其已成為重要的藝術和娛樂。同時,電影也是說明一個國家的經濟水平。因此分析電影書有助於電影工業的發展趨勢。
1、 每年的電影的數量,以及每年的電影平均評分
2、 電影那種類型最多,以及前三名的百分比
3、 各個國家的電影數量最多
4、 中國跟美國各個年代對比
1、 每年的電影的數量,以及每年的電影分均分
由圖可見,從 2000 年開始電影年產量的趨勢不斷上升,而近年些年的評分越來越
低,從評分均值上看一直屬於下滑狀態。可以推測出,電影的數量會有大幅的上升,
而電影的質量整體下滑。
2、 電影那種類型最多,以及前三名的百分比
從詞雲圖的電影類型可見,劇情、動作、喜劇的電影類型出現的頻率很高。而從環形圖
中可以看出動作、喜劇、劇情這三個電影類型對比,歷年來劇情的電影類型是最多的,其
次是喜劇,由此可以了解觀眾的喜好。
3、電影數量在前五名國家的評分情況?
從樹狀圖可以看出美國的電影數量最多,其次是中國、日本、英國、法國。
4、中國跟美國各個年代對比?
從圖中可以看出中國的電影發展趨勢一直處以上升階段,而美國的發展趨勢不太樂
觀。以目前中國的發展趨勢很快就會追上美國,目前美國還是領先階段。
3. 從豆瓣電影評分演算法說起
在PingWest看到一篇《豆瓣電影打分規則竟如此簡單粗暴…》,作者寫這篇文章是因為豆瓣創始人阿北最近寫了一篇博文《豆瓣電影評分八問》,阿北博文是為了回應一些外界對豆瓣電影評分的質疑,然後作者看到這篇博文後,覺得豆瓣電影的評分演算法有點low,就寫了這樣一篇吐槽文章。
那麼這個很low的演算法究竟是什麼樣子的呢?此處引用阿北原文。
簡單說就是計算每部電影評論的算數平均值,並按此值來排名。
對這個演算法持懷疑態度,因為如果按照這個演算法的話,假設一部小眾文藝片有10個用戶給了全五星,和一部經典老片比如《十二怒漢》相比,小眾文藝片排名比《十二怒漢》還要高,不過這在豆瓣電影TOP250裡面不太可能。阿北可能只是為了文章寫作方便或是保密起見,把演算法故意說簡單了,因為假如豆瓣公布了詳細的演算法,那電影發行方的水軍們十分有可能針對這個演算法制定出有效的刷分策略的。可憐我還真信了。
下面是阿北當年在知乎上的 回答 。
順著PingWest這篇文章給的鏈接,我又去阮一峰博客看了他在2012年寫的《基於用戶投票的排名演算法》系列文章,以及這些文章里的參考文章,發現排名演算法很好玩很有趣,非常有收獲,推薦閱讀。
看完這些文章,我就想知道知乎的評論排名演算法是怎麼樣的,於是去知乎找到他們產品經理 @黃濤的回答 ,知乎在2014年底更新的演算法使用的正是Reddit在2009年引入的評論排名演算法,也就是阮一峰老師在系列文章第5篇中介紹的「威爾遜區間」演算法。在用這個演算法之前,知乎用的是直接利用好評減去差評的結果來給評論排序,這種演算法的缺點我就不介紹了,可以查看參考資料[1]。
「威爾遜區間」演算法的數學基礎是數學家Edwin B. Wilson在1927年提出的威爾遜區間修正公式,後來芝加哥工程師Evan Miller在2009年寫了一篇 博客 ,認為該修正公式可以用來做排名。
這個演算法的核心思想是這樣的:
因為常見的置信區間計算公式「正態區間」不能很好的照顧小樣本數量的准確性,而威爾遜提出的修正公式能很好地修正小樣本數量的准確性問題,所以大家採用「威爾遜區間」演算法較多,像Reddit、Yelp、Digg,還有知乎。
不過這種演算法也有缺點,缺點就是對於那些得票少的新評論很難獲得出頭之日,因為得票少,置信區間就會寬,排名位置就會低,得到的關注也就會更少。
前面阿北的回答裡面提到了IMDB,IMDB是亞馬遜旗下的一個類似豆瓣的電影排名網站,他們在處理TOP250電影排名問題時採用了「貝葉斯平均」演算法來解決,這個演算法的核心思想是既然新興產品的評分數量很少,那我就為你人工補償一定的投票。關於這種演算法在阮一峰老師系列文章第6篇中有介紹。
更多參考資料:
4. 如何用聚類取把電影評分數據集分類
聚類分析指將物理或抽象對象的集合分組為由類似的對象組成的多個類的分析過程。它是一種重要的人類行為。
聚類分析的目標就是在相似的基礎上收集數據來分類。聚類源於很多領域,包括數學,計算機科學,統計學,生物學和經濟學。在不同的應用領域,很多聚類技術都得到了發展,這些技術方法被用作描述數據,衡量不同數據源間的相似性,以及把數據源分類到不同的簇中。
5. 影視劇的豆瓣評分有高有低,豆瓣是根據什麼進行評分的
豆瓣的評論分為網友評價之後,通過加權平均之後給出的評分。
豆瓣將不同影視劇評分分為5個等級,一個等級對應2分,比如1星為2分,2星為4分,3星為6分,4星為8分,5星為10分等。
有10個網友對一個影視劇進行評分,其中5人給出6分,3人給出8分,1人給出10分,1分給出了4分,那麼這些分數經過加權平均之後可能就是6.8分。當然,如果評分的人數越多的話,可能就會與影視劇實際給人的觀感一致。
比如特效五毛、劇情爛的《上海堡壘》,就有22萬人評價,給出2.9的低分。
當然,這些分數都是人評出來的。所以也存在有“刷分”這種現象:可能存在惡意注冊,惡意刷分的情況,不過大多數的影視劇評分,還是可以參考借鑒的。
6. 利用 Python 分析 MovieLens 1M 數據集
MovieLens數據集是一個關於電影評分的數據集,裡麵包含了從IMDB, The Movie DataBase上面得到的用戶對電影的評分信息,詳細請看下面的介紹。
文件裡面的內容是幫助你如何通過網站id在對應網站上找到對應的電影鏈接的。
movieId, imdbId, tmdbId
表示這部電影在movielens上的id,可以通過鏈接 https://movielens.org/movies/(movieId) 來得到。
表示這部電影在imdb上的id,可以通過鏈接 http://www.imdb.com/title/(imdbId)/
來得到。
movieId, title, genres
文件里包含了一部電影的id和標題,以及該電影的類別
movieId, title, genres
每部電影的id
電影的標題
電影的類別(詳細分類見readme.txt)
文件裡面的內容包含了每一個用戶對於每一部電影的評分。
數據排序的順序按照userId,movieId排列的。
文件裡面的內容包含了每一個用戶對於每一個電影的分類
數據排序的順序按照userId,movieId排列的。
=======
該數據集(ml-latest-small)描述了電影推薦服務[MovieLens]( http://movielens.org )的5星評級和自由文本標記活動。它包含9742部電影的100836個評級和3683個標簽應用程序。這些數據由610位用戶在1996年3月29日到2018年9月24日之間創建。該數據集於2018年9月26日生成。
隨機選擇用戶以包含在內。所有選定的用戶評分至少20部電影。不包括人口統計信息。每個用戶都由一個id表示,並且不提供其他信息。
數據包含在 links.csv , movies.csv , ratings.csv 和 tags.csv 文件中。有關所有這些文件的內容和用法的更多詳細信息如下。
這是一個發展的數據集。因此,它可能會隨著時間的推移而發生變化,並不是共享研究結果的適當數據集。
========
要確認在出版物中使用數據集,請引用以下文件:
========================
數據集文件以[逗號分隔值]文件寫入,並帶有單個標題行。包含逗號( , )的列使用雙引號(```)進行轉義。這些文件編碼為UTF-8。如果電影標題或標簽值中的重音字元(例如Misérables,Les(1995))顯示不正確,確保讀取數據的任何程序(如文本編輯器,終端或腳本)都配置為UTF-8。
MovieLens用戶隨機選擇包含。他們的ID已經匿名化了。用戶ID在 ratings.csv 和 tags.csv 之間是一致的(即,相同的id指的是兩個文件中的同一用戶)。
數據集中僅包含至少具有一個評級或標記的電影。這些電影ID與MovieLens網站上使用的電影ID一致(例如,id 1 對應於URL https://movielens.org/movies/1 )。電影ID在 ratings.csv , tags.csv , movies.csv 和 links.csv 之間是一致的.
通過[pandas.read_csv]將各表轉化為pandas 的DataFrame對象
其中用到的參數為分隔符sep、頭文件header、列名定義names、解析器引擎engine
這里和書上相比多用了engine參數,engine參數有C和Python,C引擎速度更快,而Python引擎目前功能更完整。
可用pandas.merge 將所有數據都合並到一個表中。merge有四種連接方式(默認為inner),分別為
通過索引器查看第一行數據,使用基於標簽的索引.loc或基於位置的索引.iloc
可通過數據透視表( pivot_table )實現
該操作產生了另一個DataFrame,輸出內容為rating列的數據,行標index為電影名稱,列標為性別,aggfunc參數為函數或函數列表(默認為numpy.mean),其中「columns」提供了一種額外的方法來分割數據。
by參數的作用是針對特定的列進行排序(不能對行使用),ascending的作用是確定排序方式,默認為升序
增加一列存放平均得分之差,並對其排序,得到分歧最大且女性觀眾更喜歡的電影
按照電影標題將數據集分為不同的groups,並且用size( )函數得到每部電影的個數(即每部電影被評論的次數),按照從大到小排序,取最大的前20部電影列出如下
按照電影名稱分組,用agg函數通過一個字典{『rating』: [np.size, np.mean]}來按照key即rating這一列聚合,查看每一部電影被評論過的次數和被打的平均分。取出至少被評論過100次的電影按照平均評分從大到小排序,取最大的10部電影。
7. 豆瓣電影數據分析
這篇報告是我轉行數據分析後的第一篇報告,當時學完了Python,SQL,BI以為再做幾個項目就能找工作了,事實上……分析思維、業務,這兩者遠比工具重要的多。一個多月後回過頭來看,這篇報告雖然寫得有模有樣,但和數據分析報告還是有挺大差別的,主要原因在於:a.只是針對豆瓣電影數據分析太過寬泛了,具體關鍵指標到底是哪些呢?;b.沒有一個確切有效的分析模型/框架,會有種東一塊西一塊的拼接感。
即便有著這些缺點,我還是想把它掛上來,主要是因為:1.當做Pandas與爬蟲(Selenium+Request)練手,總得留下些證明;2.以豆瓣電影進行分析確實很難找到一條業務邏輯線支撐,總體上還是描述統計為主;3.比起網上能搜到的其他豆瓣電影數據分析,它更為詳細,可視化效果也不錯;
本篇報告旨在針對豆瓣電影1990-2020的電影數據進行分析,首先通過編寫Python網路爬蟲爬取了51375條電影數據,採集對象包括:電影名稱、年份、導演、演員、類型、出品國家、語言、時長、評分、評論數、不同評價佔比、網址。經過去重、清洗,最後得到29033條有效電影數據。根據電影評分、時長、地區、類型進行分析,描述了評分與時長、類型的關系,並統計了各個地區電影數量與評分。之後,針對演員、導演對數據進行聚合,給出產量與評分最高的名單。在分析過程中,還發現電影數量今年逐步增加,但評分下降,主要原因是中國地區今年低質量影視作品的增加。
另外,本篇報告還爬取了電影票房網( http://58921.com/ )1995-2020年度國內上映的影片票房,共採集4071條數據,其中3484條有效。進一步,本文分析了國內院線電影票房年度變化趨勢,票房與評分、評價人數、時長、地區的關系,票房與電影類型的關聯,並給出了票房最高的導演、演員與電影排名。
清洗、去重後,可以看到29033條數據長度、評分、評論數具有以下特點:
結合圖1(a)(b)看,可以看到電影數據時長主要集中在90-120分鍾之間,向兩極呈現階梯狀遞減,將數據按照短(60-90分鍾),中(90-120分鍾),長(120-150分鍾),特長(>150分鍾)劃分,各部分佔比為21.06%, 64.15%, 11.95%, 2.85%。
結合圖2(a)看,可以看到我們採集到的電影數據評分主要集中在6.0-8.0之間,向兩極呈現階梯狀遞減,在此按照評分劃分區間:2.0-4.0為口碑極差,4.0-6.0為口碑較差,6.0-7.0為口碑尚可,7.0-8.0為口碑較好,8.0-10.0為口碑極佳。
這5種電影數據的佔比分別為:5.78%, 23.09%, 30.56%, 29.22%, 11.34%
再將評分數據細化到每年進行觀察,可以發現,30年內電影數量與年度電影均分呈反相關,年度均分整體呈現下降趨勢,2016年電影均分最低,電影數量最多。
進一步做出每個年份下不同評級等級的電影數據佔比,可以發現,近年來,評分在[2.0,6.0)的電影數據佔比有著明顯提升,評分在[6.0,7.0)的數據佔比不變,評分在[7.0,10.0)的數據佔比減少,可能原因有:
對照圖5,可以發現,評分與時長、評論人數的分布大致呈現漏斗狀,高分電影位於漏鬥上部,低分電影位於漏斗下部。這意味著,如果一部電影的評論人數很多(特別是超過30w人觀影),時長較長(大於120min),那麼它大概率是一部好電影。
根據各個國家的電影數量作圖,可以得到圖6,列出電影數量前十的國家可得表格2,發現美國在電影數量上占第一,達到8490部,中國其次,達6222部。此外,法國,英國,日本的電影數量也超過1000,其餘各國電影數量相對較少。這可以說明美國電影有著較大的流量輸入,在中國產生了較大的影響。
進一步分析各國電影的質量,依據評分繪制評分箱線圖可得圖7,在電影數量排名前20的國家中:
接著我們可以探索,哪個國家的電影對豆瓣評分隨年份下降的貢獻最大,考慮到電影數量對應著評分的權重。根據上述各國的電影評分表現,我們可以猜測電影數量較多的國家可能對年度均分的下降有較大影響。於是,我們再計算出這些國家的年度電影均分,並與整體均分進行比較分析。
再作出中國大陸,中國台灣,中國香港的均分箱線圖圖9(a),可以看到,大陸電影均分低於港台電影,且存在大量低分電影拉低了箱體的位置。
分析相關性可得,大陸、香港、台灣電影年度均分與全部評分關聯度分別為R=0.979,0.919,0.822,說明濾去台灣和香港電影,大陸電影年度均分的變化趨勢與全部評分變化更接近。圖9(b)可以進一步反映這一點。
可以看到,大部分類型集中在X×Y=[10000,30000]×[6.00,7.50]的區間范圍內,劇情、喜劇、愛情、犯罪、動作類電影數量上較多,說明這些題材的電影是近三十年比較熱門的題材,其中劇情類電影佔比最多,音樂、傳記類電影平均得分更高,但在數量上較少,動作、驚悚類電影評論人數雖多,但評價普遍偏低。
除此之外,還有兩塊區域值得關註:
根據類型對電影數據進行聚合,整理得到各類型電影評分的時間序列,計算它們與整體均分時間序列的相關性,可得表格4與圖11,可以看到劇情,喜劇,懸疑這三種類型片與總分趨勢變化相關性最強,同時劇情、喜劇類電影在電影數量上也最多,因此可以認為這兩類電影對於下跌趨勢影響最大,但其餘類別電影的相關性也達到了0.9以上,說明幾種熱門的電影得分的變化趨勢與總體均分趨勢一致。
前面已經得知,中美兩國電影佔比最高,且對於均分時間序列的影響最大。在此,進一步對兩國電影進行類型分析,選取幾種主要的類型(數量上較多,且相關性較高)進行分析,分別是劇情,喜劇,愛情,驚悚,動作,懸疑類電影,繪制近年來幾類電影的數量變化柱狀圖與評分箱線圖可得圖12,13,14,15。
對導演與演員進行聚合,得到數據中共有15011名導演,46223名演員。按照作品數量在(0,2], (2,5], (5,10], (10,20], (20,999]進行分組統計導演數量,可以發現,15009名導演中有79.08%只拍過1-2部作品,46220名演員中有75.93%只主演過1-2部作品。忽略那些客串、跑龍套的演員,數據總體符合二八定律,即20%的人占據了行業內的大量資源。
在此,可以通過電影得分、每部電影評論人數以及電影數目尋找優秀的電影導演與演員。這三項指標分別衡量了導演/演員的創作水平,人氣以及產能。考慮到電影數據集中可能有少量影視劇/劇場版動畫,且影視劇/劇場版動畫受眾少於電影,但得分普遍要高於電影,這里根據先根據每部電影評論數量、作品數量來篩選導演/演員,再根據電影得分進行排名,並取前30名進行作圖,可得圖17,18。
結合電影票房網( http://58921.com/ )採集到的3353條票房數據,與豆瓣數據按照電影名稱進行匹配,可以得到1995-2020年在中國大陸上映的電影信息,分別分析中國內地電影的數量、票房變化趨勢,票房與評分、評價人數、時長、地區以及類型的關系,此外還給出了不同導演與演員的票房表現以及影片票房排名。
如圖19所示,國內票房數據與上映的電影數量逐年遞增,2020年記錄的只是上半年的數據,且由於受疫情影響,票房與數量驟減。這說明在不發生重大事件的情況下,國內電影市場規模正在不斷擴大。
對電影數據根據類型進行聚合,繪制散點圖21,可以發現:
提取導演/演員姓名,對導演/演員欄位進行聚合,計算每個導演/演員的票房總和,上映電影均分、以及執導/參與電影數目進行計算,作出票房總和前30名的導演/演員,可得圖22,23,圖中導演/演員標號反映了票房排名,具體每位導演/演員的上映影片數量、均分、每部電影評價人數、平均時長與總票房在表5、表6中給出。
最後根據電影票房進行排名,得到票房排名前20的電影如表格7所示,可以看到絕大部分上榜電影都是中國電影,索引序號為3、10、12、14、18、19為美國電影,這也反映了除國產電影之外,好萊塢大片占據較大的市場。
本篇報告採集了1990-2020年間豆瓣電影29033組有效數據,從豆瓣電影的評分、時長、地區、類型、演員、導演以及票房等信息進行分析評價,主要有以下結論:
8. 電影評分數據統計分析的作用和意義
通過觀眾對電影的評分的分析,可以在一定程度上給電影行業啟發。數據分析是指用適當的統計分析方法對收集來的大量數據進行分析,將它們加以匯總和理解並消化,以求最大化地開發數據的功能,發揮數據的作用。數據分析是為了提取有用信息和形成結論而對數據加以詳細研究和概括總結的過程。
9. 如何用聚類取把電影評分數據集分類
spss聚類分析如果是使用的歐式平方距離進行的分類會產生一張梯度表,利用它做圖可以形成聚類的樹狀圖,圖上距離越近的類別相似度越高,表格反而沒有樹狀圖看起來直觀。樹狀圖以距離為標准進行分類,一般學位論文或者期刊論文都採用發表樹狀圖的形式來進行聚類分析表述
10. 豆瓣電影數據分析的背景與意義
豆瓣電影數據分析的背景與意義是電影發展的衡量標准。根據查詢相關資料信息顯示:豆瓣已經成為國內電影愛好者、影評人士的聚集地,豆瓣評分已經成為國內一個評價電影的重要指標,豆瓣上積攢了大量電影數據為電影行業分析提供了重要資源,通過豆瓣電影來衡量國內外的電影的發展情況。