Note
Go to the end to download the full example code
Visualize an ensemble classifier
This example illustrates how to quickly visualize an
imbens.ensemble
classifier with
the imbens.visualizer
module.
This example uses:
# Authors: Zhining Liu <zhining.liu@outlook.com>
# License: MIT
print(__doc__)
# Import imbalanced-ensemble
import imbens
# Import utilities
import sklearn
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
RANDOM_STATE = 42
# sphinx_gallery_thumbnail_number = 2
Prepare data
Make a toy 3-class imbalanced classification task.
# make dataset
X, y = make_classification(
n_classes=3,
class_sep=2,
weights=[0.1, 0.3, 0.6],
n_informative=3,
n_redundant=1,
flip_y=0,
n_features=20,
n_clusters_per_class=2,
n_samples=2000,
random_state=0,
)
# train valid split
X_train, X_valid, y_train, y_valid = train_test_split(
X, y, test_size=0.5, stratify=y, random_state=RANDOM_STATE
)
Train an ensemble classifier
Take SelfPacedEnsembleClassifier
as example
# Initialize and train an SPE classifier
clf = imbens.ensemble.SelfPacedEnsembleClassifier(random_state=RANDOM_STATE).fit(
X_train, y_train
)
# Store the fitted SelfPacedEnsembleClassifier
fitted_ensembles = {'SPE': clf}
Fit an ImbalancedEnsembleVisualizer
# Initialize visualizer
visualizer = imbens.visualizer.ImbalancedEnsembleVisualizer(
eval_datasets={
'training': (X_train, y_train),
'validation': (X_valid, y_valid),
},
)
# Fit visualizer
visualizer.fit(fitted_ensembles)
Font family ['Consolas'] not found in your system. Falling back to DejaVu Sans.
0%| | 0/50 [00:00<?, ?it/s]
Visualizer evaluating model SPE on dataset training :: 0%| | 0/50 [00:00<?, ?it/s]
Visualizer evaluating model SPE on dataset training :: 100%|##########| 50/50 [00:00<00:00, 694.85it/s]
0%| | 0/50 [00:00<?, ?it/s]
Visualizer evaluating model SPE on dataset validation :: 0%| | 0/50 [00:00<?, ?it/s]
Visualizer evaluating model SPE on dataset validation :: 100%|##########| 50/50 [00:00<00:00, 718.64it/s]
Visualizer computing confusion matrices.. Finished!
<imbens.visualizer.visualizer.ImbalancedEnsembleVisualizer object at 0x7f1efececd00>
Plot performance curve
performance w.r.t. number of base estimators
fig, axes = visualizer.performance_lineplot()
Plot confusion matrix
fig, axes = visualizer.confusion_matrix_heatmap(
on_datasets=['validation'], # only on validation set
sup_title=False,
)
Total running time of the script: ( 0 minutes 1.695 seconds)