教師あり機械学習のクラスの不均衡


47

これは一般的な質問であり、メソッドやデータセットに固有のものではありません。データセット内の0の数が約90%、1の数が約10%である教師あり機械学習のクラス不均衡問題にどのように対処しますか?分類器を最適にトレーニングするにはどうすればよいですか?

私が従う方法の1つは、データセットのバランスを取り、分類器をトレーニングして複数のサンプルに対してこれを繰り返すためのサンプリングです。

これはランダムだと感じています。この種の問題に取り組むための枠組みはありますか。

回答:


45

多くのフレームワークとアプローチがあります。これは再発する問題です。

例:

  • アンダーサンプリング。サイズが1のセットと一致するように、ゼロのセットのサブサンプルを選択します。より複雑なフレームワークを使用しない限り、情報の明らかな損失があります(たとえば、最初のセットを9つの小さい相互に排他的なサブセットに分割し、各サブセットでモデルをトレーニングし、モデルをアンサンブルします)。
  • オーバーサンプリング。割合が50%/ 50%になるまで人工のものを生産します。以前の雇用主はデフォルトでこれを使用していました。これには多くのフレームワークがあります(SMOTEが最も人気があると思いますが、Noisy PCAのような単純なトリックが好きです)。
  • ワンクラスラーニング。データにいくつかの実際のポイント(1つ)があり、物理的に存在しない多くのランダムノイズがデータセットに漏れていると仮定してください(1つではないものはすべてノイズです)。分類アルゴリズムの代わりに、アルゴリズムを使用してデータのノイズを除去します。
  • コスト重視のトレーニング。非対称コスト関数を使用して、トレーニングプロセスを人為的に調整します。

技術的な複雑さ/詳細レベルの昇順でのいくつかのレビュー:

ああ、ところで、90%/ 10%はアンバランスではありません。多くの場合、カード取引詐欺のデータセットは99.97%/ 0.03%に分割されます。これは不均衡です。


私が引用したノイズの多いPCAは、実装の詳細に応じて、オーバーサンプリング、正則化、またはジッターのいずれかとして見ることができることに注意してください。
ルーカスガリンド

ルーカスのリソースに感謝します。私はすべてのサンプルに「1」というラベルが付けられているという特有の問題を抱えています。しかし、実際には、これらのサンプルには最小限の不純物が含まれています。つまり、実際には「0」であるはずのレコードに「1」のラベルが付けられているものがあります。この種の問題は、1つのクラス分類に属していると思います。私の理解は正しいですか。それらを識別するために使用される一般的なフレームワークはありますか、最初はクラスタリングを試みていましたが、それは機能していません。
NG_21

1
これらのアルゴリズムはすべて、ゼロとしてラベル付けされたデータと、ラベルの正確性について100%の確率(または100%に近いもの)を持つ1つとしてラベル付けされたデータを必要とします。すべてのものがありますが、このデータのごく一部が誤ったラベルが付けられていること、つまり別の状況であることを知っています。アプリケーションのドメインに関する知識がなければ、異常検出を使用して攻撃し、異常にゼロのラベルを付けます。次に、いくつかの分類アルゴリズム(おそらく1クラス学習)を試してください。アプリケーションのドメインに関する知識があれば、何よりもドメインの専門家に助けを求めるでしょう。
ルーカスガリンド

13

これは学習方法に大きく依存します。ほとんどの汎用アプローチには、これに対処する1つ(または複数の)方法があります。一般的な修正方法は、マイノリティクラスにより高い誤分類ペナルティを割り当て、分類器にそれらを認識させることです(SVM、ロジスティック回帰、ニューラルネットワークなど)。

あなたが言及したように、サンプリングを変更することも可能です。この場合、通常、マイノリティクラスのオーバーサンプリングは、マジョリティクラスのアンダーサンプリングよりも優れたソリューションです。

ランダムフォレストなどの一部のメソッドは、変更を必要としません。


ありがとう。いくつかの例で説明されているリソースを指すことができます。最初からアルゴリズムをコーディングすることなく、R / Pythonでこれを実現する方法はありますか。
NG_21

1
このRパッケージの最初の機能を確認してください:cran.r-project.org/web/packages/unbalanced/unbalanced.pdf
ルーカスガリンド

7
ランダムフォレストに変更を加える必要がないのはなぜですか?私はあなたがまだ割り当てクラスの重量ができると思う
MAC

4

多くの場合、問題は頻度ではなく、マイノリティクラスのケースの絶対量です。特徴の変動と比較したときにターゲットに十分な変動がない場合は、アルゴリズムが物事を非常に正確に分類できないことを意味する場合があります。

1つは、分類ステップで誤分類ペナルティを使用でき、パラメータ推定ステップがある場合はそれを使用できないことです。一部のメソッドにはパラメーターの概念がなく、完全なクラスラベルまたはクラス確率を生成するだけです。

確率的推定量がある場合、情報理論的根拠またはビジネス価値の組み合わせに基づいて分類を決定できます。


1

2つのトリックを追加します。1. CDFを使用し、トレーニングデータの頻度をカウントするか、非常に大きな検証を使用します(テストセットが変更されない場合、検証セットはトレーニングセットと同じ分布を持っている必要があります)。次に、予測をソートし、 1つのクラスの最初のX%(前の頻度をカウント)と他のクラスはelse / 2です。重み付けされたサンプル、モデルは重み付けされたサンプルクラスになる傾向があり、サンプルの分散vを使用できます。weighti = 1/2(1-(vmax-vi)/ vmax)

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