Project Icon

self-paced-ensemble

自适应集成学习框架解决高度不平衡数据分类

Self-paced Ensemble (SPE)是一个处理大规模高度不平衡数据分类的集成学习框架。SPE采用严格平衡的欠采样策略,无需计算样本间距离,适用于各类数据集。该框架计算高效,性能优异,可与多种学习模型兼容。作为通用框架,SPE能提升现有方法在不平衡数据上的表现,特别适合处理噪声大、极度不平衡的大规模数据集。

用于高度不平衡海量数据分类的自步调整集成学习方法(ICDE 2020)

链接: 论文 | 幻灯片 | 视频 | arXiv | PyPI | API参考 | 相关项目 | 知乎

自步调整集成学习(Self-paced Ensemble,SPE)是一种用于海量高度不平衡分类的集成学习框架。它是一种易于使用的类别不平衡问题解决方案,具有出色的计算效率、良好的性能,以及与不同学习模型的广泛兼容性。此SPE实现支持多类分类。

注意: SPE现已成为imbalanced-ensemble的一部分 [文档, PyPI]。尝试使用它以获得更多方法和高级功能!

引用我们

如果您发现本仓库对您的工作或研究有帮助,我们将非常感谢您引用以下论文

@inproceedings{liu2020self-paced-ensemble,
    title={自步调节集成用于高度不平衡的大规模数据分类},
    author={刘志宁, 曹伟, 高志峰, 边江, 陈和昌, 常毅, 刘铁岩},
    booktitle={2020年第36届IEEE国际数据工程会议(ICDE)论文集},
    pages={841--852},
    year={2020},
    organization={IEEE}
}

安装

推荐使用pip进行安装。 请确保安装最新版本以避免潜在问题:

$ pip install self-paced-ensemble            # 正常安装
$ pip install --upgrade self-paced-ensemble  # 如需更新

或者您可以通过克隆此仓库来安装SPE:

$ git clone https://github.com/ZhiningLiu1998/self-paced-ensemble.git
$ cd self-paced-ensemble
$ python setup.py install

需要以下依赖项:

目录

背景

SPE在每次迭代中执行严格的平衡欠采样,因此计算效率非常高。此外,SPE不依赖于计算样本之间的距离来执行重采样。它可以轻松应用于缺乏明确定义的距离度量的数据集(例如具有分类特征/缺失值),无需任何修改。此外,作为一个通用的集成框架,我们的方法可以轻松适应大多数现有的学习方法(例如C4.5、SVM、GBDT和神经网络),以提高它们在不平衡数据上的性能。与现有的不平衡学习方法相比,SPE在大规模、噪声大且高度不平衡的数据集(例如不平衡比例大于100:1)上表现特别出色。这种数据在现实世界的工业应用中广泛存在。下图概述了SPE框架。

图片

文档

我们的SPE实现可以与sklearn.ensemble分类器以非常相似的方式使用。SelfPacedEnsembleClassifier的详细文档可以在这里找到。

示例

您可以查看使用SPE的示例以获取更全面的使用示例。

API演示

from self_paced_ensemble import SelfPacedEnsembleClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split

# 准备类别不平衡的训练和测试数据
X, y = make_classification(n_classes=2, random_state=42, weights=[0.1, 0.9])
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.5, random_state=42)

# 训练SPE分类器
clf = SelfPacedEnsembleClassifier(
        base_estimator=DecisionTreeClassifier(), 
        n_estimators=10,
    ).fit(X_train, y_train)

# 使用SPE分类器进行预测
clf.predict(X_test)

高级用法示例

请参见usage_example.ipynb

保存和加载模型

我们建议使用joblib或pickle来保存和加载SPE模型,例如:

from joblib import dump, load

# 保存模型
dump(clf, filename='clf.joblib')
# 加载模型
clf = load('clf.joblib')

您也可以使用SPE提供的替代API:

from self_paced_ensemble.utils import save_model, load_model

# 保存模型
clf.save('clf.joblib')        # 选项1
save_model(clf, 'clf.joblib') # 选项2
# 加载模型
clf = load_model('clf.joblib')

将SPE与其他方法进行比较

请参阅 comparison_example.ipynb

结果

数据集链接: 信用卡欺诈KDDCUP记录链接支付模拟

图片

SPE与传统重采样/集成方法在性能和计算效率方面的比较。

图片

图片

图片

其他

本仓库包含:

  • 自步调节集成(Self-paced Ensemble)的实现
  • 5种基于集成的不平衡学习基线方法的实现
    • SMOTEBoost [1]
    • SMOTEBagging [2]
    • RUSBoost [3]
    • UnderBagging [4]
    • BalanceCascade [5]
  • 基于重采样的不平衡学习基线方法的实现 [6]
  • 额外的实验结果

注意: 其他集成和重采样方法的实现基于 imbalanced-ensembleimbalanced-learn

参考文献

#参考文献
[1]N. V. Chawla, A. Lazarevic, L. O. Hall, and K. W. Bowyer, Smoteboost: Improving prediction of the minority class in boosting. in European conference on principles of data mining and knowledge discovery. Springer, 2003, pp. 107–119
[2]S. Wang and X. Yao, Diversity analysis on imbalanced data sets by using ensemble models. in 2009 IEEE Symposium on Computational Intelligence and Data Mining. IEEE, 2009, pp. 324–331.
[3]C. Seiffert, T. M. Khoshgoftaar, J. Van Hulse, and A. Napolitano, "Rusboost: A hybrid approach to alleviating class imbalance," IEEE Transactions on Systems, Man, and Cybernetics-Part A: Systems and Humans, vol. 40, no. 1, pp. 185–197, 2010.
[4]R. Barandela, R. M. Valdovinos, and J. S. Sanchez, "New applications´ of ensembles of classifiers," Pattern Analysis & Applications, vol. 6, no. 3, pp. 245–256, 2003.
[5]X.-Y. Liu, J. Wu, and Z.-H. Zhou, "Exploratory undersampling for class-imbalance learning," IEEE Transactions on Systems, Man, and Cybernetics, Part B (Cybernetics), vol. 39, no. 2, pp. 539–550, 2009.
[6]Guillaume Lemaître, Fernando Nogueira, and Christos K. Aridas. Imbalanced-learn: A python toolbox to tackle the curse of imbalanced datasets in machine learning. Journal of Machine Learning Research, 18(17):1–5, 2017.

相关项目

查看 Zhining 的其他开源项目!

贡献者 ✨

感谢这些优秀的人 (表情符号说明):

本项目遵循all-contributors规范。欢迎任何形式的贡献!

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号