今天来使用spark中的ALS算法做一个小推荐。需要数据的话可以点击查看初识sparklyr—电影数据分析,在文末点击阅读原文即可获取。
其实在R中还有一个包可以做推荐,那就是recommenderlab。如果数据量不大的时候可以使用recommenderlab包,之前也用该包做过电影评分预测模型(点击即可查看)。如果数据量较大还是推荐使用spark来进行计算。
在spark中包含了许多机器学习算法,其中就有一个推荐算法,即ALS。
ALS算法也就是协同过滤算法,它是基于矩阵分解的协同过滤,何为矩阵分解?就是把一个评分矩阵A分解为两个矩阵B,C。B*C=A。为什么要进行分解?那是因为矩阵A是一个稀疏矩阵,分解之后的B,C矩阵相对能稠密一点。使用该算法可以很方便的做一个推荐系统,核心代码只有三行。
一.读取数据
数据可以在初识sparklyr—电影数据分析文末点击阅读原文即可获取。
moviedata<-read.table("u.data",header = FALSE,sep = "\t")
#这四列数据分别表示:用户id,电影id