Алгоритм ALS Spark MLlib — Как мне получить свои собственные «Личные рекомендации» (рейтинги фильмов, которые я не оцениPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Алгоритм ALS Spark MLlib — Как мне получить свои собственные «Личные рекомендации» (рейтинги фильмов, которые я не оцени

Сообщение Anonymous »

Я использую PySpark в Azure Databricks. Я использовал алгоритм ALS библиотеки Sparks MLlib для прогнозирования рейтингов фильмов, который успешно работает. Однако я пытаюсь добавить фрейм данных, состоящий из моих оценок для 10 случайно выбранных фильмов. Когда я это делаю, я получаю рейтинги прогнозов только для фильмов, которые я уже оценил.

Я хочу иметь возможность использовать эту модель для получения рекомендаций на основе их рейтинга.

У меня есть Spark Код, выполняющий следующие задачи:
  • Импортирует данные (RatingsSmall, MoviesSmall, RatingsLarge, Movies Large)
    Объединить маленькие рейтинги с маленькими фильмами, объединить большие рейтинги с большими фильмами
  • Добавить вместе к двум новым наборам данных< /p>
  • Удалить ненужные столбцы «Отметка времени» и «Жанр»
Теперь у меня есть чистая таблица с MovieID, названием (названием фильма), UserID и рейтингом. Я покажу код с этого момента. Если вам нужен код до этого, я тоже могу его отправить.
  • Разделение данных на обучающий и тестовый наборы (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"))
Я ожидаю DataFrame, в котором указаны мой идентификатор пользователя, MovieID, рейтинг и прогноз. Для фильмов, которые я не видел, рейтинг должен быть N/A или Null, а прогнозы имеют значение.

Большое спасибо

Подробнее здесь: https://stackoverflow.com/questions/545 ... tions-rank
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»