Balanced-learn 是一个 Python 包,提供了许多在显示强烈类间不平衡的数据集中常用的重采样技术。它与 scikit-learn 兼容,并且是 scikit-learn-contrib 项目的一部分。
安装文档、API文档和示例都可以在文档中找到。
不平衡学习需要以下依赖项:
Python(>= 3.10)
NumPy (>= 1.24.3)
SciPy (>= 1.10.1)
Scikit 学习 (>= 1.2.2)
pytest (>= 7.2.2)
此外,不平衡学习需要以下可选依赖项:
Pandas (>= 1.5.3) 用于处理数据帧
Tensorflow (>= 2.13.1) 用于处理 TensorFlow 模型
Keras (>= 3.0.5) 用于处理 Keras 模型
这些示例将需要以下附加依赖项:
Matplotlib (>= 3.7.3)
Seaborn (>= 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/imbalanced-learn.git cd 不平衡学习 点安装。
请注意,您可以通过以下方式在开发人员模式下安装:
pip install --no-build-isolation --editable 。
如果您希望在 GitHub 上发出拉取请求,我们建议您安装预提交:
pip install 预提交 预提交安装
安装后,您可以使用 pytest 运行测试套件:
进行报道
这个 scikit-learn-contrib 的开发与 scikit-learn 社区的开发是一致的。因此,您可以参考他们的开发指南。
我们认可科学 Python 生态系统协调组织 (SPEC) 的良好实践。完整的建议列表可在此处找到。
请参阅下面我们认可的不平衡学习项目的建议列表。
如果您在科学出版物中使用不平衡学习,我们将不胜感激引用以下论文:
@文章{JMLR:v18:16-365, 作者 = {Guillaume Lema{{^i}}tre 和 Fernando Nogueira 和 Christos K. Aridas}, title = {Imbalanced-learn:解决机器学习中不平衡数据集诅咒的 Python 工具箱}, 期刊={机器学习研究期刊}, 年 = {2017}, 体积 = {18}, 数字={17}, 页数 = {1-5}, 网址 = {http://jmlr.org/papers/v18/16-365} }
大多数分类算法只有在每个类别的样本数量大致相同时才会发挥最佳性能。高度倾斜的数据集(即少数群体的数量远远落后于一个或多个类别)已被证明是一项挑战,同时也变得越来越常见。
解决此问题的一种方法是对数据集进行重新采样,以抵消这种不平衡,希望获得比其他方式更稳健和公平的决策边界。
您可以参考不平衡学习文档来查找有关已实现算法的详细信息。