不完全なデータを補正する
ほとんどのデータセットでは、ユーザーの多くはごく少数のアイテムしか評価していません。前の演習で見たように、特定のアイテムに評価がないユーザーをどう扱うかは、モデルの妥当性に大きく影響します。
この演習では、既存のデータに偏りを与えない情報で欠損値を埋めます。
まず、各ユーザーがこれまでに付けた評価の平均を算出し、その平均を用いてユーザーごとのスコアをゼロ中心にします。最後に、空の値をゼロで埋めます。ゼロは中立的なスコアとなるため、ユーザープロファイル全体への影響を最小限に抑えつつ、ユーザー間の比較を可能にします。
ユーザーごとに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.____(____)