Jämföra rekommendationsmetoder
I den här kursen har du förutsagt hur du tror att en användare skulle betygsätta filmer de inte sett, med hjälp av flera olika metoder (grundläggande genomsnittliga betyg, KNN och matrisfaktorisering). I den här avslutande övningen jämför du genomsnittsbaserade betyg med matrisfaktorisering, där mean_squared_error() används som mått på hur väl metoderna presterar.
Prediktionerna baserade på genomsnitt har laddats in som avg_pred_ratings_df, medan de beräknade prediktionerna har laddats in som calc_pred_ratings_df.
Referensvärdena har laddats in som act_ratings_df.
Funktionen mean_squared_error() har redan importerats från sklearn.metrics och är redo att användas.
Den här övningen är en del av kursen
Bygga rekommendationsmotorer i Python
Övningsinstruktioner
- Extrahera raderna 0–20 och kolumnerna 0–100 (det område du vill jämföra) från DataFrames
act_ratings_df,avg_pred_ratings_dfochcalc_pred_ratings_df. - Skapa en mask för DataFrame
actual_valuessom endast riktar in sig på celler som inte är tomma. - Beräkna medelkvadratfelet mellan de två prediktionerna och referensvärdena.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Extract the ground truth to compare your predictions against
actual_values = act_ratings_df.____[:20, :100].values
avg_values = avg_pred_ratings_df.____[:20, :100].values
predicted_values = calc_pred_ratings_df.____[:20, :100].values
# Create a mask of actual_values to only look at the non-missing values in the ground truth
mask = ~np.isnan(____)
# Print the performance of both predictions and compare
print(____(____[mask], avg_values[mask], squared=False))
print(____(____[mask], predicted_values[mask], squared=False))