龙空技术网

R语言数据挖掘实践——电影推荐系统综合实例(一)

懂码杂记 311

前言:

眼前看官们对“knn算法预测电影的评分”大体比较关切,你们都想要了解一些“knn算法预测电影的评分”的相关知识。那么小编同时在网摘上搜集了一些对于“knn算法预测电影的评分””的相关内容,希望你们能喜欢,大家快快来学习一下吧!

我们尝试将判别技术应用于实际,并使用MovieLens所提供的数据集为例展开。

MovieLens是一个推荐系统和虚拟社区网站,它的主要功能是运用协同过滤技术,以及所收集到的用户对电影的喜好信息,来向用户推荐电影。

具体来说,MovieLens可根据用户对一部分电影的评分,预测出该用户对其他电影的评分情况。当一个新用户进入MovieLens,他需要对15部电影评分,评分范围为1~5分,评分间隔为0.5分。这样一来,当用户查看某部电影时,MovieLens的推荐系统就可以根据之前获取的该用户电影偏好信息,即以往的评分来预测其对该电影的评分。 而推荐系统中最古老,同时也是最著名的算法就是K最近邻(kNN)算法。

kNN与推荐

kNN的一般原理在之前已经说明,这里为了自然地将此算法应用于推荐系统,我们结合推荐系统的基本思想对kNN原理进行更为具体通俗地阐述。

首先,kNN的基本思想简单来说就是,要评价一个未知的东西U,就去寻找K个与U相似的已知的东西,看看这些已知的东西大多是属于什么水平、什么程度、什么类别,据此就可以估计出U的水平、程度、类别。就像我们平常所说的,要看出一个人的性格,就去看他周围的朋友们都是怎样的一些人,这与kNN的原理是一个道理。

而运用于推荐系统中,我们以电影为例,假如我们现在想要预测一位注册名为A的用户对电影M的评分,根据kNN的思想,我们就可以找出K个与A对其他电影给予相似评分,且对电影M已经进行评分的用户,然后再用这K个用户对M的评分来预测A对M的评分。这种找相似用户的方法被称之为基于用户的kNN(User-based kNN)。

另外,我们也可以先找出K个与电影M相似的,并且A评价过的电影,然后再用这K部电影的评分来预测A对M的评分。这种找相似物品的方法叫作基于项目的kNN(Item-based kNN)。

MovieLens数据集说明

这里给出一个数据集的下载地址:,其中共有3个规模等级的数据集可供下载,分别为100k、1M、10M,其结构内容相同,仅样本量不同。这里我们选用100k的数据集,它包含1000位用户对1700部电影的评分信息。我们对其中3个重要的数据文件爱你进行说明。

u.data:含有943位用户对1682部电影总计10万条评分,且每位用户至少记录了其对20部电影的评分。格式上,每条数据按照永固ID(user id)、电影ID(item id)、评分(rating)以及时间戳(timestamp)4个变量列示,样本排序是无序的,其中我们将主要用到前三个变量信息。

u.item:记录每部电影的信息,包括电影ID(item id)、电影名称(movie title)、上映时间(release date)、视频发布时间(video release date)、网络电影资料库的网址(IMDb URL),以及是否为某类型电影的一系列二分变量,如是否为动作片(Action)、冒险片(Adventure)、动画片(Animation)等,这是探究各电影间相似性的重要数据资料。

u.user:记录每位用户的基本信息,包括用户ID(user id)、年龄(age)、性别(gender)、职业(occupation)以及邮编(zip code)。这是探究各用户间相似性的重要信息来源。

标签: #knn算法预测电影的评分