6.2案例1——推荐你喜爱的电影.pptx
《6.2案例1——推荐你喜爱的电影.pptx》由会员分享,可在线阅读,更多相关《6.2案例1——推荐你喜爱的电影.pptx(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、案例1推荐你喜爱的电影,授课人:,目录,01,提出问题,02,预备知识,任务2找到与某个用户最相似的n个用户,03,04,05,06,任务1合并电影基本信息和评分记录,解决方案,任务3给某个用户推荐前m部电影,PART 01,提出问题,随着人们生活节奏的加快,在休闲之余上网看看电影不失为一种放松身心的方式,面对网站里琳琅满目的影片,顾客自己有时也不知如何去选择。那么,我们是否可以利用前面所了解的推荐算法帮助顾客更有针对性的做出选择呢?,提出问题,PART 02,解决方案,为找到当前用户可能感兴趣的电影,我们首先要了解该用户的兴趣爱好,即他曾经看过哪些电影,对哪些电影评价较高,以此来搜集他的电影
2、偏好;其次,要找出与当前用户具有相同电影爱好的用户群体,看他们已经看过哪些影片,然后从这些影片中筛选出当前用户还没有看过的影片,最后按评分大小推荐给他,以达到主动满足顾客看电影的需求。 问题的解决方案如下图所示。,解决方案,PART 03,预备知识,1.电影数据集,电影推荐是个性化推荐领域的经典应用,在开始推荐任务之前,先认识下本案例要用到的数据集MovieLens。 MovieLens数据集包含多个用户对多部电影的评级数据,也包括电影元数据信息和用户属性信息。下载地址http:/files.grouplens.org/datasets/movielens/,有好几种版本,对应不同数据量,本文
3、所用的数据为1M的数据集。,预备知识,1.电影数据集,数据集解压后,可以看到四个主要的csv文件,它们分别是links.csv、movies.csv、ratings.csv和tags.csv。links介绍了该数据集中的movieId和imdb、tmdb中电影的对应关系,通过编号可以在网站上找到对应的电影链接。tags是用户的打标签数据,即标签化评价和打标签时间戳。下面重点介绍本案例推荐方法中用到的两个文件movies.csv和ratings.csv。它俩的结构如下表6-4、6-5所示。,预备知识,2.主键合并数据,关于用户-电影的数据非常多,为了管理的方便,这些数据分别存储到不同的文件中,但
4、在推荐过程中,要同时直观了解一部电影的关联信息,如用户评价过哪几部电影,它的名称是什么等等,这时就需要使用关键字将关联信息合并在一张表中。,关键字合并,就是通过一个或多个关键字将两个数据集沿x轴将行数据连接起来,结果集的列为原两个数据集列之和,但重复的主键列合二为一,此工作可以通过pandas模块中的merge函数完成。,预备知识,【引例6-1】把下图中两张表数据按主键横向合并。,实现的源代码(case6-1.ipynb)如下。 1 import pandas as pd #代码行2、3分别定义两张表的数据 2 df1 = pd.DataFrame(3,5,6,7,10,4,5,3,2,3,7
5、,9,10,4,9,8,columns=list(ABCD) 3 df2 = pd.DataFrame(6,8,4,11,8,9,7,5,1,8,14,9,columns=list(CEF) 4 data=pd.merge(df1,df2,on=C) #代码行4将数据框架df1、df2合并起来,逐行横向连接两表数据时,如果所在行关键字“C列”的数据相等,则保留连接结果,否则抛弃该连接行,查看连接结果data,如图6.9所示。,预备知识,PART 04,任务1合并电影基本信息和评分记录,为方便统计各用户对哪些电影进行了评分,需要将电影信息文件movies.csv与用户的评分记录文件ratings
6、.csv合并,从而为用户画像做好准备。新建文件6-2_task1.ipynb,根据任务目标,按照以下步骤和操作,完成任务1。 任务目标:将文件movies.csv与ratings.csv合并,形成格式为userId,rating,movieId,title的统计数据。 完成步骤: 1.读取文件数据 2.合并数据,任务1合并电影基本信息和评分记录,1.读取文件数据,通过以下代码将文件数据保存到数据框架DataFrame中。 1import pandas as pd 2from math import * 3movies = pd.read_csv(rdatamovies.csv) 4rating
7、s = pd.read_csv(rdataratings.csv) 代码行3、4中的变量movies 、ratings分别保存了电影信息和用户评价分数。,任务1合并电影基本信息和评分记录,2.合并数据,利用合并函数merge()将数据框架movies 、ratings按关键字“movieId”进行合并,并对合并后的数据集进行切片,只取userId,rating,movieId title4列数据,然后按用户编号进行升序排序,代码如下。 1data = pd.merge(movies, ratings, on=movieId) 2data=datauserId,rating, movieId,
8、title.sort_values(userId) data就是合并、切片并排序后的结果,前10行数据如下图所示。,任务1合并电影基本信息和评分记录,PART 05,任务2找到与某个用户最相似的n个用户,本案例采用基于用户的协同推荐算法来完成推荐工作,为此在任务1的基础上,接下来首先要统计某用户已评价了哪些电影,然后据此来计算某用户与其它用户的相似度,最后找到与该用户最相似的n个用户。根据任务目标,按照以下步骤和操作,完成任务2。 任务目标:根据基于用户的协同推荐算法,找到某用户最相似的n个用户。 完成步骤: 1.统计各用户评论的电影和评分 2.计算两个用户之间的相似度 3.找到与某用户最相似
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 6.2 案例 推荐 喜爱 电影
限制150内