始める無料で始める

データを正規化する

評価行列に対して特異値分解を実行する前に、各行の平均をその行の各値から引いて「平均を引く(de-mean、中心化)」必要があります。

この演習では、これまで扱ってきた映画の評価データフレームを、Singular value decomposition を実行できるように前処理していきます。

user_ratings_df にはユーザーごとに 1 行、映画ごとに 1 列があり、すでに読み込まれています。

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

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

コースを見る

演習の手順

  • 各ユーザーが視聴したすべての映画に対して付けた平均評価を求め、avg_ratings として保存します。
  • それぞれの行から行平均を引き、結果を user_ratings_centered として保存します。
  • 最後に、user_ratings_centered の欠損値をすべて 0 で埋めます。
  • 各列の平均を出力し、平均が引かれている(中心化されている)ことを確認します。

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

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

# Get the average rating for each user 
avg_ratings = user_ratings_df.____(axis=1)

# Center each user's ratings around 0
user_ratings_centered = user_ratings_df.____(____, axis=1)

# Fill in all missing values with 0s
user_ratings_centered.____(0, inplace=True)

# Print the mean of each column
print(user_ratings_centered.____(axis=1))
コードを編集して実行