不均衡学習は、クラス間の強い不均衡を示すデータセットで一般的に使用される多数の再サンプリング手法を提供する Python パッケージです。これは scikit-learn と互換性があり、scikit-learn-contrib プロジェクトの一部です。
インストール ドキュメント、API ドキュメント、およびサンプルはドキュメントにあります。
アンバランスラーニングには次の依存関係が必要です。
Python (>= 3.10)
NumPy (>= 1.24.3)
SciPy (>= 1.10.1)
Scikit-learn (>= 1.2.2)
Pytest (>= 7.2.2)
さらに、不均衡学習には次のオプションの依存関係が必要です。
データフレームを処理するための Pandas (>= 1.5.3)
TensorFlow モデルを処理するための Tensorflow (>= 2.13.1)
Keras (>= 3.0.5) (Keras モデルを扱うため)
この例では、次の追加の依存関係が必要になります。
Matplotlib (>= 3.7.3)
シーボーン (>= 0.12.2)
不均衡学習は現在 PyPi のリポジトリで利用可能で、pip 経由でインストールできます。
pip install -U 不均衡学習
このパッケージは、Anaconda Cloud プラットフォームでもリリースされます。
conda install -c conda-forge 不均衡学習
必要に応じて、クローンを作成して setup.py ファイルを実行できます。次のコマンドを使用して Github からコピーを取得し、すべての依存関係をインストールします。
git クローン https://github.com/scikit-learn-contrib/imbalance-learn.git cd 不均衡学習 pip インストール 。
以下を使用して開発者モードでインストールできることに注意してください。
pip install --no-build-isolation --editable 。
GitHub でプルリクエストを作成したい場合は、pre-commit をインストールすることをお勧めします。
pip install プリコミット プリコミットインストール
インストール後、pytest を使用してテスト スイートを実行できます。
取材する
この scikit-learn-contrib の開発は、scikit-learn コミュニティの開発と一致しています。したがって、開発ガイドを参照してください。
私たちは、Scientific Python Ecosystem Coordination (SPEC) の優れた実践方法を推奨しています。推奨事項の完全なリストはここから入手できます。
私たちが不均衡学習プロジェクトに対して推奨する推奨事項のリストは以下をご覧ください。
科学出版物で不均衡学習を使用する場合は、次の論文を引用していただければ幸いです。
@article{JMLR:v18:16-365、 著者 = {ギヨーム・レマ{{^i}}トレ、フェルナンド・ノゲイラ、クリストス・K・アリダス}、 title = {Imbalance-learn: 機械学習における不均衡なデータセットの呪いに取り組むための Python ツールボックス}, ジャーナル = {機械学習研究ジャーナル}、 年 = {2017}、 ボリューム = {18}、 番号 = {17}、 ページ = {1-5}、 URL = {http://jmlr.org/papers/v18/16-365} }
ほとんどの分類アルゴリズムは、各クラスのサンプル数がほぼ同じである場合にのみ最適に実行されます。少数派の数が 1 つ以上のクラスよりもはるかに多い、非常に偏ったデータセットは、課題であることが証明されていると同時に、ますます一般的になってきています。
この問題に対処する 1 つの方法は、データセットを再サンプリングしてこの不均衡を相殺し、他の方法よりも堅牢で公平な決定境界に到達することを期待することです。
実装されたアルゴリズムの詳細については、不均衡学習のドキュメントを参照してください。