Inizia subitoInizia gratis

Costruisci un modello ALS

Specifichiamo il tuo primo modello ALS. Completa il codice qui sotto per costruire il tuo primo modello ALS.

Ricorda che puoi usare il metodo .columns sul data frame ratings per vedere come si chiamano le colonne che contengono dati su utente, film e valutazioni. Spark deve conoscere il nome di queste colonne per eseguire correttamente ALS.

Questo esercizio fa parte del corso

Costruire motori di raccomandazione con PySpark

Visualizza corso

Istruzioni dell'esercizio

  • Prima di costruire il modello ALS, dobbiamo suddividere i dati in training e test. Usa il metodo randomSplit() per dividere il dataframe ratings in training_data e test_data con una suddivisione rispettivamente 0,8/0,2 e un seed del generatore di numeri casuali pari a 42.
  • Indica a Spark quali colonne contengono userCol, itemCol e ratingCol. Usa il metodo .columns se necessario. Completa gli iperparametri. Imposta rank a 10, maxIter a 15, regParam (lambda) a .1, coldStartStrategy a "drop", l’argomento nonnegative a True e, poiché i nostri dati contengono valutazioni esplicite, imposta implicitPrefs a False.
  • Ora adatta il modello als alla porzione training_data dei dati ratings chiamando il metodo als.fit() su training_data. Chiama il modello addestrato model.
  • Genera le previsioni sulla porzione test_data dei dati ratings chiamando il metodo model.transform() su test_data. Chiama le previsioni test_predictions. Se vuoi, visualizza le previsioni chiamando il metodo .show() su test_predictions.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

# 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()
Modifica ed esegui il codice