欠損値処理と外れ値の対処

機械学習における「欠損値処理」と「外れ値の対処」は、特徴量エンジニアリングの重要なステップであり、モデルの精度や汎化性能に大きな影響を与えます。それぞれについて詳しく説明します。


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