Aan de slagGa gratis aan de slag

Modelevaluatie met MSE

Nadat je met het ALS-model de voorspelde beoordelingen uit de testgegevens hebt gegenereerd, ga je in dit laatste deel van de oefening de gegevens voorbereiden om de Mean Square Error (MSE) van het model te berekenen. De MSE is de gemiddelde waarde van (original rating – predicted rating)**2 voor alle gebruikers en geeft aan hoe goed het model absoluut past bij de data.

Hiervoor organiseer je eerst zowel de ratings_final als de predictions RDD's tot een tuple van ((user, product), rating)). In beide RDD's is de mapping:

0: user
1: product
2: rating

Vervolgens join je de getransformeerde RDD's en pas je tot slot een gekwadrateerd verschil toe, samen met mean(), om de MSE te krijgen.

Onthoud dat je een SparkContext sc tot je beschikking hebt in je werkruimte. Ook zijn ratings_final en predictions RDD al beschikbaar in je werkruimte.

Deze oefening maakt deel uit van de cursus

Big Data Fundamentals met PySpark

Cursus bekijken

Oefeninstructies

  • Organiseer de ratings RDD tot ((user, product), rating).
  • Organiseer de predictions RDD tot ((user, product), rating).
  • Join de prediction-RDD met de ratings-RDD.
  • Evalueer het model met de MSE tussen de originele beoordeling en de voorspelde beoordeling en print deze.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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(____))
Code bewerken en uitvoeren