始める無料で始める

不完全なデータを補正する

ほとんどのデータセットでは、ユーザーの多くはごく少数のアイテムしか評価していません。前の演習で見たように、特定のアイテムに評価がないユーザーをどう扱うかは、モデルの妥当性に大きく影響します。

この演習では、既存のデータに偏りを与えない情報で欠損値を埋めます。

まず、各ユーザーがこれまでに付けた評価の平均を算出し、その平均を用いてユーザーごとのスコアをゼロ中心にします。最後に、空の値をゼロで埋めます。ゼロは中立的なスコアとなるため、ユーザープロファイル全体への影響を最小限に抑えつつ、ユーザー間の比較を可能にします。

ユーザーごとに1行を持つuser_ratings_tableが読み込まれています。

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

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

コースを見る

演習の手順

  • user_ratings_table内でユーザーごとの評価の平均を求め、avg_ratingsに保存します。
  • 各行から行平均を差し引き、user_ratings_table_centeredとして保存します。
  • 作成したuser_ratings_table_centeredの欠損値をゼロで埋めます。

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

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

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

# Center each users ratings around 0
user_ratings_table_centered = user_ratings_table.____(____, axis=0)

# Fill in the missing data with 0s
user_ratings_table_normed = user_ratings_table_centered.____(____)
コードを編集して実行