数据分享|R语言IMDb TOP250电影特征数据挖掘可视化分析受众偏好、排名、投票、评分(上)

简介: 数据分享|R语言IMDb TOP250电影特征数据挖掘可视化分析受众偏好、排名、投票、评分

全文链接:https://tecdat.cn/?p=32998


本文首先介绍了IMDb(互联网电影资料库) TOP250及其排名算法、评分机制利弊,帮助客户通过分析《黑暗骑士》、《肖申克的救赎》和《教父》三部影片评分数据,分析排名变动的原因点击文末“阅读原文”获取完整代码数据


其次,通过抓取曾经入选电影的生产国家、导演和演员、制作年份、风格流派以及当前入选的制作年份和各自的计数、平均打分,总结IMDb TOP250电影特征,最终得出互联网资料库Top250多为欧美国家制作于上世纪末本世纪初剧情片的分析结果。


IMDb简介


互联网电影资料库(Internet Movie Database,简称IMDb)是一个关于电影演员、电影、电视节目、电视明星、电子游戏和电影制作的在线数据库。IMDb创建于1990年10月17日,从1998年开始成为Amazon公司旗下网站,2010年是IMDb成立20周年纪念。对于电影的评分目前使用最多的就是IMDb评分。

Top250

Top250是IMDb的特色,里面列出了注册用户投票选出的有史以来最佳250部电影查看文末了解数据免费获取方式。只有供影院播出的影片可以参加评选,而短片,纪录片,连续短剧和电视电影不在其列。用户在从“1”(最低)到“10”(最高)的范围内对影片评分。得分经过数学公式(IMDb公开的Top250算法[1])的过滤而生成最后的评定。为了保护结果不受恶意投票的影响,并且,只有“经常投票的用户”的投票被记入结果,为保护公平性,成为该类用户的条件是保密的。


[1] The formula for calculating the Top Rated 250 Titles gives a true Bayesian estimate:

weighted rating (WR) = (v ÷ (v+m)) × R + (m ÷ (v+m)) × C =C+(R-C) ×1/(1+m/v)

where:

R = average for the movie (mean) = (Rating)

v = number of votes for the movie = (votes)

m = minimum votes required to be listed in the Top 250 (currently 25000)

C = the mean vote across the whole report (currently 7.0)

for the Top 250, only votes from regular voters are considered.

因此:临界值m=v,有Rating(WR)=(R+C)/2,即最终得分为用户打分和平均分的均值,用户打分有效,但不明显;v<>m时,有Rating(WR)→R,即打分用户越多,用户打分影响越大,越趋近用户真实打分。


查看数据


image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

head(df)
df$`Highest position`=apply(df[,c("rank1" ,"rank2")],1,min)

image.png

另外在五部曾经成为过Top1里面,除了《肖申克的救赎》和《教父》,《星球大战》、《黑暗骑士》、《指环王》都是轰动一时的大片;并且排名达到过第二的电影里面既有奥斯卡得主也有商业大片:这说明一部电影在上映或评选时引起的轰动会影响到IMDb排名的剧烈波动。此外,《教父》和《肖申克的救赎》的平均评分分别是9.11和9.10,另外三部拿过第一的电影在平均评分上与前二者有明显差距。


点击标题查阅往期内容


数据分享|R语言逐步回归、方差分析anova电影市场调查问卷数据可视化


01

02

03

04


排名算法探讨

IMDb Top250算法的思路就是通过每部影片的评分人数作为调节排序的杠杆:如果这部影片的评分人数低于一个预设值,影片的最终得分会向全部影片的平均分被拉低。

由此可见,平衡评分人数和得分,避免小众高分影片排前,是这个计算方法的出发点。可问题在于:调节整个榜单的排序主要依赖于评分人数预设值。若被设置的很低,那么最终的排序结果,就是每部影片自身评分从高到低在排序;若被设置得过高,那么只适用高曝光率的影片。该预设值从500被调整至25000,遗憾的是这个算法仍然无法很好的解决他们的问题。

考虑国内电影市场,2015年11月19日上映的《我的少女时代》,在2015年12月19日在豆瓣电影得到了累计超过11万人次的评分,而1942年上映的《卡萨布兰卡》,同时刻的评分人数还不到10万。近几年由于观影方式的多样化以及影院观影的持续火爆,使得新近上映的影片很轻松地就能获得大量的评分,相较之下,老片子的曝光机会少了很多。继续调节评分人数预设值已无法满足当前国内电影排行榜的实际需求。

评分机制利弊

对于大部分电影而言,长期来看评分是有一定参考价值的。但由于存在受雇于网络公关公司,或者狂热粉丝伪装成普通用户在网站上刷口碑,给竞争对手抹黑,借以操纵市场的行为,不可盲目迷信分数。

2008年7月18日《黑暗骑士》[1]上映时,诺兰狂热粉丝为了将其推上TOP1,昼夜不停给该片打10分,同时给当时TOP1的《教父》[2]打1分,终于把一部21世纪影片送上了TOP1宝座,也让《肖申克的救赎》的分数超越了《教父》。如今《黑暗骑士》终究不敌岁月洗礼跌下去了,不过《肖申克的救赎》[3]的优势却保留了下来,成了TOP1。

下面通过采集IMDb相应时段数据,说明该过程:

# 《教父》的IMDb排名走势图  
  
df = read_excel("imdb top250.xls", sheet = 3  )

image.png

从1998年开始,《教父》基本上稳定地排在Top 250榜单的第一名,而在2008年7月底,突然降到第3名,然后从当年8月10日起至今,回升并保持在第二。

data.frame(date,na.omit(df$Change),na.omit(rank,df$Rating),na.omit(df$V

image.png

在7月中旬之前,该片每天新增投票100多,但从大约7月20日起,每天新增投票超过1000,同时它的排名降到第2,然后在6天之内降至第3。

image.png


数据分享|R语言IMDb TOP250电影特征数据挖掘可视化分析受众偏好、排名、投票、评分(下):https://developer.aliyun.com/article/1497193

相关文章
|
3月前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
4月前
|
数据可视化 数据挖掘 图形学
R语言基础可视化:使用ggplot2构建精美图形的探索
【8月更文挑战第29天】 `ggplot2`是R语言中一个非常强大的图形构建工具,它基于图形语法提供了一种灵活且直观的方式来创建各种统计图形。通过掌握`ggplot2`的基本用法和美化技巧,你可以轻松地将复杂的数据转化为直观易懂的图形,从而更好地理解和展示你的数据分析结果。希望本文能够为你探索`ggplot2`的世界提供一些帮助和启发。
|
4月前
|
存储 数据采集 数据处理
R语言数据变换:使用tidyr包进行高效数据整形的探索
【8月更文挑战第29天】`tidyr`包为R语言的数据整形提供了强大的工具。通过`pivot_longer()`、`pivot_wider()`、`separate()`和`unite()`等函数,我们可以轻松地将数据从一种格式转换为另一种格式,以满足不同的分析需求。掌握这些函数的使用,将大大提高我们处理和分析数据的效率。
|
4月前
|
数据可视化 数据挖掘 数据处理
R语言高级可视化技巧:使用Plotly与Shiny制作互动图表
【8月更文挑战第30天】通过使用`plotly`和`shiny`,我们可以轻松地创建高度互动的数据可视化图表。这不仅增强了图表的表现力,还提高了用户与数据的交互性,使得数据探索变得更加直观和高效。本文仅介绍了基本的使用方法,`plotly`和`shiny`还提供了更多高级功能和自定义选项,等待你去探索和发现。希望这篇文章能帮助你掌握使用`plotly`和`shiny`制作互动图表的技巧,并在你的数据分析和可视化工作中发挥更大的作用。
|
2月前
|
数据挖掘 C语言 C++
R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。
【10月更文挑战第21天】时间序列分析是一种重要的数据分析方法,广泛应用于经济学、金融学、气象学、生态学等领域。R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。本文将介绍使用R语言进行时间序列分析的基本概念、方法和实例,帮助读者掌握R语言在时间序列分析中的应用。
62 3
|
3月前
R语言基于表格文件的数据绘制具有多个系列的柱状图与直方图
【9月更文挑战第9天】在R语言中,利用`ggplot2`包可绘制多系列柱状图与直方图。首先读取数据文件`data.csv`,加载`ggplot2`包后,使用`ggplot`函数指定轴与填充颜色,并通过`geom_bar`或`geom_histogram`绘图。参数如`stat`, `position`, `alpha`等可根据需要调整,实现不同系列的图表展示。
|
3月前
|
数据采集 数据可视化 数据挖掘
R语言在金融数据分析中的深度应用:探索数据背后的市场智慧
【9月更文挑战第1天】R语言在金融数据分析中展现出了强大的功能和广泛的应用前景。通过丰富的数据处理函数、强大的统计分析功能和优秀的可视化效果,R语言能够帮助金融机构深入挖掘数据价值,洞察市场动态。未来,随着金融数据的不断积累和技术的不断进步,R语言在金融数据分析中的应用将更加广泛和深入。
|
4月前
|
数据采集 机器学习/深度学习 数据挖掘
R语言数据清洗:高效处理缺失值与重复数据的策略
【8月更文挑战第29天】处理缺失值和重复数据是数据清洗中的基础而重要的步骤。在R语言中,我们拥有多种工具和方法来有效地应对这些问题。通过识别、删除或插补缺失值,以及删除重复数据,我们可以提高数据集的质量和可靠性,为后续的数据分析和建模工作打下坚实的基础。 需要注意的是,处理缺失值和重复数据时,我们应根据实际情况和数据特性选择合适的方法,并在处理过程中保持谨慎,以避免引入新的偏差或错误。
|
4月前
|
数据可视化
R语言可视化设计原则:打造吸引力十足的数据可视化
【8月更文挑战第30天】R语言可视化设计是一个综合性的过程,需要综合运用多个设计原则来创作出吸引力十足的作品。通过明确目标、选择合适的图表类型、合理运用色彩与视觉层次、明确标注与引导视线以及引入互动性与动态效果等原则的应用,你可以显著提升你的数据可视化作品的吸引力和实用性。希望本文能为你提供一些有益的启示和帮助。
|
4月前
|
数据处理
R语言数据合并:掌握`merge`与`dplyr`中`join`的巧妙技巧
【8月更文挑战第29天】如果你已经在使用`dplyr`进行数据处理,那么推荐使用`dplyr::join`进行数据合并,因为它与`dplyr`的其他函数(如`filter()`、`select()`、`mutate()`等)无缝集成,能够提供更加流畅和一致的数据处理体验。如果你的代码中尚未使用`dplyr`,但想要尝试,那么`dplyr::join`将是一个很好的起点。