Aanbevelingssystemen bouwen met 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)
Argumenten
userCol: Naam van kolom met user-id's itemCol: Naam van kolom met item-id's ratingCol: Naam van kolom met ratings

als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Hyperparameters
rank, $k$: aantal latente featuresals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Hyperparameters
rank, $k$: aantal latente featuresmaxIter: aantal iteratiesals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Hyperparameters
rank, $k$: aantal latente featuresmaxIter: aantal iteratiesregParam: lambdaals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Hyperparameters
rank, $k`: aantal latente featuresmaxIter: aantal iteratiesregParam: lambdaalpha: Later besproken. Alleen bij impliciete ratings.als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Aanvullende argumenten
nonnegative = True: Zorgt voor positieve getallenals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Aanvullende argumenten
nonnegative = True: Zorgt voor positieve getallencoldStartStrategy = "drop": Pakt issues met test/train-split aanals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
Aanvullende argumenten
nonnegative = True: Zorgt voor positieve getallencoldStartStrategy = "drop": Pakt issues met test/train-split aanimplicitPrefs = True: True/False afhankelijk van het type ratingsals = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
# Fit ALS op trainingsgegevens
model = als.fit(training_data)
# Genereer voorspellingen op testgegevens
predictions = model.transform(test_data)
Aanbevelingssystemen bouwen met PySpark