不均衡の打ちアルゴリズムカテゴリ(Pythonのimblearnのミニマ達成)

カテゴリ不均衡
カテゴリ不均衡、定義により、それによっていくつかの機械学習モデルの故障の問題を引き起こし、よりはるかに大きいまたはサンプルの他の種類の数よりはるかに少ないサンプル・データ・セットの特定のタイプがあること。例えば不正検出問題では、このようなロジスティック回帰などのカテゴリの不均衡を扱うには適していませんロジスティック回帰、サンプルの大半は正常であるので、サンプル、サンプル珍しい詐欺、ロジスティック回帰アルゴリズムは、通常のサンプルであると決定されたサンプルのほとんどになる傾向があります非常に高い正解率を達成しますが、ないような高再現率することができます。
カテゴリ不均衡は、不正検出、これらの試料における識別風制御、(試料として一般的に問題の)黒のサンプルのような多くのシナリオに存在し、典型的には白色(正常サンプル)のサンプルの数よりはるかに小さいです。
サンプリング(オーバーサンプリング)で
、ダウンサンプリング(ネガティブサンプル)戦略アンバランスカテゴリの問題を解決するための基本的な方法の一つです。すなわち、データの比較的バランスの取れたセットを得るために大部分のクラスサンプルを低減するためにダウンサンプリング、すなわち、サンプルのサンプリング少数の数を増加させます。
直接、いくつかのサンプルが最も簡単なダウンサンプリングに設定されたサンプルを添加した後にコピーされた少数をサンプリングする最も簡単な方法は、直接トレーニングセットとして、大半のクラスのサンプルのみ一定割合を取ることができます。
打ったサンプリングアルゴリズムは、アルゴリズムのより上で使用され、アルゴリズム原理は、Pythonでのコードのわずか数十ラインを実現するために最初から、あまり複雑ではない打ったが、Pythonのimblearnパッケージは、より便利なインターフェース、すぐに達成するための必要性を提供しますimblearnタイムコードを直接呼び出すことができます。
imblearnカテゴリ不均衡なパッケージは、主に対応する打ち方法およびダウンサンプリングのRandomUnderSampler方法を導入する、基本的な呼び出しと一致して、インターフェースのサンプリング戦略ダウン多様を提供します。imblearn PIP使用して
インストール
imblearnが直接インストールします。
サンプルコード
生成不均衡データカテゴリ
データサンプルはmake_classification生成不均衡を使用して#のsklearn
インポートmake_classificationのsklearn.datasets

#0は、Xは、Yが対応するラベルである、を特徴とするサンプルのセット、及び110番の比を生成する
(n_classes = 2、class_sep = 2、X-、Y = make_classification
重み= [0.9、0.1 ]、n_informative = 3、
n_redundant = 1、flip_y = 0
n_features = 20であり、n_clusters_per_class = 1、
N_SAMPLES = 1000、random_state = 10)
のデータ分布を表示する

コレクションをインポートカウンタから

#、生成されたサンプル型分布を表示する0と1つのサンプルの割合1~9、カテゴリ不均衡データに属する

印刷(カウンタ(Y))

カウンター({0:900、1:100})
強打アルゴリズムコアステートメントの

サンプリング方法打っインタフェースを使用して#1 imlbearnライブラリ

インポートをimblearn.over_samplingから打ち

#強打定義されたモデル、乱数シードに対応random_state効果

SMO =強打(random_state = 42)

X_smo、y_smo = smo.fit_sample(X、 Y)
強打の後に分布データを介して表示する

プリント(カウンタ(y_smo))

カウンター({0:900 ,. 1:900})
上記のコードからは見ることができ、デフォルトモデル強打データの割合を生成する、他の比率は、データを生成する場合は、無線パラメータを使用することができます。のみならず、バイナリ分類を扱うことができ、それはマルチ分類問題にも等しく適用可能である

#無線パラメータの数によって生成されるカテゴリに対応するデータを指定することができる

SMO打ち(比= {1:300}、random_state = 42である)=

#0と1の比率を生成しますデータサンプル3~1

X_smo、y_smo smo.fit_sample =(X、Y)

の印刷(カウンタ(y_smo))

カウンター({0:900、1:300})
imblearnアップサンプリングRandomOverSamplerインターフェースは、ランダムサンプリングを提供し、打った、ADASYN三つの方法、通話モードと本質的に同じ主なパラメータ。ダウンサンプリングインタフェースはまた、実施例RandomUnderSamplerの方法を提供します。

インポートRandomUnderSamplerからimblearn.under_sampling

同様#は、比はまた、ダウンサンプリング比を指定するために使用することができる

RUSを= RandomUnderSampler(比= {0:500}、random_state = 0)

X_rus、y_rus rus.fit_sample =(X、Y)

プリント(カウンタ(y_smo))

カウンター({0:500、1:300})

おすすめ

転載: www.cnblogs.com/lvdongjie/p/11489743.html