Порівняння методів рекомендацій
У цьому курсі ви прогнозували, як користувач оцінив би фільми, яких він ще не бачив, використовуючи кілька різних методів (прості середні рейтинги, KNN, факторизація матриць). У цій підсумковій вправі ви порівняєте усереднені рейтинги та факторизацію матриць, використовуючи mean_squared_error() як міру якості їхньої роботи.
Прогнози на основі середніх значень завантажено як avg_pred_ratings_df, а розраховані прогнози — як calc_pred_ratings_df.
Еталонні значення (ground truth) завантажено як act_ratings_df.
Нарешті, функцію mean_squared_error() імпортовано з sklearn.metrics для вашого використання.
Ця вправа є частиною курсу
Створення систем рекомендацій у Python
Інструкції до вправи
- Видобудьте рядки 0–20 та стовпці 0–100 (ділянки для порівняння) у датафреймах
act_ratings_df,avg_pred_ratings_dfтаcalc_pred_ratings_df. - Створіть маску для датафрейму
actual_values, що позначає лише непорожні клітинки. - Обчисліть середню квадратичну помилку між двома наборами прогнозів і еталонними значеннями.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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))