Aanbevelingsmethoden vergelijken
In deze cursus heb je met meerdere methoden voorspeld hoe een gebruiker films die hij of zij nog niet heeft gezien, zou beoordelen (basisgemiddelden, KNN, matrixfactorisatie). In deze laatste oefening vergelijk je de gemiddelde ratings met matrixfactorisatie met behulp van mean_squared_error() als maat voor de prestaties.
De voorspellingen op basis van gemiddelden zijn geladen als avg_pred_ratings_df en de berekende voorspellingen als calc_pred_ratings_df.
De ground-truthwaarden zijn geladen als act_ratings_df.
Tot slot is de functie mean_squared_error() voor je geïmporteerd uit sklearn.metrics.
Deze oefening maakt deel uit van de cursus
Aanbevelingssystemen bouwen in Python
Oefeninstructies
- Extraheer rijen 0–20 en kolommen 0–100 (de gebieden die je wilt vergelijken) uit de DataFrames
act_ratings_df,avg_pred_ratings_dfencalc_pred_ratings_df. - Maak een masker van de DataFrame
actual_valuesdat alleen niet-lege cellen selecteert. - Bepaal de mean squared error tussen de twee voorspellingen en de ground-truthwaarden.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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))