内容正文:
项目挑战:影评数据分析
年 级:高二年级
学 科:高中信息技术(浙教版)
一、项目情境
学校影评协会向全校学生征集一份影评数据分析报告,期望这份报告能够尽量多地挖掘出影评数据背后的信息,如我国电影业的发展状况、趋势、电影人之间的关系及影响等。
二、项目分析
1.获取数据的途径
二、项目分析
1.获取数据的途径
收集数据名称 豆瓣 IMDb 1905电影网 猫眼 ……
片名
评分
上映时间
题材类型
出品方
演职员
同类排名
评论
……
二、项目分析
2.预测可以分析出的结果
可能的结果1:
依据数据1:
可能的结果2:
依据数据2:
……
Top250的影片类型及未来发展趋势预测
影片类型、影片排名、数量、评分情况等
演员之间的关系和影响
演职员表、影片时间等
三、合作探究
1.获取数据
网络爬虫软件(八爪鱼采集器)
网络搜索关键词获取
编写代码实现抓取
三、合作探究
1.获取数据
为了更好地处理数据,我们可以使用MySQL数据库进行数据的存储和处理
三、合作探究
2.数据分析及可视化
创建数据库t_douban_movie_top_250
字段 描述 类型和长度 主键 外键 是否可空
id id int (20) 是 是 否
movie_rank 电影名次 varchar (200) 否 否 是
movie_name 电影名 varchar (200) 否 否 是
movie_director 电影导演 varchar (200) 否 否 是
movie_writer 电影作家 varchar (200) 否 否 是
movie_starring 电影明星 text (0) 否 否 是
movie_type 电影类型 varchar (100) 否 否 是
movie_country 影片制片国家 varchar (100) 否 否 是
movie_language 影片语言 varchar (100) 否 否 是
movie_release_date 影片上映日期 varchar (100) 否 否 是
movie_run_time 影片片长 varchar (100) 否 否 是
movie_second_name 影片又名 varchar (200) 否 否 是
movie_imdb_href IMDb 链接 varchar (200) 否 否 是
movie_rating 影片总评分 varchar (20) 否 否 是
movie_comments_user 影片评论人数 varchar (20) 否 否 是
movie_five_star_ratio 影片5星占比 varchar (20) 否 否 是
movie_four_star_ratio 影片4星占比 varchar (20) 否 否 是
movie_three_star_ratio 影片3星占比 varchar (20) 否 否 是
movie_two_star_ratio 影片2星占比 varchar (20) 否 否 是
movie_one_star_ratio 影片1星占比 varchar (20) 否 否 是
movie_note 影评 varchar (200) 否 否 是
?
三、合作探究
2.数据分析及可视化
数据清洗:
例如我们发现有两个字段是空值没有内容,可能是因为有的电影没有又名的原因,所以没有获取到相应的数据,这里就可以将没有电影又名的信息用电影名赋值或是删除。
实现代码如下:
三、合作探究
2.数据分析及可视化
影片类型出现的次数
通过电影类型movie_type字段对其影片的类型做统计绘制出以影片类型为X轴,出现的次数为Y轴的柱状图。
三、合作探究
2.数据分析及可视化
影片类型出现的次数
通过对电影的类型的统计图中我们可以看出剧情类的电影占据了头位,爱情喜剧类的也不在少数。电影类型是观影者选择是否观看此影片的重要因素之一。“剧情”、“爱情”、“喜剧”是受众主流,电影制作方可以多制作些爱情喜剧剧情类型的电影,可增加播放量。
三、合作探究
2.数据分析及可视化
影片时长分布
首先将片长数据赋值给Y轴,然后将X轴的参数设置为1,设置其标题属性等信息后使用plt.show()方法即可。就得到了250部影片在同一标准值下的影片片长分布图。
三、合作探究
2.数据分析及可视化
影片时长分布
通过片长分布图所示,可以看出大部分优秀的电影的时长在80-130分钟之间,时间过短显得没有内容,时间太长会有种拖剧情的感觉,一部好的电影的时长尽量在这个区间,内容剧情刚刚好。
三、合作探究
2.数据分析及可视化
相关系数用来观察两个变量之间的相关程度。Pearson相关系数是统计学中常用的三大相关系数之一,Pearson(皮尔逊)相关系数是衡量线性关联程度的指标。具体的求算公式如下:
皮尔逊相关系数的经验解释如下:
①当r=±1 时,各个点完全在一条直线上,这时两个变量是完全线性相关。
②当r=0时,两个变量不相关,这时散点图上的n个点可能毫无规律。
③当r>0时,两个变量为正相关;当r<0时,两个变量为负相关。
④当|r|≥0.8时,两个变量为高度相关;当0.5≤|r|<0.8时,两个变量为中度相关;当0.3≤|r|<0.5时,两个变量为低度相关;当|r|<0.3时,两个变量之间的相关程度极弱,可视不相关。
三、合作探究
2.数据分析及可视化
在Python中使用corr函数可以计算两个数据序列之间的相关系数,可以使用pandas库中的corr()函数,使用pandas中的corr()函数时,需要先将需要计算相关系数的两个数据序列放入DataFrame中,再调用corr()函数,如下面的示例:
import pandas as pd # 将数据放入DataFrame中
df = pd.DataFrame({'x': [1, 2, 3, 4, 5], 'y': [5, 4, 3, 2, 1]}) # 计算相关系数
corr = df['x'].corr(df['y'])
print(corr)
三、合作探究
2.数据分析及可视化
评分与排名关系
首先定义plt对象设置其规格大小,X、Y轴标题等等一些初始的信息,然后将评分的数据传给X轴,排名数据传给Y轴,通过两者的数据相交的点组成两者的关系散点图。将Y轴的数据倒置效果更佳。最后通过使用.corr函数求出两个列值的相关系数,并以此来判断两者的相关性。
三、合作探究
2.数据分析及可视化
评分与排名关系
通过评分对影片排名的关系图所示,我们可以看出评分大多是集中在 8.3 - 9.2 之间,随评分的升高,豆瓣Top250排名名次也提前,但是通过观察得知评分并不是决定排名的唯一要素,通过输出的Pearson相关系数为-0.739,可以判定评分与排名之间为中度相关性。
三、合作探究
2.数据分析及可视化
基本图表可视化
位置数据可视化
文本数据可视化
层次数据可视化
网络数据可视化
时序数据可视化
三、合作探究
2.数据分析及可视化
三、合作探究
3.数据分析结果的检验
(1)分析结果的价值
(2)数据依据的说服力
(3)可视化效果的解释力
三、合作探究
4.撰写数据分析报告
(1)目标:此数据分析报告的背景与意欲达到的目标
(3)数据来源:简述支撑数据分析报告的数据来源及采集方法。
(4)关键发现:这一部分是数据分析报告的关键,由若干关键发现组成。 每一个关键发现都应该包括发现、数据依据、可视化图片、此分析的特点和优缺点等。
(5)结语:简述此报告的意义、潜在问题和未来进一步探究的方向。
(2)研究过程:描述小组成员为了达到预期目标所采用的方法与步骤。
四、交流评价
评价条目 说明 评分(1~10分) 评分主要依据阐述 后续完善方向
收集数据 数据来源、收集方法、数量大小、技术难度
处理数据 参与程度、格式符合、清洗技术、输出种类
分析数据 结论科学、角度多样、技术应用、自主探究
呈现方式 多样准确、报告形式、技术难度、发布方式
个人能力 技术掌握、学习方式、编程能力、交流能力
五、项目拓展
协同过滤算法有基于用户的协同过滤和基于物品的协同过滤。现有某网站的评分数据集,包含观众观影后的评分记录,其数据格式如下所示:
"张文":{"王牌保镖":7.0,"追击":7.3,"绣春刀Ⅱ":7.4,……},
"鲁建":{"王牌保镖":7.2,"追击":6.9,……},
"刘思义":{"追击":7.5,"绣春刀Ⅱ":7.0,……},
"李京一":{"王牌保镖":6.9,"绣春刀Ⅱ":7.4,……}},……
编写一个简易的评分预测程序,实现从键盘上输入某个已经注册用户的姓名和电影名,输出预测这个用户给这部电影的打分。
五、项目拓展
2.特征工程:
(1)形成电影特色的特征集合。
(2) 对硬特征进行特征降维。
(3)对软特征进行编码。
编码后的硬特征和软特征通常可以作为训练用户组中的特征,
用于用户群体编辑(群体过滤)筛选出相似的用户群体。
1.准备数据:
对电影名称等特征进行预处理,如转换为统一的电影类型。然后对用户评分数据进行标准化。
五、项目拓展
3.用户聚类:
(1)首先,根据个体评分值的标准化处理,将用户进一步划分为不同的群体。
(2)然后,使用聚类算法将用户群体进行聚类,每个聚类代表一组具有相似兴趣和行为特征的用户。
(3)聚类结果应包括每个用户群组的特征集合和聚类数量。
4.用户相似度计算和推荐:
(1)从用户聚类结果中,找出用户在相似度矩阵中具有相对较高相似度的用户群组。
(2)使用用户过滤 。
$$