Построение рекомендательных систем с помощью PySpark
Jamen Long
Data Scientist at Nike
als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Аргументы
userCol: название столбца с идентификаторами пользователей itemCol: название столбца с идентификаторами элементов ratingCol: название столбца с оценками

als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Гиперпараметры
rank, $k$: количество скрытых признаковals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Гиперпараметры
rank, $k$: количество скрытых признаковmaxIter: количество итерацийals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Гиперпараметры
rank, $k$: количество скрытых признаковmaxIter: количество итерацийregParam: лямбдаals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Гиперпараметры
rank, $k$: количество скрытых признаковmaxIter: количество итерацийregParam: лямбдаalpha: рассматривается позже. Используется только с неявными оценками.als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Дополнительные аргументы
nonnegative = True: гарантирует положительные значенияals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Дополнительные аргументы
nonnegative = True: гарантирует положительные значенияcoldStartStrategy = "drop": решает проблемы при разбивке на тестовую и обучающую выборкиals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Дополнительные аргументы
nonnegative = True: гарантирует положительные значенияcoldStartStrategy = "drop": решает проблемы при разбивке на тестовую и обучающую выборкиimplicitPrefs = True: True/False в зависимости от типа оценокals = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
# Fit ALS to training dataset
model = als.fit(training_data)
# Generate predictions on test dataset
predictions = model.transform(test_data)
Построение рекомендательных систем с помощью PySpark