欠損値処理

Missing Value Handling

欠損値処理(Missing Value Handling)とは、データセットに含まれる欠損値(NaN、NULL、空白など)を適切に処理する手法です。ほぼすべての実世界のデータに欠損値が含まれるため、機械学習の前処理において必須のステップです。

欠損のメカニズム

欠損は3つのパターンに分類されます。MCAR(完全にランダムな欠損)、MAR(他の変数に依存する欠損)、MNAR(欠損値自体に依存する欠損)です。メカニズムに応じた処理方法の選択が重要です。

表:欠損値処理の要点まとめ
ひとことで言うとデータの空欄をどう扱うかを決めて、埋めたり除いたりする前処理。
主な方法行を削除/平均・中央値で補完/「欠損」という区分として扱う/予測して埋める。
注意点欠損していること自体が情報の場合がある。安易に平均で埋めない。

処理方法

削除(行削除・列削除)、代入(平均値・中央値・最頻値での補完)、高度な手法(KNN補完、多重代入法、MICE)、モデルベースの補完(IterativeImputer)などがあります。

図:欠損値への対応手順
1欠損を数えるどの列に何%あるか
▶
2理由を考える記入漏れか、該当なしか
▶
3方針を決める削除・補完・区分化
▶
4訓練データで補完統計値は訓練から取る
▶
5同じ方法を適用検証・本番にも同じ処理

欠損値フラグ

欠損の存在自体が情報を持つ場合があります。「欠損であるかどうか」を示すフラグ変数を追加する手法も有効です。