Побудуйте імпліцитні моделі
Тепер, коли ви задали всі значення гіперпараметрів, доручімо Spark побудувати достатньо моделей, щоб перевірити кожну комбінацію. Щоб це спростити, тут наведено цикл for. Дотримуйтеся інструкцій нижче, щоб автоматично створити ці моделі ALS. У наступних вправах ви запустите ці моделі на тестових наборах даних і визначите, яка працює найкраще.
Алгоритм ALS уже імпортовано для вас. Списки, які ви створили в попередній вправі (ranks, maxIters, regParams, alphas), також підготовлені для вас.
Ця вправа є частиною курсу
Створення рушіїв рекомендацій у PySpark
Інструкції до вправи
- Тут надано порожній список
model_list. Циклforстворить модель для кожної комбінації гіперпараметрів, які йому передадуть, і збереже її вmodel_list. - Доповніть цикл
for, посилаючись на вміст кожного списку, деrвідповідає елементам спискуranks,mi— елементамmaxIters,rp— елементамregParams, аa— елементамalphas. - Виведіть
len(model_list)іmodel_list, щоб переконатися, що кожну модель створено. Довжина має дорівнювати добутку довжин усіх списків гіперпараметрів вище. Можете запустити додаткову валідацію, щоб упевнитися.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# For loop will automatically create and store ALS models
for r in ____:
for mi in ____:
for rp in ____:
for a in ____:
model_list.append(ALS(userCol= "userId", itemCol= "songId", ratingCol= "num_plays", rank = r, maxIter = mi, regParam = rp, alpha = a, coldStartStrategy="drop", nonnegative = True, implicitPrefs = True))
# Print the model list, and the length of model_list
print (model_list, "Length of model_list: ", len(____))
# Validate
len(model_list) == (len(ranks)*len(maxIters)*len(regParams)*len(alphas))