機械学習における「欠損値処理」と「外れ値の対処」は、特徴量エンジニアリングの重要なステップであり、モデルの精度や汎化性能に大きな影響を与えます。それぞれについて詳しく説明します。
1. 欠損値処理(Missing Value Handling)
欠損値とは
データの一部が記録されていない状態を指します。例えば、アンケートの回答漏れやセンサーの読み取り失敗などが原因で発生します。
欠損値の種類
-
MCAR(Missing Completely at Random):完全にランダムに欠損しており、他の変数や観測値と無関係。
-
MAR(Missing at Random):他の観測された変数に依存して欠損する。
-
MNAR(Missing Not at Random):観測されていない変数やその値に依存して欠損する。
欠損値の処理方法
以下は代表的な処理手法です:
a. 削除(除去)
-
リストワイズ削除:欠損を含む行をすべて削除。
-
カラム削除:欠損が多すぎる列を削除。
-
利点:簡単で実装が容易。
-
欠点:情報の損失が大きい可能性。
b. 代入(補完)
-
平均・中央値・最頻値での補完:数値変数なら平均、カテゴリ変数なら最頻値で埋める。
-
前後の値で補完(時系列):前後の値から推定。
-
K近傍法(KNN補完):近い特徴量から類似値を推定。
-
回帰補完:他の変数から線形回帰などで予測して補完。
-
多重代入(Multiple Imputation):統計的に欠損の不確実性を考慮して複数の値で補完。
2. 外れ値の対処(Outlier Handling)
外れ値とは
他の観測値と比べて極端に離れているデータ点。測定ミス、データ入力ミス、あるいは実際の異常な観測値などが原因で発生します。
外れ値の検出方法
-
統計的手法:
-
Zスコア:平均からの標準偏差が大きいデータ(通常、|Z| > 3)を外れ値と判断。
-
IQR(四分位範囲)法:Q1 – 1.5×IQR または Q3 + 1.5×IQR を外れた値を検出。
-
-
可視化:
-
箱ひげ図(Boxplot)
-
散布図(Scatter Plot)
-
-
モデルベース:
-
Isolation Forest、One-Class SVMなどによる外れ値検出。
-
外れ値の処理方法
-
削除:明らかな誤りや例外値を除去。
-
修正:他のデータに基づいて補正。
-
変換:対数変換や分位点変換でスケールの影響を緩和。
-
重み付け:モデル内で外れ値の影響を減らすよう重みを調整。
-
そのまま保持:外れ値が重要な情報である場合(例:詐欺検出)には削除しない。
実務でのポイント
-
欠損値・外れ値の背景(データ収集過程やドメイン知識)を理解することが重要です。
-
盲目的に削除・補完するのではなく、目的変数との関係や分布の変化を確認したうえで対処すべきです。
-
高度なモデル(ランダムフォレストやXGBoostなど)は欠損や外れ値に比較的強いが、前処理の有無でパフォーマンスが変わることもあります。
生成日:2025/06/01