機械学習におけるデータの不均衡の問題を解決するにはどうすればよいでしょうか?

機械学習におけるデータの不均衡の問題を解決するにはどうすればよいでしょうか?

[[194310]]

機械学習のタスクでは、データの不均衡という問題に頻繁に遭遇します。

データの不均衡の問題は、主に教師あり機械学習タスクに存在します。不均衡なデータに遭遇すると、全体的な分類精度を学習目標として使用する従来の分類アルゴリズムでは、多数派クラスに過度に注意が払われ、少数派クラスのサンプルの分類パフォーマンスが低下します。最も一般的な機械学習アルゴリズムは、不均衡なデータセットではうまく機能しません。

この記事では、データの不均衡がある場合に教師ありアルゴリズムを効果的にトレーニングするためのいくつかの効果的な方法を紹介します。

1. トレーニングセットを再サンプリングする

さまざまなデータセットを使用できます。不均衡なデータセットからバランスの取れたデータセットを作成する方法は、アンダーサンプリングとオーバーサンプリングの 2 つがあります。

1.1. アンダーサンプリング

アンダーサンプリングは、豊富なクラスのサイズを縮小することでデータセットのバランスをとる方法であり、データの量が十分な場合に使用する必要があります。すべての希少クラスのサンプルを保存し、豊富なクラスから希少クラスのサンプルまで同数のサンプルをランダムに選択することで、バランスの取れた新しいデータセットを取得して、さらにモデリングすることができます。

1.2. オーバーサンプリング

対照的に、オーバーサンプリングはデータ量が不十分な場合に使用する必要があります。これは、豊富なクラスから例の数を削除するのではなく、まれな例の数を増やすことでデータセットのバランスを取ろうとします。新しい希少サンプルは、繰り返し、ブートストラップ、合成少数オーバーサンプリング (SMOTE) などの方法を使用して生成されます。

アンダーサンプリングもオーバーサンプリングも、他の方法に比べて絶対的な利点がないことに注意してください。これら 2 つの方法の適用は、適用可能なユースケースとデータセット自体によって異なります。さらに、オーバーサンプリングとアンダーサンプリングの組み合わせも成功しました。

2. K分割交差検証を使用する

不均衡の問題に対処するためにオーバーサンプリング法を使用する場合は、クロス検証を適切に適用する必要があることに注意してください。これは、オーバーサンプリングではまれなサンプルが観測され、ブートストラップを適用すると分布関数に従って新しいランダム データが生成されるためです。オーバーサンプリング後にクロス検証を適用すると、特定の人工的なブートストラップ結果にモデルを過剰適合するだけになります。このため、特徴選択を実装する場合と同様に、データをオーバーサンプリングする前に必ずクロス検証を実行する必要があります。データを繰り返しサンプリングすることによってのみ、データセットにランダム性を導入し、過剰適合の問題が発生しないようにすることができます。

K 分割交差検証は、元のデータをランダムに K 個の部分に分割し、そのうちの 1 個をテスト データとして選択し、残りの K-1 個の部分をトレーニング データとして選択します。クロスバリデーションのプロセスは、実際には実験を K 回繰り返すことです。毎回、K 個の部分から異なる部分がテスト データとして選択され、残りのデータは実験のトレーニング データとして使用されます。最後に、K 個の実験結果が平均化されます。

3. 分類問題に変換する

バイナリ分類問題の場合、正のサンプルと負のサンプルの分布比率が極端に不均衡な場合は、問題をまったく異なる観点から見ることができます。つまり、1 クラス学習または異常検出の問題として見なすことができます。このタイプの方法の焦点は、クラス間の違いを捉えることではなく、クラスの 1 つをモデル化することです。古典的な研究には、次の図に示すように、1 クラス SVM があります。

1 クラス SVM とは、トレーニング データに 1 種類の正 (または負) サンプルのみが含まれ、他の種類は含まれないことを意味します。この時点で、実際に学習する必要があるのは、トレーニング データの境界です。現時点では、2 種類のデータがないため、最大化ソフト エッジは使用できません。 そこで、この論文「高次元分布のサポートの推定」では、Schölkopf は、最大のエッジが特徴空間内の原点から遠く離れていると仮定しています。左側は元の空間の境界です。多くの境界が要件を満たしていることがわかりますが、より狭い境界 (赤) を見つける方が信頼性が高いことがわかります。これを特徴空間に変換する目的は、原点から遠く離れた境界 (これも赤い直線) を見つけることです。もちろん、これらの制約は人為的に追加されたものであり、独自のニーズに応じて対応する制約を採用することができます。たとえば、データの中心を原点から最も遠い位置にします。

注: 極端に不均一な正のサンプルと負のサンプルの問題については、異常検出または分類問題を使用するのも 1 つのアイデアです。

4. 異なる再サンプリングされたデータセットを組み合わせる

モデルをうまく一般化する最も簡単な方法は、より多くのデータを使用することです。問題は、ロジスティック回帰やランダムフォレストなどのすぐに使用できる分類器は、まれなクラスを削除してモデルを一般化する傾向があることです。シンプルなベストプラクティスは、希少クラスのすべてのサンプルと豊富クラスの n 個の異なるサンプルをそれぞれ使用する n 個のモデルを構築することです。 10 個のモデルをマージするとします。その場合、たとえば、希少クラスの 1,000 ケースを保持し、豊富クラスの 10,000 ケースをランダムにサンプリングすることになります。次に、10,000 件のケースを 10 個のチャンクに分割し、10 個の異なるモデルをトレーニングします。

このアプローチは、モデルを異なるクラスター ノードでトレーニングして実行できるため、大量のデータがある場合でもシンプルで水平方向にスケーラブルです。アンサンブル モデルは一般化される傾向があり、そのためアプローチが扱いやすくなります。

5. 異なる比率で再サンプリングする

方法 4 では、希少クラスと豊富なクラスの比率を非常にうまく微調整できますが、正確な比率は、使用されるデータとモデルに大きく依存します。ただし、すべてのモデルを同じスケールでアンサンブルでトレーニングするのではなく、異なるスケールを組み合わせてみる価値はあります。 10 個のモデルをトレーニングする場合、1 つのモデルを 1:1 の比率 (希少: 豊富) にし、別のモデルを 1:3 または 2:1 にするのが合理的です。クラスが受け取る重みは、使用されるモデルによって異なります。

6. マルチモデルバギング

方法 5 では、サンプル データの割合を最も高く選択できます。ただし、その堅牢性は保証されません。堅牢性はテスト セット サンプルの選択に依存します。

上記の方法の欠陥を解決し、モデルの堅牢性を高めるため。この目的のために、ランダムフォレストアルゴリズムのアイデアに触発されて、上記の方法に基づいて、異なるスケールでトレーニングされたモデルに対してマルチモデルバギング操作を実行するというアイデアを思いつきました。具体的な手順は次のとおりです。

1) トレーニング用とテスト用の 2 種類のサンプルに対して、異なる割合の N 個のデータ グループを選択し、モデル予測の精度を取得します。

P={π | i=1,2,…N}

2). 上記のモデルの精度を正規化して、新しい重み分布を取得します。

Ω={ωi | i=1,2,…N }

で:

3). 最終的なトレーナーとして、重み分布Ωに従って複数のモデルを組み合わせます。

● 分類タスクの場合:

● 回帰タスクの場合:

7. クラスターエンリッチメント

Sergey Quora 氏は、洗練されたアプローチを提案しました。彼は、トレーニング サンプルの種類をカバーするためにランダム サンプルに頼るのではなく、豊富なカテゴリを r グループにクラスタリングすることを提案しました。ここで、r は r 内のサンプルの数です。各グループにはクラスターの中心 (medoid) のみが保持されます。次に、モデルは希少クラスと保持クラスのみでトレーニングされます。

7.1. 豊富なクラスのクラスタリング

まず、サンプル数が多いリッチクラスをクラスタ化できます。使用する方法は K-Means クラスタリング アルゴリズムであると仮定します。この時点で、稀少クラスのデータサンプル数として K 値を選択し、クラスタリング後の中心点と対応するクラスタ中心を豊富クラスサンプルの代表例として取り、クラスラベルを豊富クラスラベルと一致させることができます。

7.2. クラスター化されたサンプルの教師あり学習

上記の手順でクラスタリング操作を行った後、豊富なクラスのトレーニング サンプルを選別しました。次に、サンプル数が等しい K 個の正のサンプルと負のサンプルに対して教師ありトレーニングを実行できます。次の図に示すように:

8. 不均衡なデータセットのモデル設計

これまでのアプローチはすべてデータに焦点を当て、モデルを固定コンポーネントとして保持します。しかし実際には、設計されたモデルが不均衡なデータに適している場合は、データを再サンプリングする必要はありません。有名な XGBoost はすでに良い出発点となっているため、不均衡なデータセットに適したモデルを設計することは理にかなっています。

豊富なクラスを誤分類するのではなく、希少クラスの誤分類にペナルティを課すコスト関数を設計することで、希少クラスに自然に一般化される多くのモデルを設計できます。たとえば、まれなクラスの誤分類にペナルティを課すように SVM を調整します。

<<:  DeepXplore: 現実世界のディープラーニングシステムを体系的にテストするための初のホワイトボックスフレームワーク

>>:  ビッグニュース!アリママが自社開発のCTR推定コアアルゴリズムMLRを初公開

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

大規模なモデルでプロンプト内のより多くの例を学習させたい場合は、この方法を使用すると、より多くの文字を入力できます。

GPT や LLaMA などの大規模な言語モデルを使用する場合、入力プロンプトに文字数制限があるこ...

2020 年の機械学習の 5 つのトレンド

[[318500]] [51CTO.com クイック翻訳]機械学習は、多くの人にとって新しい用語かも...

2019年のAIインデックスレポートが発表されました。AI分野では大きな進歩がありましたが、結果はまちまちです。

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

...

AIが仕事や生活を奪ったら、人類の未来はどうなるのでしょうか?

AIの発展は、人間の仕事の効率を向上させ、人間の働き方を変え、さらには人類の発展の方向を導く上で大...

ディープラーニングにおける正規化の概要(Python コード付き)

編集者注: 日々の仕事や研究において、データ サイエンティストが遭遇する最も一般的な問題の 1 つは...

MITとマイクロソフトはAI向けにLeetCodeプログラミング問題集をカスタマイズした

[[407672]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...

AIは採用に何をもたらすのでしょうか?

人工知能は、次のような採用活動に大きく貢献しています。 [[433895]] 1. 候補者の自動ソー...

調査結果: 回答者の 64% が生成 AI による作業の功績を認めている

Salesforce が実施した調査では、生成 AI の使用に関する明確なポリシーが存在しない状況で...

機械学習アルゴリズムに関する 16 のヒント

スイスアーミーナイフについて聞いたことがあるかもしれません。そうでない場合は、下の図をご覧ください。...

旅行業界における人工知能の未来

人工知能 (AI) は、スピード、効率、安全性、正確性を向上させることで旅行業界に大きな変化をもたら...

...

Google の時間は残りわずか: 18 歳の従業員が辞職し、経営陣を非難

インターネット企業の中で、Google は間違いなく勝者であり、方向性をリードする企業です。同社の技...

...