クラス変数に不等分布の分類問題がある場合、どの手法を使用する必要がありますか?


9

たとえば。2つのクラスgoodとbadのクラス変数クレジットスコアリングがある場合(#(good)= 700および#(bad)= 300)。データを短くしたくありません。どのテクニックを使うべきですか?私はSVMを使用していましたが、それはすべての予測に悪影響を与えています。


この非対称性はそれほど悪くはありません。他のどこかでエラーが発生していませんか?また、データについてもう少し詳しく教えてください。これに対する一般的な解決策はありません。

私のデータセットには、17の予測子(3つは連続で14つはカテゴリカル)、明らかに1つのクラス変数、合計1000の観測があります。周波数分布。クラス変数用。列車とテストはtrain(bad)= 197、test(bad)= 103、trian(good)= 446、test(good)= 254
asad.taj

回答:


6

少数派クラスに観測値の30%があるため、クラスのサンプルサイズはそれほどバランスが取れていないように見えます。あなたの場合、ロジスティック回帰はうまく機能しているはずです。モデルに入る予測子の数に応じて、尾根(L2)や投げ縄(L1)など、パラメーター推定のためのある種のペナルティを考慮することができます。非常に不均衡なクラスの問題の概要については、Cramer(1999)、The Statistician、48:85-94(PDF)を参照してください。

私はクレジットスコアリング手法に精通していませんが、加重クラスでSVMを使用できることを示唆するいくつかの論文を見つけました(例:Support Vector Machines for Credit Scoring:Extension to Non Standard Cases)。別の方法として、CARTまたはランダムフォレストを使用したブースティングメソッドを確認できます(後者の場合、分類ツリーを構築するときに各クラスが表されるようにサンプリング戦略を適合させることができます)。NovakとLaDueによる論文では、GLMと再帰的なパーティション分割の長所と短所について説明しています。私はこの記事、HandとVinciottiによる、クラスサイズがアンバランスなスコアカードの作成も見つけました。


Cramer(1999)のリンクがpapers.tinbergen.nl/98085.pdfに
germcd

10

クラスの不均衡の問題を解決するための一般的なアプローチは、分類子にバイアスをかけて、ポジティブなインスタンスにもっと注意を払うことです。これは、たとえば、否定的なクラスと比較して肯定的なクラスを誤って分類することに関連するペナルティを増やすことによって行うことができます。別のアプローチは、バランスのとれたデータセットを作成するために、多数派クラスをオーバーサンプリングするか、少数派クラスをアンダーサンプリングすることによってデータを前処理することです。

しかし、あなたの場合、クラスの不均衡は問題ではないようです。SVM分類器の最適なパラメーターを見つけるのは、かなり退屈なプロセスになる可能性があるため、おそらくそれはパラメーターの調整の問題です。たとえばRBFカーネルには、と 2つのパラメーターがあります。与えられた問題に対してどのとが最適であるかは事前にわかっていません。したがって、何らかのモデル選択(パラメーター検索)を実行する必要があります。γ C γCγCγ

データの前処理フェーズでは、SVMでは各データインスタンスが実数のベクトルとして表される必要があることに注意してください。したがって、カテゴリ属性がある場合は、それらを数値データに変換し、m個の数値を使用してmカテゴリ属性を表す(またはm個の新しいバイナリ変数で置き換える)ことをお勧めします。

また、大きな数値範囲の属性が小さな数値範囲の属性を支配するのを避けるために、SVMを適用する前に変数をスケーリングすることも重要です。

このペーパーをチェックしてください。

Rで作業している場合は、関数tune(パッケージe1071)をチェックして、提供されたパラメーターの範囲でグリッド検索を使用してハイパーパラメーターを調整してください。次に、plot.tuneを使用して 、どの値のセットがエラー率が小さいかを視覚的に確認できます。

時間のかかるパラメータ検索の周りにショートカットがあります。2クラスSVM分類器の正則化パス全体を一度に計算する「svmpath」と呼ばれるRパッケージがあります。これはそれが何をしているのかを説明する論文へのリンクです。

PSこのペーパーも興味深いかもしれません:較正された確率推定値の取得


2
γ

1

正のクラスの例と負のクラスの例には、正則化パラメーターCの別の値を使用することをお勧めします(多くのSVMパッケージがこれをサポートしており、どのような場合でも簡単に実装できます)。次に、たとえば相互検証を使用して、2つの正則化パラメーターの適切な値を見つけます。

これは、C +とC-によって決定される比率でデータを再サンプリングすることと、漸近的に同等であることを示すことができます(したがって、再重み付けではなく再サンプリングに利点はありません。これらは、結局同じことになります。離散ではなく連続にすることができるため、より細かく制御できます)。

ただし、「クラスの不均衡」問題の影響の強さはデータセットごとに異なるため、最適なreの強度が異なるため、C +とC-を選択して50から50の重み付けを正と負のパターンに与えないでください。 -重み付けは事前に決定することはできません。

また、偽陽性と偽陰性のコストは異なる場合があり、これらがC +とC-の決定に含まれている場合は問題が解決する場合があることも覚えておいてください。

また、いくつかの問題では、ベイズの最適決定ルールがすべてのパターンを単一のクラスに割り当て、他のクラスを無視するため、必ずしも悪いことではありません。これは、パターンの密度が1つのクラスは、他のクラスのパターンの密度よりもどこにでもあります。

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