Sestavení modelu ALS
Pojďme definovat tvůj první ALS model. Dokonči níže uvedený kód a sestav svůj první model ALS.
Nezapomeň, že metodu .columns lze použít na datovém rámci ratings k zobrazení názvů sloupců, které obsahují data o uživatelích, filmech a hodnoceních. Spark potřebuje znát názvy těchto sloupců, aby mohl ALS správně provést.
Toto cvičení je součástí kurzu
Tvorba doporučovacích systémů s PySparkem
Pokyny k cvičení
- Než sestavíme model ALS, je potřeba rozdělit data na trénovací a testovací část. Použij metodu
randomSplit()k rozdělení datového rámceratingsnatraining_dataatest_datav poměru 0,8/0,2 a nastavseedgenerátoru náhodných čísel na42. - Řekni Sparku, které sloupce obsahují
userCol,itemColaratingCol. Pokud potřebuješ, použij metodu.columns. Dokonči nastavení hyperparametrů: nastavrankna 10,maxIterna 15,regParam(lambda) na .1,coldStartStrategyna"drop", argumentnonnegativenastav naTruea protože naše data obsahují explicitní hodnocení, nastav argumentimplicitPrefsnaFalse. - Nyní natrénuj model
alsna částitraining_dataz datratings– zavolej metoduals.fit()s argumentemtraining_data. Natrénovaný model pojmenujmodel. - Vygeneruj predikce na části
test_dataz datratings– zavolej metodumodel.transform()s argumentemtest_data. Predikce pojmenujtest_predictions. Výsledky si můžeš prohlédnout zavoláním metody.show()na objektutest_predictions.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Split the ratings dataframe into training and test data
(training_data, test_data) = ratings.____([____, ____], seed=42)
# Set the ALS hyperparameters
from pyspark.ml.recommendation import ALS
als = ALS(userCol="____", itemCol="____", ratingCol="____", rank =____, maxIter =____, regParam =____,
coldStartStrategy="____", nonnegative =____, implicitPrefs = ____)
# Fit the mdoel to the training_data
____ = ____.fit(____)
# Generate predictions on the test_data
____ = ____.transform(____)
test_predictions.show()