近年、機械学習やデータマイニングは非常に人気があり、徐々に世界に実用的な価値をもたらしています。同時に、ますます多くの機械学習アルゴリズムが学界から産業界へと移行しており、このプロセスには多くの困難があります。データの不均衡の問題は最も難しい問題ではありませんが、間違いなく最も重要な問題の 1 つです。 1. データの不均衡 学術研究や教育において、多くのアルゴリズムは、データの分布が均一であるという基本的な仮定に基づいています。これらのアルゴリズムを実際のデータに直接適用すると、ほとんどの場合、理想的な結果が得られません。実際のデータは不均等に分布していることが多いため、「ロングテール現象」、いわゆる「80/20 の原則」が発生します。次の図は、Sina Weibo でのインタラクションの分布を示しています。 ほとんどのWeibo投稿のインタラクション数(リポスト数、コメント数、いいね数)は0〜5の間であり、インタラクション数が多い(100以上)Weibo投稿は非常に少ないことがわかります。 Weibo 投稿のインタラクション数の順位を予測する場合、予測子は Weibo のすべての投稿を第 1 層 (0 ~ 5) にあると予測するだけで非常に高い精度を達成できますが、そのような予測子には価値がありません。では、機械学習におけるデータの不均衡の問題をどのように解決すればよいのでしょうか。これがこの記事の主な内容です。 厳密に言えば、どのデータセットにもデータの不均衡は存在しますが、これは多くの場合、問題自体によって決まりますが、ここでは分布の差が比較的大きいものにのみ焦点を当てます。また、多くのデータセットには複数のカテゴリが含まれていますが、ここではバイナリ分類に焦点を当てています。バイナリ分類でデータの不均衡の問題を解決した後、それを一般化してマルチ分類のソリューションを得ることができるためです。要約すると、この記事では主に、陽性サンプルと陰性サンプルの差が 2 桁以上ある場合に、バイナリ分類におけるデータ不均衡の問題を解決する方法について説明します。 不均衡の度合いが同じ 2 つの問題 (つまり、陽性サンプルと陰性サンプルの比率が似ている問題) は、問題の難易度が異なる場合があります。これは、問題の難易度がデータの量によっても異なるためです。例えば、Weiboインタラクション数を予測する問題では、データが不均衡であるにもかかわらず、各レベルのデータ量は非常に大きく、最小のカテゴリには数万のサンプルがあります。このような問題は通常、解決しやすいです。癌診断のシナリオでは、癌に罹患している人が非常に少ないため、データが不均衡であるだけでなく、サンプル数も非常に少ないため、このような問題は非常にトリッキーです。要約すると、問題を小さいものから大きいものの順に難易度順にランク付けすることができます: ビッグ データ + バランスのとれた分布 < ビッグ データ + 不均衡な分布 < スモール データ + バランスのとれたデータ < スモール データ + 不均衡なデータ。解決すべき問題に対して、データを取得した後、まず利用可能なトレーニング データの量を数え、次にデータの分布を観察します。経験上、トレーニング データ内の各カテゴリに 5,000 を超えるサンプルがある場合、データ量は十分であり、陽性サンプルと陰性サンプルの差は 1 桁以内で許容されるため、データの不均衡の問題を考慮する必要はありません (これは純粋に経験的であり、理論的根拠はなく、参考用です)。 2. 解決方法 この問題を解決するための基本的な考え方は、サンプリングや重み付けの方法などを使用して、トレーニング プロセスで正のサンプルと負のサンプルに同等の発言権を与えることです。便宜上、データセット内のサンプル数が多いクラスを「メインクラス」、サンプル数が少ないクラスを「ニッチクラス」と呼びます。 1. サンプリング サンプリング方法は、トレーニング セットを処理して、不均衡なデータ セットを均衡のとれたデータ セットに変換します。これにより、ほとんどの場合、最終結果が向上します。 サンプリングはアップサンプリング(オーバーサンプリング)とダウンサンプリング(アンダーサンプリング)に分けられます。アップサンプリングは小さなカテゴリを複数コピーすることであり、ダウンサンプリングは多数派カテゴリから一部のサンプルを削除したり、多数派カテゴリから一部のサンプルのみを選択したりすることです。 ランダムサンプリングの最大の利点はその単純さですが、欠点も明らかです。アップサンプリングされたデータ セットには一部のサンプルが繰り返し出現し、トレーニングされたモデルにはある程度のオーバーフィッティングが発生します。ダウンサンプリングの欠点は明らかで、最終的なトレーニング セットではデータが失われ、モデルは全体的なパターンの一部のみを学習します。 アップサンプリングでは少数サンプルが複数回コピーされ、高次元空間にポイントが繰り返し出現します。これにより問題が発生します。つまり、運が良ければ多くのポイントを正しく分類できますが、そうでない場合は多くのポイントが誤分類されます。この問題に対処するには、新しいデータ ポイントを生成するたびにわずかなランダムな摂動を加えることができます。これは非常に効果的であることが証明されています。 ダウンサンプリングによって情報損失が発生するので、情報損失をどのように減らすことができるでしょうか。最初の方法は EasyEnsemble と呼ばれ、モデル融合法 (Ensemble) を使用します。複数のダウンサンプリング (生成されたトレーニング セットが互いに独立するようにサンプルを置き換える) によって複数の異なるトレーニング セットが生成され、複数の異なる分類器がトレーニングされ、複数の分類器の結果を組み合わせて最終結果が取得されます。 2 番目の方法は BalanceCascade と呼ばれ、増分トレーニング (ブースティング) の考え方を使用します。まず、ダウンサンプリングによってトレーニング セットが生成され、分類器がトレーニングされます。正しく分類された公開サンプルは置き換えられず、次にこの小さな公開サンプルがダウンサンプリングされてトレーニング セットが生成され、2 番目の分類器がトレーニングされます。これを繰り返し、最終的にすべての分類器の結果が結合されて最終結果が得られます。 3 番目の方法は、KNN を使用して最も代表的な質量サンプルを選択することです (NearMiss と呼ばれます)。このタイプの方法は計算集約的です。興味のある方は、レビュー「不均衡なデータからの学習」のセクション 3.2.1 を参照してください。 2. データの統合 データ合成法では、既存のサンプルを使用してより多くのサンプルを生成します。このタイプの方法は、医療画像分析などの小規模なデータ シナリオで多くの成功例があります。 最も一般的な方法の 1 つは SMOTE と呼ばれ、特徴空間内のニッチ サンプルの類似性を使用して新しいサンプルを生成します。少量サンプルの場合 ニッチクラスに属するK個の最近傍点からランダムにサンプル点を選択する 新しいニッチサンプルを生成する で 乱数です。 上の図はSMOTE法を示している。 最近傍の下の概略図。黒い四角は生成された新しいサンプルです。 SMOTE は、各ニッチ サンプルに対して同じ数の新しいサンプルを合成しますが、これにはいくつかの潜在的な問題が伴います。一方では、クラス間の重複の可能性が高まり、他方では、有用な情報を提供しないサンプルがいくつか生成されます。この問題を解決するために、Borderline-SMOTE と ADASYN という 2 つの方法が登場しました。 Borderline-SMOTE のソリューションは、新しいサンプルを合成する必要があるニッチなサンプルを見つけることです。つまり、各ニッチ サンプルに対して K 近傍が計算され、K 近傍が多数派サンプルの半分以上を占めるニッチ サンプルに対してのみ新しいサンプルが生成されます。直感的に言えば、主流のサンプルに囲まれているニッチなサンプルは境界サンプルになる傾向があるため、新しいサンプルはそれらのサンプルに対してのみ生成されます。新しいサンプルを生成するニッチ サンプルを決定した後、SMOTE を使用して新しいサンプルを生成します。 ADASYN のソリューションは、データ分布に基づいて、さまざまなニッチ サンプルに対して異なる数の新しいサンプルを生成することです。まず、最終的なバランス レベルに応じて、生成される新しいニッチ サンプルの総数が設定されます。 数を決定した後、SMOTE を使用して新しいサンプルを生成します。 3. 重み付け サンプリングや新しいデータの生成などの方法に加えて、重み付けによってデータの不均衡の問題を解決することもできます。つまり、次の図に示すように、異なるカテゴリを誤分類するコストが異なります。 横方向が実際の分類状況、縦方向が予測分類状況です。C(i,j)は実際のカテゴリjのサンプルがiであると予測された場合の損失です。実際の状況に応じて値を設定する必要があります。 この方法の難しさは、適切な重みを設定することです。実際のアプリケーションでは、カテゴリ間の加重損失値は一般にほぼ等しくなります。もちろん、これは普遍的なルールではなく、特定の問題は個別に分析する必要があります。 4. 分類 正のサンプルと負のサンプルが極端に不均衡なシナリオの場合、問題をまったく異なる視点から見ることができます。つまり、1 クラス学習または異常検出の問題として考えます。このタイプの方法の焦点は、クラス間の違いを捉えることではなく、クラスの 1 つをモデル化することです。古典的な研究には、One-class SVM があります。 3. 選び方 データの不均衡の問題を解決する方法はたくさんあります。上記は、最も一般的に使用される方法の一部にすぎません。最も一般的に使用される方法はたくさんあります。実際の問題に応じて適切な方法を選択するにはどうすればよいでしょうか。次に、私の経験についていくつかお話しします。 陽性サンプルと陰性サンプルが非常に少ない場合は、データ合成を使用する必要があります。陰性サンプルは十分にあり、陽性サンプルは非常に少なく、その比率が非常に大きい場合は、分類方法を検討する必要があります。陽性サンプルと陰性サンプルが十分にあり、比率が特に変わらない場合は、サンプリング方法または加重方法を検討する必要があります。 サンプリングと重み付けは数学的には同等ですが、実際のアプリケーションでは効果が異なります。特に、ランダム フォレストなどの分類方法をサンプリングする場合、トレーニング セットはトレーニング プロセス中にランダムにサンプリングされます。この場合、計算リソースが許せば、アップサンプリングの方が重み付けよりも優れていることがよくあります。 さらに、アップサンプリングとダウンサンプリングはどちらもデータ セットのバランスをとることができ、十分なデータがある場合は同等ですが、両者の間には違いがあります。実際のアプリケーションでは、私の経験では、コンピューティング リソースが十分で、ニッチ クラスのサンプルが十分にある場合はアップサンプリングを使用する必要がありますが、そうでない場合はダウンサンプリングを使用する必要があります。これは、アップサンプリングによってトレーニング セットのサイズが大きくなり、トレーニング時間が長くなり、トレーニング セットが小さいと過剰適合が発生しやすくなるためです。ダウンサンプリングの場合、比較的多くの計算リソースと優れた並列環境がある場合は、Ensemble 方式を選択する必要があります。 |
<<: チャットボットについては長い間話されてきましたが、良いチャットボットとはどのように定義されるのでしょうか?
>>: ロボットによるカスタマーサービスが本物か偽物かを見分けるのは難しいですか? !
10月9日、英国バース大学のREVEAL研究センターが主導した新たな研究で、ディープフェイク技術を使...
環境保護の重要な部分として、都市環境衛生はますます重視されています。衛生産業をうまく発展させ、衛生業...
Python で任意の数の変数に対する多重線形回帰をゼロから開発する方法を学びます。線形回帰はおそら...
人工知能をより良くするための競争において、MIT リンカーン研究所は、電力消費の削減、効率的なトレー...
パート01 「ネットいじめ」とは何ですか? 「サイバー暴力」とは、インターネット上で文章、画像、動画...
翻訳者 |陳俊レビュー | Chonglou Deepfakesと呼ばれる詐欺アプリをご存知ですか?...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を...
畳み込みニューラル ネットワークは通常、限られたリソースで開発され、その後、条件が許せば、より高い精...
ビッグデータ技術が今や世界の主要なマーケティングツールの 1 つになっていることは周知の事実です。 ...
この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...
ハイパースケールかエンタープライズかを問わず、現代のあらゆるデータセンターは、より広範なイノベーショ...
[51CTO.com クイック翻訳] 顧客がビジネスの運命を決定する中心であることは間違いありません...