1. 학습
  2. /
  3. 강의
  4. /
  5. Pythonで欠損データに対処する

Connected

연습 문제

カテゴリ値のKNN補完

DataFrame 内のすべてのカテゴリ列を序数に変換し終えたら、補完の準備が整います。K-Nearest Neighbors (KNN) のような統計モデルを使って補完すると、より良い結果が得られます。

この演習では、

  1. fancyimpute の KNN() 関数を使って、序数エンコード済みの DataFrame users の欠損値を補完します。
  2. 序数値を、序数エンコーダの .inverse_transform() メソッドで元のカテゴリに戻します。

ordinal_enc_dict には各列に対応する sklearn の OrdinalEncoder() が格納されています。 users DataFrame には各列のエンコード後の値(序数値)が入っています。

KNN() 関数、OrdinalEncoder() のディクショナリ ordinal_enc_dict、そして users DataFrame はすでに読み込まれています。

지침

100 XP
  • KNN_imputer の fit_transform() メソッドで users DataFrame を補完します。変換後の値は丸めて整数にします。
  • users の各列を反復処理します。
  • ordinal_enc_dict からその列の OrdinalEncoder() を選び、整形した配列 reshaped に対して .inverse_transform() を実行します。