Створення рушіїв рекомендацій у 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: Lambdaals_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: Lambdaalpha: обговоримо далі. Використовується лише для неявних оцінок.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": розв'язує проблеми з поділом на train/testals_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": розв'язує проблеми з поділом на train/testimplicitPrefs = 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