Last Updated on January 5, 2021
Imbalanced datasets are those that are severe skew in class distribution, such as 1:100 or 1:1000 examples in minority class to majority class…不均衡なデータセット。
学習データセットにおけるこの偏りは、多くの機械学習アルゴリズムに影響を与え、少数派のクラスを完全に無視するように仕向けることがあります。
クラスの不均衡の問題に対処するための1つのアプローチは、学習データセットをランダムに再サンプルすることです。 不均衡なデータセットをランダムに再サンプリングする2つの主なアプローチは,アンダーサンプリングと呼ばれる多数クラスから例を削除することと,オーバーサンプリングと呼ばれる少数クラスから例を複製することである.
このチュートリアルでは、不均衡な分類のためのランダムなオーバーサンプリングとアンダーサンプリングについて学びます
このチュートリアルを完了すると、以下のことがわかるようになります:
- Random resampling provides a naive technique for rebalancing the class distribution for an imbalanced dataset.
- ランダム オーバーサンプリングは、トレーニング データセット内の少数クラスから例を重複させ、一部のモデルでオーバーフィッティングを引き起こす可能性があります。
私の新しい本「Imbalanced Classification with Python」を使ってプロジェクトを始めましょう!ステップバイステップのチュートリアルとすべての例の Python ソースコード ファイルが含まれています。 API ドキュメントへのリンクを更新しました。
Random Oversampling and Undersampling for Imbalanced Classification
Photo by RichardBH, some rights reserved.
- チュートリアルの概要
- Random Resampling Imbalanced Datasets
- 不均衡学習ライブラリ
- 不均衡分類を始めたいですか?
- Random Oversampling Imbalanced Datasets
- Random Undersampling Imbalanced Datasets
- Combining Random Oversampling and Undersampling
- Further Reading
- 書籍
- Papers
- API
- 記事
- 概要
- 不均衡分類を使いこなす!
- Develop Imbalanced Learning Models in Minutes
- 機械学習プロジェクトに不均衡分類法を導入する
チュートリアルの概要
このチュートリアルは5つのパートに分かれています。
- 不均衡なデータセットのランダムリサンプリング
- 不均衡なデータセットのランダムリサンプリング
- 不均衡なデータセットのランダムリサンプリングLearn Library
- Random Oversampling Imbalanced Datasets
- Random Undersampling Imbalanced Datasets
- Combining Random Oversampling and Undersampling
Random Resampling Imbalanced Datasets
リサムリングでは、選択した例が異なるクラス分布を持つトレーニングデータセットの新しい変換バージョンを作成する必要があります。
これは、不均衡な分類問題に対するシンプルで効果的な戦略です。
よりバランスのとれたデータ分布を得るために再サンプリング戦略を適用することは、不均衡問題に対する有効な解決策です
– A Survey of Predictive Modelling under Imbalanced Distributions, 2015.
最もシンプルな戦略は、変換されたデータセットの例をランダムに選択することで、ランダムリサンプリングと呼ばれています。
不均衡分類のためのランダムリサンプリングには、主に二つのアプローチがあります。それはオーバーサンプリングとアンダーサンプリングです。
- Random Oversampling:
- Random Undersampling: 少数クラスの例をランダムに重複させる。
ランダムオーバーサンプリングでは、少数派のクラスからランダムに例を選択し、置換して、それらをトレーニングデータセットに追加します。 ランダムアンダーサンプリングでは、多数派クラスからランダムに例を選択し、学習データセットから削除する。
ランダムアンダーサンプリングでは、よりバランスのとれた分布になるまで、多数派クラスのインスタンスがランダムに破棄される。
これらのアプローチは、データについて何も仮定せず、ヒューリスティックも使用しないため、「ナイーブ リサンプリング」メソッドと呼ばれる。
どちらの手法も2クラス(バイナリ)分類問題や、1つ以上の多数または少数クラスを持つマルチクラス分類問題に使用することができる。
重要なことは、クラス分布への変更は訓練データセットにのみ適用されることである。 その意図は、モデルの適合に影響を与えることです。 モデルのパフォーマンスを評価するために使用されるテストまたはホールドアウトデータセットには、リサンプリングは適用されません。
一般的に、これらの単純な方法は、関係するデータセットとモデルの仕様に依存するものの、有効である場合があります。
不均衡学習ライブラリ
これらの例では、以下のように pip でインストールできる imbalanced-learn Python ライブラリによって提供される実装を使用することにします。
1 sudo pip install imbalanced-> sudo pip install imbalanced->インストールしたライブラリのバージョンを出力することで、インストールが成功したことが確認できます。
123 # check version numberimport imblearnprint(imblearn.__version__)この例を実行すると、インストールされたライブラリのバージョン番号が表示されます。
1 0.5.0
不均衡分類を始めたいですか?
今すぐ無料の7日間のEメール クラッシュコース(サンプルコード付き)を受講してください。
Click to sign-up and also get the free PDF Ebook version of the course.
Download Your FREE Mini-Course
Random Oversampling Imbalanced Datasets
Random oversampling involves randomly duplicating examples from the minority class and adding them to the training dataset.
Examples from the training dataset is randomly selected with replacement.The other models and more than the other models. 元のトレーニングデータセットから選択され、新しいトレーニングデータセットに追加され、その後元のデータセットに戻されるか、または「置換」され、再び選択できるようになります。
この手法は、歪んだ分布に影響を受け、与えられたクラスに対する複数の重複した例がモデルの適合に影響を与える機械学習アルゴリズムに有効である可能性があります。 これには、確率的勾配降下を使用する人工ニューラルネットワークのような、係数を反復的に学習するアルゴリズムが含まれるかもしれません。 また、サポートベクターマシンや決定木など、データの良い分割を求めるモデルにも影響を与える可能性があります。
ターゲットクラスの分布を調整することが有用である場合もあります。 場合によっては、著しく不均衡なデータセットに対してバランスの取れた分布を求めると、影響を受けるアルゴリズムが少数クラスを過剰に適合させ、汎化誤差を増大させることがある。 その結果、トレーニング データセットでのパフォーマンスは向上しますが、ホールドアウトまたはテスト データセットでのパフォーマンスは低下します。
… ランダム オーバーサンプリングは、少数クラスの例の正確なコピーを作成するので、オーバーフィットの発生の可能性を高める可能性があります。 このように、例えば記号分類器は、一見正確だが、実際には1つの複製された例をカバーするルールを構築するかもしれない。
-83ページ、不均衡データセットからの学習、2018.1293>
そのため、方法の影響について洞察を得るには、オーバーサンプリング後のトレーニングおよびテストデータセット両方でパフォーマンスを監視し、元のデータセットで同じアルゴリズムと結果を比較するとよいだろう。
少数クラスの例数の増加は、特にクラスの偏りが深刻だった場合、モデルを適合するときに計算コストが著しく増加することもあり、特にモデルが学習データセットで同じ例を何度も見ることを考慮します。
… ランダム オーバーサンプリングでは、少数クラスの例のコピーをランダムにセットにしたものがデータに追加されます。 これは,特にオーバーサンプリング率が高い場合,オーバーフィッティングの可能性が高くなることがある. さらに、分類器のパフォーマンスを低下させ、計算負荷を増加させる可能性があります。
– A Survey of Predictive Modelling under Imbalanced Distributions, 2015.
Random Oversampling は RandomOverSampler クラスを用いて実装することができる。
このクラスは定義することができ、「少数派」に設定することができるsampling_strategy引数を取り、自動的に少数派クラスと多数派クラスまたはクラスのバランスをとることができます。
例えば:
123 …等。# define oversampling strategyoversample = RandomOverSampler(sampling_strategy=’minority’)つまり多数クラスが1000例で少数クラスが100例の場合、少数クラスの例が1000となるようオーバーサンプリングを行う戦略であることがわかります。
変換後のデータセットにおける少数クラスの過半数の例の比率を示す浮動小数点値を指定することができます。 例:
123 …等々。# define oversampling strategyoversample = RandomOverSampler(sampling_strategy=0.5)これは、2値分類問題で、少数クラスは多数クラスの半分の数の例を持つためにオーバーサンプリングすることが確実であると思います。 これは、多数派クラスが 1,000 例、少数派クラスが 100 例であった場合、変換されたデータセットには少数派クラスの 500 例があることを意味します。
クラスは、データセットにフィットし、新しいまたは変換されたデータセットを生成するために使用されるという点で scikit-learn 変換オブジェクトと似ています。 scikit-learnの変換とは異なり、データセットの値(scalerのような)や特徴量(projectionのような)の数だけでなく、例の数を変更します。
例えば、fit_sample()関数を呼び出すことで、一度にフィットして適用することができます:
123 ・・・・・・。..# fit and apply the transformX_over, y_over = oversample.fit_resample(X, y)1:100 class imbalanceの簡単な合成2分類問題についてデモしてみましょう。
123 …# define datasetX, y = make_classification(n_samples=10000, weights=, flip_y=0)データセットを定義してランダムオーバーサンプリングを行いクラス分布をバランスよくする全例を以下に示す。
1234567891011121314 # example of random oversampling to balance class distributionfrom collections import Counterfrom sklearn.NET.NET.COMfrom collections import Counter (クラス分布のバランスをとるためのランダムオーバーサンプリングの例)datasets import make_classification
from imblearn.over_sampling import RandomOverSampler# define datasetX, y = make_classification(n_samples=10000, weights=, flip_y=0)# summarize class distributionprint(Counter(y))# define oversampling strategyoversample = RandomOverSampler(sampling_strategy=’minority’)# fit and apply the transformX_over, y_over = oversample.fit_resample(X, y)# summarize the class distributionprint(Counter(y_over))この例を実行すると、まずデータセットを作成し、次にクラス分布のサマリーを作成します。 1293>
そして、ランダムオーバーサンプル変換が少数クラスのバランスをとるために定義され、そしてフィットしてデータセットに適用されます。 変換されたデータセットのクラス分布が報告され、少数クラスが多数クラスと同じ数の例を持っていることがわかります。
12 Counter({0: 9900, 1: 100})Counter({0: 9900, 1.100}): 9900})この変換は、k-fold クロス バリデーションにおける各スプリットの一部としてトレーニング データセットにのみ適用されるように、Pipeline の一部として使用することができます。
従来の scikit-learn の Pipeline は使用できません。代わりに imbalanced-learn ライブラリの Pipeline を使用することができます。 例えば:
1234 …等々です.# pipelinesteps =pipeline = Pipeline(steps=steps)以下の例は、クラス分布1:100の不均衡データセットに対して決定木を評価する完全な例である。
モデルは3回繰り返される10回クロスバリデーションを使用して評価され、オーバーサンプリングは各回内のトレーニングデータセットで別々に実行され、クロスバリデーションの前にオーバーサンプリングが実行された場合に起こりうるようなデータリークがないことが保証される。
123456789101112131415161718 # random oversamplingで決定木を評価した例from numpy import meanfrom sklearn.datasets import make_classificationfrom sklearn.model_selection import cross_val_scorefrom sklearn.model_selection import RepeatedStratifiedKFoldfrom sklearn.tree import DecisionTreeClassifierfrom imblearn.Datas import make_classificationfrom Sklearn.model_selection import repeatatedStratifiedKFoldfrom sklearn.model_selection import cross_val_scorefrom Imblearn.over_sampling import RandomOverSampler# define datasetX, y = make_classification(n_samples=10000, weights=, flip_y=0)# define pipelinesteps =pipeline = Pipeline(steps=steps)# evaluate pipelinecv = RepeatedStratifiedKFold(n_splits=10.XXX.XXX) # evaluate pipeeline# evaluate pipeline# evaluate pipeline# evaluate pipeelinescores = cross_val_score(pipeline, X, y, scoring=’f1_micro’, cv=cv, n_jobs=-1)score = mean(scores)print(‘F1 Score.F1,’F1 Score.F1,’F1 Score.F1,’F1 Score.F1,’F1 Score.F1,’F1 Score.F1,’F1 Score: %.3f’ % score)例を実行すると、オーバーサンプリングによる不均衡なデータセットで決定木モデルが評価される。
選択したモデルとリサンプリング構成は任意で、合成データセットを最適に解くのではなく、データセットと学習アルゴリズムでアンダーサンプリングをテストするために使用できるテンプレートを提供するように設計されています。
注意:アルゴリズムまたは評価手順の確率的性質、または数値精度の違いにより、結果が異なる場合があります。
デフォルトのオーバーサンプリング戦略が使用され、少数クラスと多数クラスのバランスが取られている。 各フォールドと各リピートで平均したF1スコアを報告する。
1 F1 スコア:0.0。990オーバーサンプリングについて理解できたので、アンダーサンプリングについて見てみましょう。
Random Undersampling Imbalanced Datasets
ランダムアンダーサンプリングは、学習データセットから削除する多数クラスからランダムに例を選択することを含みます。 このプロセスは、各クラスについて同数の例など、所望のクラス分布が達成されるまで繰り返すことができる。
このアプローチは、少数クラスに十分な数の例があるがクラスの不均衡があるデータセットに対してより適している場合があり、そのように有用なモデルを適合することができる。
アンダーサンプリングの限界は、多数クラスから、有用、重要、またはおそらく堅牢な決定境界を適合するのに重要である例が削除されるという点である。 例がランダムに削除されることを考えると、多数決クラスから「良い」またはより情報量の多い例を検出または保存する方法はありません。
… ランダムなアンダーサンプリングでは(潜在的に)、膨大な量のデータが破棄される。 このようなデータの損失により、少数派と多数派のインスタンスの間の決定境界が学習しにくくなり、分類性能の損失が生じるため、これは非常に問題となり得る。
– 45ページ、Imbalanced Learning:
ランダムなアンダーサンプリング技術は、RandomUnderSampler imbalanced-learn クラスを使用して実装できます。
このクラスは、戦略が少数派のクラスではなく、多数派のクラスに影響を与える以外は、前のセクションの RandomOverSampler クラスと同様に使用することができます。 例えば、sampling_strategy 引数を “majority” に設定すると、最も多くの例を持つクラスによって決定される多数派のクラスをアンダーサンプリングすることになります。
123 …# define undersample strategyundersample = RandomUnderSampler(sampling_strategy=’majority’)例えば多数クラスが1000例、少数クラスが100例のデータセットに対して、変換後の学習データセットの両クラスで100例のアンダーサンプリングを行います。
また、sampling_strategy 引数を浮動小数点値に設定することができ、これは少数派のクラスに対する割合、つまり少数派のクラスの例数を多数派のクラスの例数で割ったものになります。 例えば、多数派クラスが1000例、少数派クラスが100例の不均衡データセットでsampling_strategyを0.5に設定すると、変換後のデータセットでは多数派クラスの例が200例になります(または100/200 = 0.5).
123 …# define undersample strategyundersample = RandomUnderSampler(sampling_strategy=0.5)この方法は、結果のデータセットが妥当なモデルを適用できるほど大きく、大多数のクラスからあまり多くの役に立つ情報を廃棄しないようにしたい場合、好ましいと思われます。
ランダムなアンダーサンプリングでは、削除する多数決クラスのインスタンスをランダムに 90 個選択することにより、バランスのとれたクラス分布を作成しようとすることがあります。 その結果、データセットは20のインスタンスで構成されます。 10 個の (ランダムに残った) 多数派クラス インスタンスと (元の) 10 個の少数派クラス インスタンスです。
– Page 45, Imbalanced Learning: Foundations, Algorithms, and Applications, 2013
そして、fit_resample()関数を呼び出し、変換されていないデータセットを引数として渡すことにより、変換を一度にフィットさせてデータセットに適用することが可能である。
123 …# fit and apply the transformX_over, y_over = undersample.fit_resample(X, y)これを1:100クラスのインバランスのデータセットで実証します
以下にその全例が掲載されています。
1234567891011121314 # example of random undersampling to balance class distributionfrom collections import Counterfrom sklearn.Incorporated.datasets import make_classificationfrom imblearn.under_sampling import RandomUnderSampler# define datasetX, y = make_classification(n_samples=10000, weights=, flip_y=0)# summary summaryize class distributionprint(Counter(y))# define undersample strategyundersample = RandomUnderSampler(sampling_strategy=’majority’)# fit and apply transformX_over, y_over = undersample.fit_resample(X, y)# summarize a class distributionprint(Counter(y_over))例を実行すると、まずデータセットを作成し、不均衡なクラス分布が報告されます。
変換がフィットしてデータセットに適用され、新しいクラス分布が報告されます。 多数派のクラスは、少数派のクラスと同じ数の例を持つようにアンダーサンプリングされていることがわかります。
わずか 200 例のトレーニング データセットがモデルをトレーニングするのに十分であるかどうかについては、判断と経験則を使用する必要があります。
12 Counter({0: 9900, 1: 100})Counter({0: 100, 1: 100})このアンダーサンプリング変換も、前節のオーバーサンプリング変換のようにPipelineで使用することができる。
これにより、k-fold クロス バリデーションなどの評価スキームを使用してトレーニング データセットのみに変換を適用し、モデルの評価におけるデータの漏洩を回避することができます。
1234 …# define pipelinesteps =pipeline = Pipeline(steps=steps)10回クロスバリデーションを繰り返し、分割ごとにアンダーサンプリング変換を学習データ集合に適用し、不均衡な分類データ集合に決定木をフィットする例も定義可能である。
完全な例を以下に挙げる。
123456789101112131415161718 # random undersamplingで決定木を評価する例from numpy import meanfrom sklearn.NET.NET.NET.COM #sklearn.NET.NET.NET.TATERU#sklearn.NET.TATERU#sklearn.TATERUfrom sklearn.model_selection import cross_val_scorefrom sklearn.model_selection import RepeatedStratifiedKFoldfrom sklearn.tree import DecisionTreeClassifierfrom imblearn.pipeline import Pipelinefrom imblearn.under_sampling import RandomUnderSampler# define datasetX, y = make_classification(n_samples=10000, weights=, flip_y=0)# define pipelinesteps =pipeline = Pipeline(steps=steps)# evaluate pipelinecv = RepeatedStratifiedKFold(n_splits=10.XXX.XXX) # evaluate pipeline# evaluate pipelinecv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1)scores = cross_val_score(pipeline, X, y, scoring=’f1_micro’, cv=cv, n_jobs=-1)score = mean(scores)print(‘F1 Score.F1,’F1 Score.F1,’F1 Score.F1,’F1 Score.F1,’F1 Score.F1,’F1 Score.F1,’F1 Score: %.3f’ % score)例を実行すると、アンダーサンプリングによる不均衡なデータセットで決定木モデルが評価されます。
選択されたモデルとリサンプリング構成は任意で、合成データセットを最適に解くのではなく、データセットと学習アルゴリズムでアンダーサンプリングをテストするために使用できるテンプレートを提供するように設計されています。
注意:アルゴリズムまたは評価手順の確率的性質、または数値精度の違いによって結果が異なることがあります。
デフォルトのアンダーサンプリング戦略が使用され、多数派クラスと少数派クラスのバランスが取られる。 各フォールドと各リピートで平均したF1スコアを報告する。
1 F1 スコア:0.0。889Combining Random Oversampling and Undersampling
Random Oversampling と Undersampling の両方を組み合わせて、興味深い結果が得られる場合があります。
たとえば、適度な量のオーバーサンプリングを少数派のクラスに適用して、これらの例に対する偏りを改善し、同時に適度な量のアンダーサンプリングを多数派のクラスに適用して、そのクラスに対する偏りを軽減することができる。
これは、1 つまたは他の技術を単独で実行する場合と比較して、全体的なパフォーマンスの向上をもたらすことができます。
たとえば、1:100 クラス分布のデータセットがある場合、最初にオーバーサンプリングを適用して、少数派のクラスから例を重複させることによって比率を 1:10 まで高め、次にアンダーサンプリングを適用して多数派のクラスから例を削除してさらに 1:2 まで改善できます。
これは imbalanced-learn を使用して、sampling_strategy を 0.1 (10%) に設定した RandomOverSampler を使用し、次に sampling_strategy を 0.5 (50%) に設定した RandomUnderSampler を使用して実装することが可能です。 例えば
123456789 …# define oversampling strategyover = RandomOverSampler(sampling_strategy=0.1)# fit and apply transformX, y = over.fit_resample(X, y)# define undersampling strategyunder = RandomUnderSampler(sampling_strategy=0.1)# fit_strategy=Random_Sampling(0.2)オーバーサンプリングは、RandomOver=Random_strategy(sampling_strategy)とする。5)# fit and apply the transformX, y = under.fit_resample(X, y)クラス分布1:100の合成データで実証してみます。 完全な例を以下に示す。
123456789101112131415161718192021 # imbalanced dataに対するランダムなオーバーサンプリングとアンダーサンプリングの結合例from collections import Counterfrom sklearn.Inc.datasets import make_classificationfrom imblearn.over_sampling import RandomOverSamplerfrom imblearn.over_sampling import RandomOverSamplerfrom imblearn.dataets import make_classification…under_sampling import RandomUnderSampler
# define datasetX, y = make_classification(n_samples=10000, weights=, flip_y=0)# summarize class distributionprint(Counter(y))# define oversampling strategyover = RandomOverSampler(sampling_strategy=0.1)# fit and apply transformX, y = over.fit_resample(X, y)# summarize class distributionprint(Counter(y))# define undersampling strategyunder = RandomUnderSampler(sampling_strategy=0.5)# fit and apply the transformationX, y = under.fit_resample(X, y)# summarize class distributionprint(Counter(y))例を実行すると、まず合成データセットを作成し、クラス分布を要約し、約1:100のクラス分布が示されます。
次にオーバーサンプリングを行い、分布を約1:100から約1:10に増やします。 最後に、アンダーサンプリングが適用され、クラス分布が 1:10 から約 1:2 にさらに向上する
123 Counter({0: 9900, 1: 100})Counter({0: 9900, 1: 990})Counter({0: 1980, 1: 990})k-fold 交差検証を使ってモデルを評価するときにもこの同じハイブリッドアプローチを適用したい場合があります。
これは、変換のシーケンスと評価されているモデルで終わるパイプラインを使用することで実現できます。
123456 …# define pipelineover = RandomOverSampler(sampling_strategy=0.1)under = RandomUnderSampler(sampling_strategy=0.0.5)steps =pipeline = Pipeline(steps=steps)同じ合成データセットで決定木モデルを使って実証できる。
以下にその全例を挙げる。
123456789101112131415161718192021 # random oversampling and undersamplingでモデルを評価した例from numpy import meanfrom sklearn.datasets import make_classificationfrom sklearn.model_selection import cross_val_scorefrom sklearn.model_selection import RepeatedStratifiedKFoldfrom sklearn.Model_selection import RepeatedStratifiedKFoldfrom sklearn.Datas import make_classificationfrom imblearn.pipeline import Pipelinefrom imblearn.over_sampling import RandomOverSamplerfrom imblearn.sklearn.モデル_selection import RandomOverSampler# define datasetX, y = make_classification(n_samples=10000, weights=, flip_y=0)# define pipelineover = RandomOverSampler(sampling_strategy=0.1)under = RandomUnderSampler(sampling_strategy=0.1) # define dataset# define datasetX, y = make_classification(n_samples=1000) # define pipeline# define dataset# define datasetsteps =pipeline = Pipeline(steps=steps)# evaluate pipelinecv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3.3, random_state=1)scores = cross_val_score(pipeline, X, y, scoring=’f1_micro’, cv=cv, n_jobs=-1)score = mean(scores)print(‘F1 Score.F1スコア’F1.F1′) score = mean(F1.F1) %.3f’ % score)この例を実行すると、学習データセットが、分割と繰り返しの実行ごとに、まずオーバーサンプリング、次にアンダーサンプリングを使って変換されるk倍クロスバリデーションを繰り返して決定木モデルが評価される。 各折り返しと各繰り返しを平均した F1 スコアが報告されます。
注意: アルゴリズムや評価手順の確率的性質、または数値精度の違いにより、結果が異なる場合があります。
選択されたモデルとリサンプリング構成は任意であり、合成データセットを最適に解くのではなく、データセットと学習アルゴリズムでアンダーサンプリングをテストするために使用できるテンプレートを提供するように設計されています。
1 F1 スコア:0.985Further Reading
このセクションでは、より深く知りたい場合に、トピックに関するその他のリソースを提供します。
書籍
- 第5章 データレベルの前処理法、不均衡データセットから学習、2018.
- 第3章 均衡データセット.Dat.Dat.S.A……Dat.A.S…….Dat.A…….Dat.A…….Dat.S….: サンプリングから分類器まで、アンバランス学習。 Foundations, Algorithms, and Applications, 2013.
Papers
- A Study Of The Behavior Of Several Methods For Balancing Machine Learning Training Data, 2004.
- A Survey of Predictive Modelling under Imbalanced Distributions, 2015.「バランスの悪い分布の下での予測モデリング」.
API
- Imbalanced-Learn Documentation.
- imbalanced-learn, GitHub.
- imblearn.over_sampling.RandomOverSampler API.
- imblearn.pipeline.Pipeline API.
- imblearn.under_sampling.RandomUnderSampler API.
- Imbalanced-learn API.
imblearn.over_sampling.RandomUnderSampler API. Imbalanced-learn API.
記事
- Oversampling and undersampling in data analysis, Wikipedia.
概要
このチュートリアルでは、不均衡な分類のためのランダムなオーバーサンプリングとアンダーサンプリング
具体的には、次のことを学びました:
- Random resampling は不均衡データセットのクラス分布をリバランスするナイーブ手法を提供します。
- ランダム オーバーサンプリングは、トレーニング データセット内の少数クラスから例を重複させ、一部のモデルでオーバーフィッティングを引き起こす可能性があります。
- Random undersampling は、多数派のクラスから例を削除し、モデルにとって貴重な情報を失う結果になることがあります。
不均衡分類を使いこなす!
Develop Imbalanced Learning Models in Minutes
…。4049>Imbalanced Classification with Python
この新しい書籍では、次のような自習チュートリアルとエンドツーエンド プロジェクトが提供されています:
Performance Metrics, Undersampling Methods, SMOTE, Threshold Moving, Probability Calibration, Cost-Sensitive Algorithms
and more….機械学習プロジェクトに不均衡分類法を導入する
中身を見る
Tweet 共有