Python ALS算法火花MLlib-我如何获得我自己的;“个人推荐”;(我没有排名的电影的排名)
我正在Azure Databricks中使用PySpark。我使用Sparks MLlib库ALS算法来预测电影收视率,这是成功的。然而,我试图添加一个数据框,其中包含我对10部随机选择的电影的评级。当我这样做的时候,我只得到我已经排名过的电影的预测排名 我希望能够使用该模型根据他们的排名获得推荐 我有执行以下任务的Spark代码:Python ALS算法火花MLlib-我如何获得我自己的;“个人推荐”;(我没有排名的电影的排名),python,machine-learning,pyspark,apache-spark-ml,Python,Machine Learning,Pyspark,Apache Spark Ml,我正在Azure Databricks中使用PySpark。我使用Sparks MLlib库ALS算法来预测电影收视率,这是成功的。然而,我试图添加一个数据框,其中包含我对10部随机选择的电影的评级。当我这样做的时候,我只得到我已经排名过的电影的预测排名 我希望能够使用该模型根据他们的排名获得推荐 我有执行以下任务的Spark代码: 导入数据(评级小、电影小、评级大、电影大) 将小收视率与小电影合并,将大收视率与大电影合并 同时附加到两个新数据集 删除不相关的列时间戳和类型 我现在有了一个干
- 导入数据(评级小、电影小、评级大、电影大)
- 将小收视率与小电影合并,将大收视率与大电影合并
- 同时附加到两个新数据集
- 删除不相关的列时间戳和类型
- 将数据拆分为训练集和测试集(0.80,0.20)
- ALS算法
- 显示预测
#Split dataset
training, test = All_Movies.randomSplit([0.8, 0.2])
from pyspark.ml.recommendation import ALS
from pyspark.ml.evaluation import RegressionEvaluator
#Set up model
ALS = ALS(maxIter=10, regParam=0.01, userCol = "userId",itemCol="movieId", ratingCol="rating", coldStartStrategy="drop")
#Fit model to Training set and attach personal recomendations
model = ALS.fit(training.unionAll(PersonalDF)) #PersonalDF is my rankings
#Get Predictions for Test Set
predictions = model.transform(test).dropna()
#All good up until here.
#Trying to get prediction rankings for my movies
mySampledMovies = model.transform(PersonalDF)
mySampledMovies.registerTempTable("mySampledMovies")
display(sqlContext.sql("select userId, movieId, rating,title, prediction from mySampledMovies"))