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. 豆瓣电影数据分析的背景与意义
豆瓣电影数据分析的背景与意义是电影发展的衡量标准。根据查询相关资料信息显示:豆瓣已经成为国内电影爱好者、影评人士的聚集地,豆瓣评分已经成为国内一个评价电影的重要指标,豆瓣上积攒了大量电影数据为电影行业分析提供了重要资源,通过豆瓣电影来衡量国内外的电影的发展情况。