美文网首页
SparkMLlib ALS算法

SparkMLlib ALS算法

作者: sheetakiki | 来源:发表于2017-08-23 08:58 被阅读0次

本次试验使用movieLens数据集的一千万行评分数据进行训练和预测,每个用户取预测评分最高的Top10存入HBase,代码如下:

#!/usr/bin/python
#encoding=utf-8

from pyspark import SparkContext
from pyspark.sql import SparkSession
from pyspark.mllib.recommendation import ALS, MatrixFactorizationModel, Rating
import happybase

connection = happybase.Connection('172.17.93.230', autoconnect=False)
connection.open()
connection.create_table('als_moive',{'recommend':dict()})
recommend = connection.table('als_moive')
sc = SparkContext(appName='als')

# Load and parse the data
data = sc.textFile("file:///root/recommend/test.csv")
ratings = data.map(lambda l: l.split(',')).map(lambda l: Rating(int(l[0]), int(l[1]), float(l[2])))
# Build the recommendation model using Alternating Least Squares
rank = 10
numIterations = 10
lambda_ = 0.02
blocks = 100
model = ALS.train(ratings, rank, numIterations, lambda_, blocks)
#model = ALS.trainImplicit(ratings, rank, numIterations,lambda_, alpha=0.1)
# Evaluate the model on training data
testdata = ratings.map(lambda p: (p[0], p[1]))
predictions = model.predictAll(testdata).map(lambda r: ((r[0], r[1]), r[2]))
ratesAndPreds = ratings.map(lambda r: ((r[0], r[1]), r[2])).join(predictions)
#print ratesAndPreds
MSE = ratesAndPreds.map(lambda r: (r[1][0] - r[1][1])**2).mean()
print("Mean Squared Error = " + str(MSE))
user_predict = model.recommendProductsForUsers(10).collect()

for x in user_predict:
    key = str(x[0])
    tmp = x[1]
    items = []
    for item in tmp:
        item_value = str(item.product) + ':' + str(item.rating)
        items.append(item_value)
    value = ','.join(items)
    recommend.put(key, {'recommend:item_value':value})

# Save and load model
model.save(sc, "file:///root/recommend/myCollaborativeFilter")
sameModel = MatrixFactorizationModel.load(sc, "target/tmp/myCollaborativeFilter")
sc.stop()

相关文章

  • SparkMLlib ALS算法

    本次试验使用movieLens数据集的一千万行评分数据进行训练和预测,每个用户取预测评分最高的Top10存入HBa...

  • sparkMllib的ALS过滤算法

    依托spark平台完成的电影推荐系统,上代码: 后续有对该程序的参数校调:参数校调程序 该程序应用到的数据:数据 ...

  • sparkMllib的ALS过滤算法调校参数

    对源程序的参数校调,下述如有不解,请到群内讨论:624108656 源程序:源程序,上代码: package al...

  • 总结

    1.ALS 2.基于ALS算法的改进 3.实验结果分析 4.结论 1.ALS 1.1ALS算法的基本思想 ALS(...

  • implicit 库 ALS 算法分析

    implicit 库 ALS 算法分析 ALS 算法 推荐模型基于“隐式反馈数据集的协同过滤”一文中描述的算法,其...

  • ALS推荐算法

    简要描述: ALS是交替最小二乘(alternating least squares)的简称。在机器学习的范畴中,...

  • (9)推荐算法

    (1)ALS交替最小二乘算法 ALS指使用交替最小二乘法求解的协同过滤算法。通过观察到的所有用户给产品...

  • 推荐系统 - ALS算法

    ALS简介 ALS算法中文翻译为 交替最小二乘法,其是一种矩阵分解算法;使用两个矩阵拟合用户 - 商品评分矩阵;为...

  • 协同过滤-ALS算法

    ALS算法应用场景 ALS属于数据挖掘,可以做推荐系统,比如电影推荐,商品推荐,广告推荐等. 原理就是给各个指标,...

  • 推荐系统9:MF推荐

    1.LFM推荐 思路和ALS算法类似,区别在于,ALS利用坐标下降法,LFM利用梯度下降法假设: 评分矩阵??,?...

网友评论

      本文标题:SparkMLlib ALS算法

      本文链接:https://www.haomeiwen.com/subject/pnzrdxtx.html