Maak train/test-splits en bouw je ALS-model
Je weet al hoe je een ALS-model bouwt, want dat heb je in het vorige hoofdstuk gedaan. We doen dat opnieuw, maar we nemen extra stappen om een volledig gecrossvalideerd model op te zetten.
Eerst importeren we de benodigde functies en maken we onze train- en testgegevens klaar voor de cross-validatiestap.
Deze oefening maakt deel uit van de cursus
Aanbevelingssystemen bouwen met PySpark
Oefeninstructies
- Importeer de
RegressionEvaluatoruitml.evaluation, hetALS-algoritme uitml.recommendation, en deParamGridBuilderen deCrossValidatoruitml.tuning. - Maak een 0,80/0,20 train/test-split op de
ratings-data met de methoderandomSplit. Noem de gegevenssetstrainentest, en zet de random seed op1234. - Bouw het ALS-model en vertel Spark welke kolomnamen in de
ratings-dataframe overeenkomen metuserCol,itemColenratingCol. Zet het argumentnonnegativeopTrue,coldStartStrategyop"drop"en geef aan dat dit geenimplicitPrefszijn door het argumentimplicitPrefsopFalsete zetten. Noem dit modelals. - Controleer of het model is aangemaakt door de functie
type()opalsaan te roepen. De output zou moeten aangeven wat voor type model het is.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
# Import the required functions
from pyspark.ml.evaluation import ____
from pyspark.ml.recommendation import ____
from pyspark.ml.tuning import ____, ____
# Create test and train set
(train, test) = ratings.___([0.____, 0.____], seed = ____)
# Create ALS model
als = ALS(userCol="____", itemCol="____", ratingCol="____", nonnegative = ____, implicitPrefs = ____)
# Confirm that a model called "als" was created
type(____)