導入あるクラスの観測値が他のクラスの観測値よりも高い場合、クラスの不均衡が生じます。 例: 不正なクレジットカード取引の検出。下図の通り、不正取引件数は約400件、不正でない取引件数は約9万件となっております。 クラスの不均衡は機械学習、特に分類問題においてよく見られる問題です。不均衡なデータは、長期間にわたってモデルの精度を妨げる可能性があります。 階級の不均衡は、以下を含む多くの分野で発生します。
階級不均衡問題ほとんどの機械学習アルゴリズムは、各クラスにほぼ同じ数の例がある場合に最も効果的に機能します。これは、ほとんどのアルゴリズムが精度を最大化し、エラーを最小化するように設計されているためです。 ただし、データセットのバランスが崩れると、多数派クラスを予測するだけでかなり高い精度が得られますが、モデルを最初に作成した目的である少数派クラスを捕捉できないことがあります。 クレジットカード詐欺検出の例クレジットカード会社からデータセットを入手し、クレジットカード取引が不正かどうかを調べる必要があるとします。 しかし、ここに落とし穴があります…不正な取引は比較的まれで、取引のわずか 6% が不正です。 さて、始める前に、問題をどのように解決すべきか想像できますか? モデルのトレーニングにまったく時間を費やさなかったとしたらどうなるか想像してみてください。代わりに、常に「不正な取引はない」と予測するコードを 1 行だけ書いたらどうなるでしょうか?
さて、どうなると思いますか?あなたの「解決策」の精度は 94% になります! 残念ながら、この正確さは誤解を招くものです。 これらすべての不正のない取引では 100% の精度が得られます。 それらの不正取引の精度は 0% です。 ほとんどの取引が不正ではないため(モデルが優れているからではなく)、全体的な精度が高くなります。 多くの機械学習アルゴリズムは全体的な精度を最大化するように設計されているため、これは明らかに問題です。この記事では、不均衡なデータを処理するためのさまざまな手法について説明します。 データこの記事では、こちらから入手できるクレジットカード詐欺検出データセットを使用します。 https://www.kaggle.com/mlg-ulb/クレジットカード詐欺 データが読み込まれると、データセットの最初の 5 行が表示されます。
データセット間に大きな違いがあることがはっきりとわかります。不正でない取引が 9,000 件、不正な取引が 492 件。 インジケータートラップ不均衡なデータセットを扱う際に新しい開発者ユーザーが遭遇する主な問題の 1 つは、モデルを評価するために使用されるメトリックに関連しています。精度スコアなどのより単純な指標を使用すると、誤解を招く可能性があります。クラスのバランスが非常に悪いデータセットでは、分類器は常に特徴分析を行わずに最も一般的なクラスを「予測」し、明らかに正しくない高い精度を実現します。 シンプルな XGBClassifier を使用し、特徴エンジニアリングなしでこの実験をしてみましょう。
99% の精度で、ほとんどのクラスが 0 (不正ではない) と予測されるため、非常に高い精度が得られていることがわかります。 再サンプリング技術非常に不均衡なデータセットを処理するために広く採用されている手法は、リサンプリングと呼ばれます。これには、多数派クラスからサンプルを削除すること (アンダーサンプリング) と、少数派クラスからさらにサンプルを追加すること (オーバーサンプリング) が含まれます。 クラスのバランスをとることには利点があるものの、これらの手法には欠点もあります。 オーバーサンプリングの最も単純な実装は、少数派クラスのランダムなレコードを複製することであり、これは乱獲につながる可能性があります。 アンダーサンプリングの最も単純な実装では、多数派クラスからランダムなレコードを削除しますが、これにより情報が失われる可能性があります。 クレジットカード詐欺検出の例を使用してこれを実装してみましょう。 まずクラス 0 とクラス 1 を分離します。
1. ランダムアンダーサンプリングアンダーサンプリングは、多数派クラスから観測値を削除することとして定義できます。これは、多数派と少数派のクラスのバランスが取れる前に行われます。 数百万行など、大量のデータがある場合、アンダーサンプリングは適切な選択肢となります。しかし、アンダーサンプリングの欠点の 1 つは、貴重な情報が削除される可能性があることです。
2. ランダムオーバーサンプリングオーバーサンプリングは、少数クラスのコピーをさらに追加することとして定義できます。処理するデータがそれほど多くない場合は、オーバーサンプリングが適切なオプションになります。 アンダーサンプリングを行う際に考慮すべき欠点の 1 つは、テスト セットでの過剰適合と一般化の低下につながる可能性があることです。
imbalanced-learn python モジュールを使用してデータのバランスをとる科学文献では、より洗練された再サンプリング手法が数多く提案されています。 たとえば、多数派クラスのレコードをクラスター化し、各クラスターからレコードを削除してアンダーサンプリングすることで、情報を保持することができます。オーバーサンプリングでは、少数派クラスのレコードの正確なコピーを作成する代わりに、これらのコピーに小さなバリエーションを導入して、より多様な合成サンプルを作成できます。 Python ライブラリ imbalanced-learn を使用して、これらの再サンプリング手法のいくつかを適用してみましょう。これは scikit-learn と互換性があり、scikit-learn-contrib プロジェクトの一部です。
3. imblearnを使用したランダムアンダーサンプリングRandomUnderSampler は、ターゲット クラスのデータのサブセットをランダムに選択することで、データのバランスをとる高速かつ簡単な方法です。置換ありまたは置換なしでサンプルをランダムに選択することにより、多数派クラスをアンダーサンプリングします。
4. imblearnを使用したランダムオーバーサンプリング不均衡なデータに対処する 1 つの方法は、少数クラスで新しいサンプルを生成することです。最も単純な戦略は、現在利用可能なサンプルをランダムにサンプリングして置き換えることで、新しいサンプルを生成することです。ランダムオーバーサンプリングはそのような解決策を提供します。
5. アンダーサンプリング: Tomek LinkTomek リンクは、非常に近いインスタンスのペアですが、カテゴリは反対です。多数派クラスの各ペアのインスタンスを削除すると、2 つのクラス間のスペースが広がり、分類プロセスが容易になります。 2つのサンプルが互いに最も近い隣接サンプルである場合、トメックリンクが存在する。 次のコードでは、ratio='majority' を使用して多数派クラスを再サンプリングします。
6. 合成少数オーバーサンプリング技術 (SMOTE)この手法は、合成少数オーバーサンプリング手法です。 SMOTE (Synthetic Minority Oversampling Technique) は、少数クラスからランダムにポイントを選択し、そのポイントの k 近傍を計算することによって機能します。選択したポイントとその隣接するポイントの間に合成ポイントが追加されます。 SMOTE アルゴリズムは、次の 4 つの簡単な手順で機能します。
7. ニアミスNearMiss はアンダーサンプリング技術です。距離を使用して少数クラスを再サンプリングする代わりに、多数クラスが少数クラスと等しくなります。
8. パフォーマンス指標の変更不均衡なデータセットを評価する場合、誤解を招く可能性があるため、精度は最適な指標ではありません。 より良い洞察を提供できる指標は次のとおりです。
言い換えれば、各クラスからランダムに観測値を選択した場合、モデルがそれらを正しく「ランク付け」できる確率はどれくらいでしょうか。 9. ペナルティアルゴリズム(コスト重視のトレーニング)次の戦略は、少数派クラスを誤分類するコストを増やすペナルティ付き学習アルゴリズムを使用することです。 この手法でよく使われるアルゴリズムは、Penalized-SVM です。 トレーニング中に、パラメータ class_weight='balanced' を使用して、少数クラスのエラーに、過少表現の度合いに比例した量でペナルティを課すことができます。 SVM アルゴリズムの確率推定を有効にする場合は、パラメータ probability=True も含める必要があります。 元の不均衡なデータセットでペナルティ付き SVM を使用してモデルをトレーニングしてみましょう。
10. アルゴリズムを変更するあらゆる機械学習の問題においてさまざまなアルゴリズムを試してみるのは良い経験則ですが、不均衡なデータセットの場合に特に有益です。 決定木は、不均衡なデータに対しても優れたパフォーマンスを発揮することがよくあります。現代の機械学習では、ツリー アンサンブル (ランダム フォレスト、勾配ブースティング ツリーなど) は、単一の決定木よりもほぼ常に優れているため、その点について簡単に説明します。 ツリーベースのアルゴリズムは、if/else 問題の階層を学習することによって機能します。これにより、両方のクラスの解決が強制されます。
アンダーサンプリングの利点と欠点アドバンテージ
欠点
オーバーサンプリングの利点と欠点アドバンテージ
欠点
私の GitHub リポジトリでコードの実装を確認できます。 https://github.com/benai9916/Handle-imbalanced-data/tree/master 結論は 要約すると、この記事では、データセット内のクラスの不均衡に対処するためのさまざまな手法について説明しました。実際には、不均衡なデータを処理するときに試すことができるアプローチは多数あります。この記事がお役に立てば幸いです。 |
<<: 9つの主要テーマ!機械学習アルゴリズム理論に関する面接の質問の要約
>>: ビジネスにおけるAIベースの音声認識アプリケーション
2021年4月27日〜28日、華北電力大学技術移転・変革センターと中関村華電エネルギー・電力産業連盟...
[[214638]]ノイズ除去オートエンコーダー (DAE) は、破損したデータを入力として受け入...
最近、新しい「特許法」の全文が公布され、新たに改正された「著作権法」が公布されたことにより、国は知的...
2013年に私は2つの文章を書きました。1つは「デジタル化できるものはすべてデジタル化される」という...
9月21日、第三者機関の最新の推計によると、人工知能チャットボット「ChatGPT」のトラフィック...
この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...
高齢者人口の継続的な増加は、高齢者の差し迫った健康ニーズを満たすために医療および保健システムを改善す...
ウェブサイトのランキングは、ウェブサイトの最適化を行うすべての人が最も気にしていることです。しかし、...
著者の劉玉樹氏は中国人民大学重陽金融研究所学務委員会委員、マクロ研究部部長、研究者である。本稿は11...
海外メディアの報道によると、人工知能はここ数年、着実な成長曲線を保っている。しかし、COVID-19...
Andrew Ng 氏は、Tess Ferrandez 氏が修了したディープラーニング特別コースのイ...