【要約】不均衡データ処理をLightGBMで比較する SMOTE vs アンダーサンプリングアンサンブル [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
機械学習エンジニアが、不正検知や故障検知などの不均衡データを取り扱う際、評価指標の選択ミスにより誤ったモデルを選定してしまう問題がある。不均衡データでは、以下の課題に直面する。
- ・正解率(Accuracy)が、少数クラスの検知能力を反映しない。
- ・「全てを正常と予測する」だけで高い正解率が得られてしまう。
- ・Precision(適合率)とRecall(再現率)のトレードオフが顕著に現れる。
// Approach
著者は、Kaggleのクレジットカード不正検知データセットを用い、LightGBMにおける4つの異なる不均衡データ対策手法の有効性を検証した。
- ・Baseline: 特殊な処理を行わない標準的なLightGBM。
- ・scale_pos_weight: クラス比率に基づき、少数クラスの重みを調整する手法。
- ・SMOTE: 少数クラスの近傍点から人工的にサンプルを生成する手法。
- ・UnderSampling Ensemble: 多数クラスを削減した複数のモデルを構築し、予測確率を平均化する手法。
// Result
実験を通じて、各手法がPrecisionとRecallのどちらに寄与するかという特性の違いが明らかになった。
- ・SMOTE: Precision 0.73、Recall 0.87を記録し、最もバランスが良い。
- ・UnderSampling Ensemble: Recall 0.93と高い検知力を示すが、Precisionは0.05まで低下する。
- ・scale_pos_weight: Recallは向上するが、Precisionが著しく崩壊する傾向がある。
- ・結論として、手法の選択は「何を最適化したいか」という業務要件に依存する。
Senior Engineer Insight
> 実務における不均衡データ対策は、単一の「最強手法」を探す作業ではない。PrecisionとRecallのトレードオフを理解し、検知漏れと誤検知のコストに基づき手法を選択すべきである。また、モデルの変更だけでなく、予測閾値(threshold)のチューニングが極めて有効な手段となる。実装時には、SMOTE適用時のCVリーク防止など、データ分割の順序に細心の注意を払う必要がある。