yzhao062/combo
(AAAI' 20) A Python Toolbox for Machine Learning Model Combination
What it solves
combo is a Python toolbox that helps you combine multiple machine learning models and their prediction scores into a single, stronger result. Training several models and then fusing their outputs often yields better accuracy and robustness than using any one model alone. This library makes that combination step easy and consistent across classification, clustering, and anomaly detection tasks.
How it works
combo provides unified APIs for combining models from scikit-learn, XGBoost, and LightGBM. You start with a list of base estimators (for example, decision trees, logistic regression, k-nearest neighbors, random forests). Then you pick a combination method — such as simple averaging, weighted averaging, majority voting, or more advanced strategies like stacking (meta‑learning), dynamic classifier/ensemble selection (DCS/DES), and clustering ensembles (EAC). The library also includes dedicated combinations for outlier detectors, like Average of Maximum (AOM) and Locally Selective Combination (LSCP). All methods share the same fit / predict / predict_proba interface, so swapping strategies is straightforward. Where possible, it uses numba and joblib to speed up computations.
Who it’s for
Data scientists, ML practitioners, and researchers who want to improve model performance by combining multiple trained models, especially when working on classification, clustering, or outlier/anomaly detection. It is also useful for people preparing Kaggle-style competition submissions where ensemble methods routinely boost scores.
Highlights
- Unified API across all combination methods — same fit/predict/predict_proba pattern.
- Covers general-purpose combinations (average, weighted average, max, median, majority vote) plus advanced ones (Stacking, DCS, DES, EAC, LSCP, XGBOD).
- Works with popular ML libraries: scikit-learn, XGBoost, LightGBM, and pyod for outlier detectors.
- Includes concrete examples for classifier combination, clustering combination, and outlier detector combination with sample outputs.
- Optimized using numba (JIT) and joblib (parallelization) where possible.
Related
- Project
- Project
- Project
- Project