「バランスのとれた」データセットと「代表的な」データセットのどちらを選ぶべきですか?


48

私の「機械学習」タスクは、悪意のあるトラフィックから良性のインターネットトラフィックを分離することです。現実の世界のシナリオでは、インターネットトラフィックのほとんど(たとえば90%以上)が無害です。したがって、モデルのトレーニングにも同様のデータ設定を選択する必要があると感じました。しかし、「クラスバランシング」データアプローチを使用してモデルをトレーニングし、同数の良性および悪意のあるトラフィックのインスタンスを暗示している研究論文(私の研究分野)に出会いました。

一般に、機械学習モデルを構築している場合、実世界の問題を代表するデータセット、またはモデルの構築に適したバランスの取れたデータセットを選択する必要があります(特定の分類子がクラスの不均衡でうまく動作しないため、または私に知られていない他の理由による)?

誰かが選択の長所短所、そしてどちらを選択するかを決定する方法の長所短所にもっと光を当てることができますか?

回答:


38

答えはあなたのユースケースに依存すると思います。私の経験に基づいて:

  • 必ずしも予測するのではなくデータを記述する代表的なモデルを構築しようとしている場合、データの代表的なサンプルを使用することをお勧めします。
  • 予測モデル、特にAUCまたはランク順の測定で良好に機能し、基本的なMLフレームワーク(つまり、ディシジョンツリー、SVM、Naive Bayesなど)の使用を計画しているモデルを構築する場合は、バランスの取れたデータセットのフレームワーク。クラスの不均衡に関する文献の多くは、ランダムアンダーサンプリング(多数派クラスを少数派クラスのサイズにダウンサンプリングする)によってパフォーマンスを向上できることを発見しています。
  • 予測モデルを構築しているが、より高度なフレームワーク(つまり、ラッパーまたはクラス等価にサンプリングするバギングフレームワークの変更を介してサンプリングパラメーターを決定するもの)を使用している場合、代表サンプルを供給して、アルゴリズムは、トレーニングのためにデータのバランスを取ります。

2
あなたが代表的なモデルを構築しようとしている場合-必ずしも予測するのではなくデータを説明するモデル...誰が予測しないモデルを構築ますか?? ...そこにあなたを取得していない
PNP

8
教師なし学習は、必ずしも予測するように調整されていないモデルを構築する例です。場合によっては、データを調べたり要約したりすることもできます。
DSea 14

1
サンプルのバランスをとる方が安全だと思いますが、サンプリングの重みも収集するので、後で必要に応じてデータを代表値に再重み付けできます。@pnpの多くの社会科学者は、理論の確認などのために、非予測モデルを構築しています。
シャドウトーカー14

バランスの取れたモデルは、バランスのとれたモデルを模倣するために加重観測を使用した代表的なモデルとどのように比較されますか?
JenSCDC 14

1
AUCは、クラスの不均衡の影響を受けません。これは、モデルがランダムに選択されたネガティブクラスよりもランダムに選択されたポジティブクラスをランク付けする確率です。ここでの一般的な目的に関するアドバイスにはまったく同意しません。単純なランダムサンプルなどの代表的なサンプルがある場合は、代表的なサンプルのままにしてください。
マシュードゥルーリー

8

それは常にシナリオに依存すると思います。代表的なデータセットを使用することが常に解決策とは限りません。トレーニングセットに1000の負の例と20の正の例があると仮定します。分類子を変更しなければ、アルゴリズムはすべての新しい例を否定として分類する傾向があります。いくつかのシナリオではこれで問題ありませんが、多くの場合、見本となる例を見逃すコストが高いため、解決策を見つける必要があります。

このような場合、コストに敏感な機械学習アルゴリズムを使用できます。たとえば、医療診断データ分析の場合。

要約すると、分類エラーのコストは同じではありません!


7

両方のアプローチを試して、期待されるパフォーマンスを最大化するアプローチを維持するソリューションが常にあります。

あなたのケースでは、偽陽性を犠牲にして偽陰性を最小限に抑えることを好むので、強い陰性の事前に対して分類器をバイアスし、トレーニングセットの陰性例の数を減らすことで不均衡に対処したいと思います。

次に、精度/リコール、または感度/特異性、または完全で不均衡なデータセットに適した基準を計算し、縮小データでモデルを構築する際に実際のデータに存在する重要なパターンを無視していないことを確認します。


4

運用シナリオとトレーニングシナリオを分離します。

運用シナリオは、分類子が測定されるシナリオです。これはあなたがうまく実行する必要がある場所です。使用には、このシナリオを代表するデータセットが必要です。

トレーニングシナリオは、運用シナリオで適切に機能する分類子を構築するために行うことです。

多くの場合、両方のシナリオのデータセットは同じ性質のものであるため、それらを区別する必要はありません。たとえば、オンラインストアがあるため、過去の使用法をトレーニングして将来の使用法でうまく機能させるために使用します。ただし、トレーニング中は、運用シナリオを表すデータセットとは異なるデータセットを使用できます。実際、眠っている場合、分類子を夢見ている場合、動作シナリオで検証します(このステップは目覚めた後に実行する必要があります)。

データセットのバランスが崩れている場合、運用シナリオとトレーニングシナリオの区別が重要になります。ほとんどのアルゴリズムは、このようなデータセットではうまく機能しません。

したがって、2つのデータセットを使用することをためらわないでください-バランスの取れたデータセットをトレーニングに使用できます。完了したら、運用データセットの分類子を検証します。


3

考慮すべき2つの問題があると思います。トレーニング時間と予測精度です。

簡単な例を考えてみましょう。多変量正規分布を持つ2つのクラスがあるとします。基本的に、それぞれのクラス平均とクラス共分散を推定する必要があります。さて、最初に気をつけなければならないのは、クラス平均の差の推定値です:しかし、パフォーマンスは最悪の推定平均値の精度によって制限されます:1つの平均値を小数点以下100桁まで推定するのは良くありません-他の平均値が小数点以下1桁と推定されます。したがって、すべてのデータを使用することはコンピューティングリソースの無駄です。代わりに、より一般的なクラスをアンダーサンプリングし、クラスを適切に再重み付けすることができます。(これらのコンピューティングリソースを使用して、さまざまな入力変数などを探索できます)

2番目の問題は予測精度です。異なるアルゴリズムは異なるエラーメトリックを使用しますが、これはユーザーの目標に一致する場合と一致しない場合があります。たとえば、ロジスティック回帰は全体の確率誤差にペナルティを科します。したがって、データのほとんどが1つのクラスからのものである場合、特定しようとするのではなく、その1つのクラスの正確な確率推定(たとえば、90対95%の確率)を改善しようとする傾向がありますまれなクラス。その場合は、レアクラスを強調するために重み付けを再試行することをお勧めします(その後、[バイアス項を調整して]推定値を調整し、確率推定値を再調整します)

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