欠損値処理(Missing Value Handling)とは、データセットに含まれる欠損値(NaN、NULL、空白など)を適切に処理する手法です。ほぼすべての実世界のデータに欠損値が含まれるため、機械学習の前処理において必須のステップです。
欠損のメカニズム
欠損は3つのパターンに分類されます。MCAR(完全にランダムな欠損)、MAR(他の変数に依存する欠損)、MNAR(欠損値自体に依存する欠損)です。メカニズムに応じた処理方法の選択が重要です。
| ひとことで言うと | データの空欄をどう扱うかを決めて、埋めたり除いたりする前処理。 |
|---|---|
| 主な方法 | 行を削除/平均・中央値で補完/「欠損」という区分として扱う/予測して埋める。 |
| 注意点 | 欠損していること自体が情報の場合がある。安易に平均で埋めない。 |
処理方法
削除(行削除・列削除)、代入(平均値・中央値・最頻値での補完)、高度な手法(KNN補完、多重代入法、MICE)、モデルベースの補完(IterativeImputer)などがあります。
1欠損を数えるどの列に何%あるか
▶
2理由を考える記入漏れか、該当なしか
▶
3方針を決める削除・補完・区分化
▶
4訓練データで補完統計値は訓練から取る
▶
5同じ方法を適用検証・本番にも同じ処理
欠損値フラグ
欠損の存在自体が情報を持つ場合があります。「欠損であるかどうか」を示すフラグ変数を追加する手法も有効です。