IniziaInizia gratis

Valutazione del modello usando MSE

Dopo aver generato le valutazioni previste dai dati di test usando il modello ALS, in questa parte finale dell'esercizio preparerai i dati per calcolare il Mean Square Error (MSE) del modello. L'MSE è il valore medio di (original rating – predicted rating)**2 per tutti gli utenti e indica l'aderenza assoluta del modello ai dati.

Per farlo, per prima cosa organizzerai gli RDD ratings_final e predictions per ottenere una tupla di ((user, product), rating)). In entrambi gli RDD la mappatura è:

0: user
1: product
2: rating

Poi eseguirai il join degli RDD trasformati e infine applicherai una funzione di differenza al quadrato insieme a mean() per ottenere l'MSE.

Ricorda: nel tuo workspace è disponibile uno SparkContext sc. Inoltre, gli RDD ratings_final e predictions sono già presenti nel tuo workspace.

Questo esercizio fa parte del corso

Fondamenti di Big Data con PySpark

Visualizza il corso

Istruzioni dell'esercizio

  • Organizza l'RDD ratings in ((user, product), rating).
  • Organizza l'RDD predictions in ((user, product), rating).
  • Esegui il join dell'RDD delle previsioni con l'RDD delle valutazioni.
  • Valuta il modello usando l'MSE tra valutazione originale e valutazione prevista e stampalo.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Prepare ratings data
rates = ratings_final.____(lambda r: ((r[0], r[1]), ____))

# Prepare predictions data
preds = predictions.____(lambda r: ((____, ____), ____))

# Join the ratings data with predictions data
rates_and_preds = rates.____(preds)

# Calculate and print MSE
MSE = rates_and_preds.____(lambda r: (r[1][0] - r[1]____)**2).mean()
print("Mean Squared Error of the model for the test data = {:.2f}".format(____))
Modifica ed esegui il codice