R语言实现电影评分推荐

本文介绍了如何使用R语言的recommenderlab包处理MovieLens 100k电影评分数据,建立并评估基于用户和项目的协同过滤推荐模型。通过数据预处理、模型建立、评分预测以及模型评估,展示R语言在推荐系统中的应用。
摘要由CSDN通过智能技术生成

recommenderlab 是R语言非常强大的包,能帮助使用者针对评分数据或者0-1(不喜欢/喜欢)二分数据开发和测试推荐算法,本文就是利用该包对于 movielens 的电影评分数据进行预测和推荐,会对比基于用户的协同过滤和基于项的协同过滤在推荐效果上的差别。

1 获取电影数据

电影数据来源于http://grouplens.org/datasets/movielens/网站,本文分析的数据是MovieLens 100k,总共有100,000个评分,来自1000位用户对1700部电影的评价。

2 数据准备和清理

设置好工程路径后,可用读入数据,注意数据的格式,第一列是 user id,第二列是 item id,第三列是 rating,第四列是时间戳,时间戳这里用不到,可去掉。

> ml100k <- read.table("u.data", header = F, stringsAsFactors = T)

> head(ml100k)

   V1  V2 V3        V4

1 196 242  3 881250949

2 186 302  3 891717742

3  22 377  1 878887116

> ml100k <- ml100k[, -4]

可以简单看下 rating 的分布情况

> prop.table(table(ml100k[, 3]))

         1          2          3          4          5

0.06106870 0.12977099 0.41984733 0.32061069 0.06870229

> summary(ml100k[, 3])

   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's

  1.000   3.000   3.000   3.206   4.000   5.000     812

可以看出,3 星和 4 星的数量最多,接近总数的75%,1 星和 5 星的数量最少,和预期的一致。数据格式和我们想要的行为用户,列为项目的 ratingMatrix 还有很大的差距,对此可以使用 reshape 包的 cast() 进行转换,注意转换后的缺失值默认为NA。

> library(reshape)

> ml100k <- cast(ml100k, V1 ~ V2, value = "V3")

> ml.useritem[1:3, 1:6]

   1  2  3  4  5  6

1  5  3  4  3  3  5

2  4 NA NA NA NA NA

3 NA NA NA NA NA NA

到此,把数据整理成 ratingMatrix,接下来利用 recommenderlab 处理数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值