Kom igångKom igång gratis

Modellutvärdering med MSE

Efter att ha genererat de förutsagda betygen från testdata med ALS-modellen ska du i den här sista delen av övningen förbereda data för att beräkna medelkvadratfelet (MSE) för modellen. MSE är medelvärdet av (original rating – predicted rating)**2 för alla användare och anger hur väl modellen passar data.

Först organiserar du både ratings_final- och predictions-RDD:erna så att de bildar en tupel av formen ((user, product), rating). I båda RDD:erna är mappningen:

0: user
1: product
2: rating

Sedan slår du ihop de transformerade RDD:erna och tillämpar slutligen en funktion för kvadrerad differens tillsammans med mean() för att beräkna MSE.

Kom ihåg att du har ett SparkContext sc tillgängligt i din arbetsyta. ratings_final- och predictions-RDD:erna finns också redan tillgängliga där.

Den här övningen är en del av kursen

Grunderna i Big Data med PySpark

Visa kurs

Övningsinstruktioner

  • Organisera ratings-RDD:n till ((user, product), rating).
  • Organisera predictions-RDD:n till ((user, product), rating).
  • Slå ihop predictions-RDD:n med ratings-RDD:n.
  • Utvärdera modellen med MSE mellan det ursprungliga betyget och det förutsagda betyget och skriv ut resultatet.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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(____))
Redigera och kör kod