ビッグデータプラットフォームの下でSparkが製品の推薦を行う

1207 ワード

本稿ではALSアルゴリズムを用いて製品推奨を行う.キャリアにとって、サードパーティの付加価値業務を加えると、製品の数は千以上になりますが、消費者の傾向をどのように理解し、消費者に製品の推薦を行いますか?キャリアについては、より詳細な顧客情報を持つことができ、多くの方法があります.本稿で紹介する方法は消費者の購買行為に基づいて推薦し,電子商取引プラットフォームを採用して多くのALSアルゴリズムを採用することである.
ALSアルゴリズムの原理は多くのドキュメントで説明されているが、くどくどしない.大体user-item採点平均値は次元が極めて高い疎行列であり、ALSはuser-item行列を2つの低次元行列の積に分解し、降次元に達する方法であり、この2つの低次元行列の積を用いて、ユーザー採点を予測する.
SparkのmllibクラスライブラリはALSアルゴリズムを統合している
元のデータは次のように整理する必要があります.
userid     productid      rating
001             101             1.2
001             102             1.9
002             102              2.0
......
はい、直接コードをつけます.
from pyspark.mllib.recommendation import ALS
traindata=sc.textFile("\home\Alex\data.txt")
traindata=traindata.map(lambda line:line.split())
traindata.take(3)
traindata=traindata.map(lambda x:(x[0],x[1],x[2]))
#            
traindata.count()
#     
numUsers=traindata.map(lambda x:x[0]).distinct().count()
numUsers
#        
numProducts=traindata.map(lambda x:x[1]).distinct().count()
numProducts
#      
model=ALS.train(traindata,10,10,0.01)
#  user    
model.recommendProducts(user=001,num=5)
#  user product  
model.predict(user=001,product=101)