A Python library for class-imbalanced ensemble learning with 30+ algorithms, built on scikit-learn.
IMBENS is a Python library designed for class-imbalanced ensemble learning, providing over 30 algorithms to tackle datasets with unequal class distributions. It solves the problem of biased model performance in imbalanced scenarios, such as fraud detection or rare disease prediction, by integrating techniques like under-sampling, over-sampling, and cost-sensitive learning into ensemble frameworks.
Data scientists and machine learning engineers working on classification problems with imbalanced datasets, particularly in research or applied settings where benchmarking and deploying advanced ensemble methods are required.
Developers choose IMBENS for its comprehensive, scikit-learn-compatible toolkit that combines ease of use with extensive functionality, including multi-class support, visualization, and parallelized training, making it a go-to solution for rigorous imbalanced learning workflows.
[NeurIPS'25]🛠️Class-imbalanced Ensemble Learning Toolbox. | 类别不平衡/长尾机器学习库
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Follows scikit-learn design principles, enabling seamless integration with existing sklearn workflows for preprocessing, cross-validation, and hyperparameter tuning, as emphasized in the README for compatibility.
Includes over 30 methods covering under-sampling, over-sampling, cost-sensitive learning, and ensemble techniques, providing a one-stop solution for imbalanced learning without needing multiple libraries.
Features built-in visualizers like ImbalancedEnsembleVisualizer for performance curves and confusion matrices, allowing easy model comparison and benchmarking, as shown in the example gallery.
Supports real-time monitoring with configurable metrics, datasets, and granularity during training, demonstrated in the README with interactive logging outputs for better debugging and analysis.
Extends binary imbalanced learning techniques to multi-class scenarios, addressing a common gap in other tools and making it versatile for diverse classification problems.
Requires numerous libraries like numpy, pandas, scikit-learn, matplotlib, and joblib, which can lead to installation conflicts and increased project footprint, especially in constrained environments.
Ensemble methods and features like parallelization and detailed logging add significant processing time and memory usage, making it less ideal for resource-limited or high-speed applications.
With over 30 algorithms and extensive configuration options, newcomers to imbalanced learning might find it overwhelming compared to simpler alternatives like basic scikit-learn samplers.