Porównywanie metod rekomendacji
W tym kursie przewidywałeś oceny filmów, których użytkownik jeszcze nie widział – za pomocą różnych metod (podstawowe średnie ocen, KNN, faktoryzacja macierzy). W tym ostatnim ćwiczeniu porównasz wyniki metody uśrednionych ocen i faktoryzacji macierzy, używając funkcji mean_squared_error() jako miary jakości przewidywań.
Przewidywania oparte na średnich zostały wczytane jako avg_pred_ratings_df, natomiast przewidywania obliczeniowe – jako calc_pred_ratings_df.
Rzeczywiste wartości referencyjne zostały wczytane jako act_ratings_df.
Funkcja mean_squared_error() została już zaimportowana z biblioteki sklearn.metrics.
To ćwiczenie jest częścią kursu
Budowanie systemów rekomendacji w Pythonie
Instrukcje do ćwiczenia
- Wyodrębnij wiersze od 0 do 20 oraz kolumny od 0 do 100 (obszary, które chcesz porównać) z ramek danych
act_ratings_df,avg_pred_ratings_dficalc_pred_ratings_df. - Utwórz maskę ramki danych
actual_values, która wskazuje wyłącznie niepuste komórki. - Oblicz błąd średniokwadratowy między obydwoma zestawami przewidywań a rzeczywistymi wartościami referencyjnymi.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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))