Recommendation Engines mit PySpark erstellen
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)
Argumente
userCol: Name der Spalte mit den User-IDs itemCol: Name der Spalte mit den Item-IDs ratingCol: Name der Spalte mit den Bewertungen

als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Hyperparameter
rank, $k$: Anzahl latenter Merkmaleals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Hyperparameter
rank, $k$: Anzahl latenter MerkmalemaxIter: Anzahl der Iterationenals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Hyperparameter
rank, $k$: Anzahl latenter MerkmalemaxIter: Anzahl der IterationenregParam: Lambdaals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Hyperparameter
rank, $k$: Anzahl latenter MerkmalemaxIter: Anzahl der IterationenregParam: Lambdaalpha: Später besprochen. Nur bei impliziten Bewertungen.als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Weitere Argumente
nonnegative = True: Erzwingt positive Zahlenals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Weitere Argumente
nonnegative = True: Erzwingt positive ZahlencoldStartStrategy = "drop": Behebt Probleme bei Train/Test-Splitsals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Weitere Argumente
nonnegative = True: Erzwingt positive ZahlencoldStartStrategy = "drop": Behebt Probleme bei Train/Test-SplitsimplicitPrefs = True: True/False je nach Bewertungstypals = 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)
Recommendation Engines mit PySpark erstellen