movielens 1m 的mysql_数据分析案例--MovieLens 1M数据集

本章节以及后续章节的源码,当然也可以从我的github下载,在源码中我自己加了一些中文注释。

GroupLens Research(http://www.grouplens.org/node/73)采集了一组从20世纪90年末到21世纪初由MovieLens用户提供的电影评分数据。这些数据中包括电影评分、电影元数据(风格类型和年代)以及关于用户的人口统计学数据(年龄、邮编、性别和职业等)。基于机器学习算法的推荐系统一般都会对此类数据感兴趣。

1、  MovieLens 1M数据集含有来自6000名用户对4000部电影的100万条评分数据。它分为三个表:评分、用户信息和电影信息。将该数据从zip文件中解压出来之后,可以通过pandas.read_table将各个表分别读到一个pandas DataFrame对象中:

d47147151d7f

d47147151d7f

2、假设我们想要根据性别和年龄计算某部电影的平均得分,如果将所有数据都合并到一个表中的话问题就简单多了。我们先用pandas的merge函数将ratings跟users合并到一起,然后再将movies也合并进去。pandas会根据列名的重叠情况推断出哪些列是合并(或连接)键:

d47147151d7f

d47147151d7f

d47147151d7f

3、按性别计算每部电影的平均得分,用透视表pivot_table方法。该操作产生了另一个DataFrame,其内容为电影平均得分(即参数values和aggfunc共同作用的结果),行标为电影名称(即参数index),列标为性别(即columns)

d47147151d7f

d47147151d7f

4、过滤掉评分数据不够250条的电影,先对title进行分组,然后利用size()得到一个含有各电影分组大小的Series对象

d47147151d7f

该索引中含有评分数据大于250条的电影名称,然后就可以根据从前面的mean_ratings中选取所需要的行了

d47147151d7f

d47147151d7f

5、了解女性观众最喜欢的电影。按F列降序排列

d47147151d7f

6、找出男性和女性观众分歧最大的电影

方法:给mean_ratings加上一个用于存放平均得分之差的列,并对其进行排序,得出女性观众更喜欢看的电影

d47147151d7f

按"diff"排序即可得到分歧最大且女性观众更喜欢的电影:

d47147151d7f

7、对排序结果反序并取出前15行,得到男性观众更喜欢的电影

d47147151d7f

8、想要知道分歧最大的电影那个(不考虑性别因素),则可以计算得分数据的方差或标准差

根据电影名称分组的得分数计算标准差,并用active_titles过滤掉评论少于250的电影:

d47147151d7f

快速学习:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值