PySpark实现ALS推荐算法

该博客详细介绍了如何利用PySpark的ALS(Alternating Least Squares)算法实现推荐系统。首先,从数据预处理开始,包括创建电影名称与ID的映射,并将用户评分数据转换为适当的格式。接着,配置Spark环境并加载数据。然后,通过ALS训练模型,调整参数如秩(rank)和迭代次数(iterations),并进行隐式ALS训练。最后,计算模型的均方误差(MSE)以及为特定用户推荐电影。
摘要由CSDN通过智能技术生成

@PySpark 实现ALS推荐算法

spark-submit movie_rec.py

from pyspark import SparkConf, SparkContext
from pyspark.mllib.recommendation import ALS, Rating
from math import sqrt

获取所有movie名称和id对应集合

def movie_dict(file):
dict = {}
with open(file,‘r’,encoding = “ISO-8859-1”) as f:
#i=0
for line in f:
#i+=1
#print(“line %d:” %i)
arr= line.split(’|’)
#print(“arr len %d” %len(arr))
movie_id = int(arr[0])
movie_name = str(arr[1])
dict[movie_id] = movie_name
return dict

转换用户评分数据格式

def get_rating(str):
arr = str.split(’\t’)
user_id = int(arr[0])
movie_id = int(arr[1])
user_rating = float(arr[2])
return Rating(user_id, movie_id, user_rating)

conf = SparkConf().setMaster(‘lo

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值