データサイエンス講座【上級編】第18回:不均衡データの処理とコスト考慮学習
サマリ
実務で頻出する不均衡データセットの問題に対処する方法を解説します。サンプリング手法、コスト考慮学習、評価指標の選択など、実践的なアプローチを学ぶことで、不均衡データでも高精度なモデルを構築できるようになります。
詳細
不均衡データとは何か
不均衡データとは、クラスごとのサンプル数が大きく異なるデータセットのことです。例えば、詐欺検出では詐欺事例が全体の0.1%程度、疾病診断では患者が10%未満というケースが一般的です。このような場面では、単純にモデルを学習させると、多数派クラスばかり予測するようになり、見かけ上の精度は高いのに実用性に乏しいモデルが完成します。
不均衡データの問題は単なる統計的課題ではなく、ビジネス上の重要な意思決定に影響します。詐欺を見逃すコストと誤検知のコストは異なりますし、稀な疾病の診断では感度が特に重要です。こうした背景から、単純な精度ではなく、不均衡データに適した処理とコスト考慮が必要になります。
サンプリング手法による対処
不均衡データに対する最も基本的な対処法がサンプリング手法です。主な方法として、アンダーサンプリングとオーバーサンプリングがあります。
アンダーサンプリングは多数派クラスのサンプルを減らす方法です。学習が高速になり、計算コストが低減するメリットがある一方、情報の損失が問題になります。特に多数派クラスに重要な特性が含まれている場合、モデルの性能が低下する可能性があります。
オーバーサンプリングは少数派クラスのサンプルを増やす方法です。ランダム複製は最も単純ですが、過学習のリスクが高まります。そこで注目されるのがSMOTE(Synthetic Minority Over-sampling Technique)です。SMOTEは少数派クラスの近傍サンプルを補間して新しいサンプルを生成するため、多様性を保ちながらサンプル数を増やせます。
実務では、これらの方法を組み合わせたハイブリッドアプローチが有効です。例えば、少数派をオーバーサンプリング、多数派をアンダーサンプリングして、バランスの取れたトレーニングセットを作成します。
コスト考慮学習の実装
サンプリング以外の有力な手法がコスト考慮学習です。この方法では、異なるクラスに異なる誤分類コストを設定し、モデルの学習目的そのものを改変します。
例えば、詐欺検出では詐欺を見逃すコストは、誤検知のコストより高くなります。機械学習モデルのパラメータ調整時に、少数派クラスの誤分類にペナルティを加えることで、少数派を正しく分類することの重要性をモデルに学習させます。
多くのライブラリでは、クラス重み付けパラメータが実装されています。scikit-learnの多くの分類器には「class_weight」パラメータがあり、「balanced」を指定するだけで自動的にクラスの逆数に比例した重み付けが適用されます。より細かい調整が必要な場合は、辞書形式で各クラスのコストを明示的に指定できます。
決定木やアンサンブル法でも同様のコスト考慮が可能です。勾配ブースティングではサンプルに重みを付けることで、学習プロセス全体で少数派の重要性を反映させます。
評価指標の適切な選択
不均衡データでは、精度(Accuracy)は信頼できない評価指標です。99%の多数派を全て正しく分類し、1%の少数派を全て誤分類しても、精度は99%になってしまいます。
代わりに、以下の指標を活用します。精度(Precision)と再現率(Recall)はバランスの取れた指標として機能します。精度は予測が陽性だった場合の正確性を、再現率は実際の陽性サンプルがどの程度捕捉されたかを示します。この二つの調和平均がF1スコアで、単一の評価値として便利です。
ROC曲線とAUC(Area Under the Curve)も非常に有用です。閾値を変化させた時の真陽性率と偽陽性率の関係を視覚化でき、不均衡データでも安定した評価ができます。
実務ではビジネス観点からの評価が最優先です。詐欺検出なら見逃し率、医療診断なら感度を重視するなど、ドメイン知識を反映した指標選択が重要です。
実装のベストプラクティス
実装時には、データの分割が重要です。訓練セットと検証セットの分割は階層化抽出(Stratified Split)を使用し、各セットで元のクラス分布を保つべきです。そうしなければ、データ分割自体が不均衡を悪化させます。
また、不均衡対策は訓練セットにのみ適用し、検証やテストセットには適用してはいけません。そうしないと、モデル性能の評価が現実と乖離します。
これらの手法を組み合わせることで、不均衡データでも信頼性の高いモデルを構築できます。
