ÎncepețiÎncepe gratuit

Construiește un model ALS

Hai să definești primul tău model ALS. Completează codul de mai jos pentru a-l construi.

Amintește-ți că poți folosi metoda .columns pe DataFrame-ul ratings pentru a vedea numele coloanelor care conțin datele despre utilizatori, filme și evaluări. Spark are nevoie de aceste nume pentru a putea aplica ALS corect.

Acest exercițiu face parte din cursul

Construiește motoare de recomandare cu PySpark

Vezi cursul

Instrucțiuni pentru exercițiu

  • Înainte de a construi modelul ALS, trebuie să împarți datele în set de antrenament și set de testare. Folosește metoda randomSplit() pentru a împărți DataFrame-ul ratings în training_data și test_data cu un raport de 0.8/0.2 și un seed pentru generatorul de numere aleatoare egal cu 42.
  • Indică-i lui Spark care coloane conțin userCol, itemCol și ratingCol. Folosește metoda .columns dacă este necesar. Completează hiperparametrii: setează rank la 10, maxIter la 15, regParam (lambda) la .1, coldStartStrategy la "drop", argumentul nonnegative la True, iar deoarece datele noastre conțin evaluări explicite, setează argumentul implicitPrefs la False.
  • Acum antrenează modelul als pe porțiunea training_data din datele ratings, apelând metoda als.fit() cu training_data ca argument. Numește modelul antrenat model.
  • Generează predicții pe porțiunea test_data din datele ratings, apelând metoda model.transform() cu test_data ca argument. Numește predicțiile test_predictions. Poți vizualiza predicțiile apelând metoda .show() pe test_predictions.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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()
Editează și rulează codul