Я хочу иметь возможность использовать эту модель для получения рекомендаций на основе их рейтинга.
У меня есть Spark Код, выполняющий следующие задачи:
- Импортирует данные (RatingsSmall, MoviesSmall, RatingsLarge, Movies Large)
Объединить маленькие рейтинги с маленькими фильмами, объединить большие рейтинги с большими фильмами - Добавить вместе к двум новым наборам данных< /p>
- Удалить ненужные столбцы «Отметка времени» и «Жанр»
- Разделение данных на обучающий и тестовый наборы (0.80) , 0,20)
- Алгоритм ALS
Отображение прогнозов.
Я получаю прогнозы только для уже отправленных рейтингов.< /p>
Я попытался объединить свои рейтинги с обучающим набором. Отсюда я хотел бы получить рекомендации или прогнозы для других фильмов в наборе данных.
Моя попытка:
импортировал DF с моим собственным рейтингом.
Добавил это (UnionAll) в обучающий набор.
Получил прогнозы (но только для фильмов, которые я уже оценил)
код:
Код: Выделить всё
#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"))
Большое спасибо
Подробнее здесь: https://stackoverflow.com/questions/545 ... tions-rank