強く不均衡なクラスを持つバイナリ分類


52

私は(機能、バイナリ出力0または1)の形式のデータセットを持っていますが、1はほとんど発生しないため、常に0を予測するだけで、70%と90%の間の精度が得られます(見ている特定のデータに応じて)。MLメソッドは、ほぼ同じ精度を与えてくれます。この状況に適用する標準的なメソッドがいくつかあるべきだと思います。これにより、明白な予測ルールよりも精度が向上します。


3
この記事は、この問題に関して非常に役立つことがわかりました。svds.com
J.オブライエンアントニーニ

@ J.O'BrienAntogniniそれは本当に素晴らしい記事です!
金華王

回答:


30

hxd1011とFrankの両方が正しい(+1)。本質的にリサンプリングおよび/またはコストに敏感な学習は、不均衡なデータの問題を回避する2つの主要な方法です。3つ目は、クラスの不均衡による影響が少ないカーネルメソッドを使用することです。銀の弾丸の解決策がないことを強調させてください。定義では、サンプルで適切に表現されていないクラスが1つあります。

上記のことを言っても、アルゴリズムSMOTEROSEは非常に役立つと思います。SMOTEは最近傍アプローチを効果的に使用して多数派クラスのメンバーを除外し、同様に少数派クラスの合成例を作成します。ROSEは、平滑化されたブートストラップアプローチを使用して、2つのクラスの基礎となる分布の推定値を作成し、それらを合成例のためにサンプリングしようとします。どちらもRで簡単に入手でき、SMOTEはパッケージDMwRで、ROSEは同じ名前のパッケージで入手できます。SMOTEとROSEはどちらも、元のトレーニングデータセットよりも小さいトレーニングデータセットになります。k

不均衡なデータの場合のより良い(またはそれほど悪くない)測定基準は、曲線下のCohenのkおよび/または受信者の動作特性の面積を使用していることだと思います。Cohenのカッパは、感度と特異性の関数であるAUCの予測精度を直接制御し、曲線はクラスの割合の不均衡に影響されません。繰り返しになりますが、これらは単なる大きなメトリックで使用されるべきメトリックであることに注意してください。あなたのケースで伝える正しい分類と間違った分類がもたらす利益と費用を考慮して、特定の問題にそれらを適応させることが理想的です。リフト曲線を見ると、実際には、この問題についてかなり有益です。メトリックに関係なく、別のテストを使用してアルゴリズムのパフォーマンスを評価する必要があります。クラスの不均衡なオーバーフィッティングが原因である可能性がさらに高いため、サンプル外のテストが重要です。

おそらく、この問題に関する最も人気のある最近の論文は、彼とガルシアによる不均衡データからの学習です。自分や他の回答で指摘されたポイントの非常に素晴らしい概要を提供します。さらに、キャレットパッケージの一部としてMax Kuhnによって提示されたクラス不均衡のサブサンプリングに関するウォークスルーは、アンダーサンプリング/オーバーサンプリングおよび合成データ作成が測定できる方法の構造例を取得するための優れたリソースであると思います互いに対して。


3番目にやや人気のある(これも適切ではない)メトリックは、Precision-Recall曲線の曲線下面積です。デイビス&ジェームス、2006年の論文は、この問題に関する古典的なものと考えられています。CVにも良いスレッドがあります。私は最近、「不均衡なデータセットのバイナリ分類子を評価する場合、精度のリコールプロットはROCプロットよりも有益である」というタイトルでやや大胆な論文を見ました。
usεr11852が復活モニック言う

1
様々なデータのPython実装のために再サンプリング私は不均衡学習パッケージを推奨テクニック:github.com/scikit-learn-contrib/imbalanced-learn
ヴァディムSmolyakov

非常に不均衡なクラス分布の場合、AUPRCはAUROCよりも有益です。これはコメントであるため、詳細はここに含まれていません。多くの情報源のうち、1つがここにあります
ジュバル

15

まず、不均衡なデータの評価基準は正確ではありません。データの99.9%が不正ではないという不正検出を行っているとします。99.9%の精度を持つダミーモデルを簡単に作成できます。(不正でないすべてのデータを予測するだけです)。

評価メトリックを正確性からF1スコア精度とリコールなどの別のものに変更したい場合。2番目のリンクで提供しました。精密リコールが機能する理由に関する詳細と直感があります。

非常に不均衡なデータの場合、モデルの構築は非常に難しい場合があります。加重損失関数または1つのクラスのみのモデリングで遊ぶことができます。1クラスSVMなど、または多変量ガウスに適合します(以前に提供したリンクとして)。


2
+1。ワンクラスSVMに関する素晴らしい例と良い言及。しかし、スコアは、真のネガティブをすべて無視して、少々強すぎると思います。F1
usεr11852は回復モニック言う

「精度とリコール」へのリンクは死んでいますか?
ジェイソン

13

クラスの不均衡の問題は、コストに敏感な学習またはリサンプリングのいずれかで対処できます。コストに敏感な学習とサンプリングの利点と欠点をご覧ください。


{1}には、コスト重視の学習とサンプリングの利点と欠点のリストがあります。

2.2サンプリング

オーバーサンプリングとアンダーサンプリングは、トレーニングデータのクラス分布を変更するために使用でき、両方のメソッドはクラスの不均衡に対処するために使用されています[1、2、3、6、10、11]。トレーニングデータのクラス分布を変更すると、非常に歪んだデータセットで学習するのに役立つ理由は、不均一な誤分類コストを効果的に課すためです。たとえば、正の例と負の例の比が1:1から2:1になるようにトレーニングセットのクラス分布を変更すると、2:1の誤分類コスト比が効果的に割り当てられます。トレーニングデータのクラス分布の変更と誤分類コストの比率の変更との間のこの同等性はよく知られており、Elkan [9]によって正式に説明されました。

コスト重視の学習を実装するためのサンプリングの使用に関連する既知の欠点があります。アンダーサンプリング欠点は、潜在的に有用なデータを破棄することですオーバーサンプリングの主な欠点は、私たちの観点からは、既存の例を正確にコピーすることにより、オーバーフィッティングが発生しやすくなることです。実際、オーバーサンプリングでは、学習者が1つの複製された例をカバーする分類ルールを生成することは非常に一般的です。オーバーサンプリングの2番目の欠点は、トレーニングサンプルの数が増えるため、学習時間が長くなることです。

2.3サンプリングを使用する理由

サンプリングの欠点を考えると、歪んだクラス分布と不均一な誤分類コストでデータを処理するために、コストに敏感な学習アルゴリズムではなく、誰がそれを使用するのかを尋ねる価値があります。これにはいくつかの理由があります。最も明らかな理由は、すべての学習アルゴリズムのコスト重視の実装がないため、サンプリングを使用するラッパーベースのアプローチが唯一のオプションであるということです。これは確かに過去よりも今日では確かに真実ではありませんが、多くの学習アルゴリズム(C4.5など)はまだ学習プロセスのコストを直接処理していません。

サンプリングを使用する2番目の理由は、多くの高度に歪んだデータセットが膨大であり、学習を実行可能にするためにトレーニングセットのサイズを小さくする必要があることです。この場合、アンダーサンプリングは合理的で有効な戦略のようです。このホワイトペーパーでは、トレーニングセットのサイズを削減する必要性は考慮していません。ただし、トレーニングデータの一部を破棄する必要がある場合、トレーニングセットのサイズを必要なサイズに減らしてから、コストクラスを使用するために多数のクラスの例の一部を破棄することも有益な場合があることを指摘します。破棄されるトレーニングデータの量が最小化されるように、敏感な学習アルゴリズム。

コストに敏感な学習アルゴリズムではなくサンプリングの使用に貢献したかもしれない最後の理由は、誤分類コストがしばしば未知であるということです。ただし、これは、サンプリングに類似の問題が生じるため、コストに敏感な学習アルゴリズムよりもサンプリングを使用する正当な理由ではありません。最終的なトレーニングデータのクラス分布はどうあるべきでしょうか。このコスト情報が不明な場合、ROC曲線下の面積などの指標を使用して分類子のパフォーマンスを測定し、両方のアプローチで適切なコスト比/クラス分布を経験的に決定できます。

彼らは一連の実験も行いましたが、決定的ではありませんでした。

すべてのデータセットの結果に基づいて、コストに敏感な学習、オーバーサンプリング、アンダーサンプリングの間に決定的な勝者はありません

次に、データセット内のどの基準が、どの手法がより適しているかを示唆する可能性があることを理解しようとします。

彼らはまた、SMOTEがいくつかの機能強化をもたらす可能性があると述べています。

サンプリングの有効性を改善するために人々が行ったさまざまな機能強化があります。これらの機能強化には、オーバーサンプリング[5-> SMOTE]での新しい「合成」サンプルの導入、アンダーサンプリング[11]での有用性の低い多数クラスのサンプルの削除、各サンプルが少なくとも1つで使用される場合の複数のサブサンプルの使用が含まれますサブサンプル[3]。これらの手法は、オーバーサンプリングおよびアンダーサンプリングと比較されていますが、一般に、コストに敏感な学習アルゴリズムと比較されていません。これは将来勉強する価値があるでしょう。


{1}ワイス、ゲイリーM.、ケイトマッカーシー、およびビビザバー。「コストに敏感な学習とサンプリング:等しくないエラーコストで不均衡なクラスを処理するのに最適なのはどれですか?」DMIN 7(2007):35-41。https://scholar.google.com/scholar?cluster=10779872536070567255&hl=en&as_sdt=0,22 ; https://pdfs.semanticscholar.org/9908/404807bf6b63e05e5345f02bcb23cc739ebd.pdf


1
したがって、リンクを要約すると、どの方法が優れているかについての結果は決定的ではなく、アンダー/オーバーサンプリングを使用する方が簡単です。右?
LazyCat


はい、プラットフォームには制限があります。しかし、それらの多くは機能でもあります。たとえば、このような1つの長くて詳細な回答が2つの質問に適切に回答できる場合、それらの質問は重複している必要があります。 また、重複していない場合は、コピーアンドペーストされないように、意味のある方法で答えを変えることができるはずです。この場合、どのアクションを実行する必要がありますか?(cc @gung)
whuber

@whuberもう1つの質問は既に閉じられています:
フランクデルノンクール

1
さて、それは説得力のある議論です!
whuber

6

このクエリに対するいくつかの回答は、すでにいくつかの異なるアプローチを提供しており、すべて有効です。この提案は、ハーバードの著名な政治学者であるゲイリー・キングによる論文および関連ソフトウェアからのものです。彼は、レアイベントデータのロジスティック回帰というタイトルの論文を共同執筆しており、かなり説得力のあるソリューションを提供しています。

以下に要約を示します。

まれなイベントデータ、ゼロ(「非イベント」)よりも数十倍から数千倍少ない変数(戦争、拒否権、政治活動、疫学的感染などのイベント)を持つバイナリ従属変数を調査します。多くの文献で、これらの変数は説明と予測が困難であることが証明されており、少なくとも2つの原因があると思われる問題です。第一に、ロジスティック回帰などの一般的な統計手順は、まれなイベントの確率を大幅に過小評価する可能性があります。文献で報告されている推定効果と同程度に、既存の方法を凌andし、絶対および相対リスクの推定値を変更する修正を推奨します。第二に、一般的に使用されるデータ収集戦略は、まれなイベントデータにとっては非常に非効率的です。あまりにも少ないイベントでデータを収集することを恐れて、膨大な数の観測値を含むデータ収集が行われましたが、説明変数は比較的少なく、測定が不十分です。戦争中です。結局のところ、すべての変数イベント(例:戦争)やごく一部の非イベント(平和)をサンプリングするなど、有効な推論を行うためのより効率的なサンプリング設計が存在します。これにより、学者は(固定されていない)データ収集コストの最大99%を節約したり、より有意義な説明変数を収集したりできます。これら2つの結果をリンクして、両方のタイプの修正を同時に機能させる方法と、開発された方法を実装するソフトウェアを提供します。わずかに戦争状態にある25万個を超える国際紛争データなど、測定が不十分な説明変数。結局のところ、すべての変数イベント(例:戦争)やごく一部の非イベント(平和)をサンプリングするなど、有効な推論を行うためのより効率的なサンプリング設計が存在します。これにより、学者は(固定されていない)データ収集コストの最大99%を節約したり、より有意義な説明変数を収集したりできます。これら2つの結果をリンクして、両方のタイプの修正を同時に機能させる方法と、開発された方法を実装するソフトウェアを提供します。わずかに戦争状態にある25万個を超える国際紛争データなど、測定が不十分な説明変数。結局のところ、すべての変数イベント(例:戦争)やごく一部の非イベント(平和)をサンプリングするなど、有効な推論を行うためのより効率的なサンプリング設計が存在します。これにより、学者は(固定されていない)データ収集コストの最大99%を節約したり、より有意義な説明変数を収集したりできます。これら2つの結果をリンクして、両方のタイプの修正を同時に機能させる方法と、開発された方法を実装するソフトウェアを提供します。すべての変数イベント(戦争など)や非イベントのごく一部(平和)をサンプリングするなど、有効な推論を行うためのより効率的なサンプリング設計が存在します。これにより、学者は(固定されていない)データ収集コストの最大99%を節約したり、より有意義な説明変数を収集したりできます。これら2つの結果をリンクして、両方のタイプの修正を同時に機能させる方法と、開発された方法を実装するソフトウェアを提供します。すべての変数イベント(戦争など)や非イベントのごく一部(平和)をサンプリングするなど、有効な推論を行うためのより効率的なサンプリング設計が存在します。これにより、学者は(固定されていない)データ収集コストの最大99%を節約したり、より有意義な説明変数を収集したりできます。これら2つの結果をリンクして、両方のタイプの修正を同時に機能させる方法と、開発された方法を実装するソフトウェアを提供します。

ここに論文へのリンクがあります... http://gking.harvard.edu/files/abs/0s-abs.shtml


ありがとうございます-論文を読んだ場合、上記のアンダーサンプリング以外に重要なことを示唆していますか?
LazyCat

4
これは良い論文です。何度も読みました。(+1)この論文は推論にも興味があることを指摘する必要があると思います。これが、GBMがGLMと比較して政治学者にとってあまり有用でない理由です。たとえば、ツリー手法が使用される場合: " ... 2つの再帰的分割アルゴリズムは同じ予測精度を達成できますが、同時に、構造的に異なる回帰関係、つまり異なるモデルを表すため、影響に関する異なる結論につながる可能性があります応答上の特定の共変量の。」(Hothornら2006。)
usεr11852は回復モニック言う

2

不均衡なクラスを持つデータセットの分類子の開発は、機械学習の一般的な問題です。密度ベースのメソッドは、このような状況で「従来の分類子」よりも重要なメリットがあります。

密度ベースの方法では、未知の密度推定します。ここで、は最も支配的なクラスです(この例では、)。CC={XYiは=0}p^(x|yC)CC={x:yi=0}

密度推定値がトレーニングされると、目に見えないテストレコードがこの密度推定値に属するかどうかの確率を予測できます。確率が十分に小さく、指定されたしきい値(通常は検証フェーズで取得)未満の場合、、そうでない場合は* YX *C YX *Cxy^(x)Cy^(x)C

次の論文を参照できます。

「ノベルティ検出のための最小ボリュームセットの計算可能なプラグイン推定器」、C。Park、J。HuangおよびY. Ding、Operations Research、58(5)、2013年。


2

これは、異常検出が有用なアプローチであるような問題です。これは基本的に、ロドリゴが答えで説明したもので、トレーニングクラスの統計プロファイルを決定し、将来の測定値がそのクラスに属さないと判断される確率しきい値を設定します。ここにあるビデオチュートリアルあなたが始める必要があります。それを吸収したら、カーネル密度推定を調べることをお勧めします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.