Budowanie silników rekomendacji w 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)
Argumenty
userCol: Nazwa kolumny z identyfikatorami użytkownikówitemCol: Nazwa kolumny z identyfikatorami elementówratingCol: Nazwa kolumny z ocenami

als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Hiperparametry
rank, $k$: liczba cech ukrytychals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Hiperparametry
rank, $k$: liczba cech ukrytychmaxIter: liczba iteracjials_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Hiperparametry
rank, $k$: liczba cech ukrytychmaxIter: liczba iteracjiregParam: Lambdaals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Hiperparametry
rank, $k$: liczba cech ukrytychmaxIter: liczba iteracjiregParam: Lambdaalpha: Omówione później. Używane tylko z ocenami niejawnymi.als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Dodatkowe argumenty
nonnegative = True: Zapewnia wartości nieujemneals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Dodatkowe argumenty
nonnegative = True: Zapewnia wartości nieujemnecoldStartStrategy = "drop": Rozwiązuje problemy z podziałem na zbiory testowy/treningowyals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Dodatkowe argumenty
nonnegative = True: Zapewnia wartości nieujemnecoldStartStrategy = "drop": Rozwiązuje problemy z podziałem na zbiory testowy/treningowyimplicitPrefs = True: True/False w zależności od typu ocenals = 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)
Budowanie silników rekomendacji w PySpark