Spark 2.1.0 入门:协同过滤算法(Python版)

本文介绍了如何在Spark 2.1.0中使用Python实现协同过滤算法,包括数据读取、模型训练、预测评分以及模型评估。通过对MovieLens数据集的处理,构建了显性反馈和隐性反馈两个推荐模型,并计算了均方根误差进行性能评估。
摘要由CSDN通过智能技术生成

导入需要的包

from pyspark.ml.evaluation import RegressionEvaluator
from pyspark.ml.recommendation import ALS
from pyspark.sql import Row

根据数据结构创建读取规范
创建一个函数,返回即[Int, Int, Float, Long]的对象

def f(x):
rel = {}
rel['userId'] = int(x[0])
    rel['movieId'] = int(x[1])
    rel['rating'] = float(x[2])
    rel['timestamp'] = float(x[3])
return rel

读取数据

ratings = sc.textFile("file:///usr/local/spark/data/mllib/als/sample_movielens_ratings.txt").map(lambda line: line.split('::')).map(lambda p: Row(**f(p))).toDF()

然后把数据打印出来:

ratings.show()

构建模型
把MovieLens数据集划分训练集和测试集

training, test = ratings.randomSplit([0.8,0.2])

使用ALS来建立推荐模型,这里我们构建了两个模型,一个是显性反馈,一个是隐性反馈

alsExplicit  = ALS(maxIter=5, regPa
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值