始める無料で始める

レコメンド手法の比較

このコースでは、ユーザーがまだ見ていない映画をどう評価しそうかを、いくつかの手法(単純な平均評価、KNN、行列因子分解)で予測してきました。最後の演習では、平均評価に基づく予測と行列因子分解の予測を比較し、どちらがうまく機能しているかを測る指標として mean_squared_error() を使います。 平均に基づく予測は avg_pred_ratings_df、計算による予測は calc_pred_ratings_df として読み込まれています。 実測(ground truth)の評価値は act_ratings_df として読み込まれています。

最後に、mean_squared_error() 関数は sklearn.metrics からインポート済みです。

この演習はコースの一部です

Pythonでつくるレコメンデーションエンジン

コースを見る

演習の手順

  • act_ratings_dfavg_pred_ratings_dfcalc_pred_ratings_df の各 DataFrame から、行 0-20 と列 0-100(比較したい範囲)を抽出します。
  • 非空セルのみを対象にするため、actual_values DataFrame のマスクを作成します。
  • 2 つの予測と実測値との間の平均二乗誤差を算出します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# 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))
コードを編集して実行