Skip to main content

CalibratedClassifierCV

Post-hoc probability calibration that maps a base classifier's scores onto well-calibrated probabilities using sigmoid (Platt) or isotonic regression fit by cross-validation.

The examples/calibration/calibrated_classifier_cv.cpp program renders a reliability curve comparing predicted positive-class probabilities with observed positive fractions:

CalibratedClassifierCV reliability curveCalibratedClassifierCV reliability curve

Algorithm

For each CV fold the base estimator is fit on the training part and a calibrator (1-D logistic regression for sigmoid, PAVA for isotonic) is fit on the held-out scores. Predictions average the per-fold calibrators. v1.1.0 covers binary classification.

Constructor

Skigen::CalibratedClassifierCV<Base, Scalar> model(Base est, Method = Sigmoid, int cv = 5, int n_jobs = 1, bool ensemble = true);

Parameters

ParameterDefaultDescription
estimatorBase classifier to calibrate.
methodSigmoidSigmoid (Platt) or Isotonic.
cv5Cross-validation folds.
ensembletrueAverage per-fold calibrators.

Methods

MethodDescription
fit(X, y)Fit base estimators and calibrators.
predict(X)Calibrated class labels.
predict_proba(X)Calibrated probabilities.

Fitted Attributes

AccessorDescription
n_classes()Number of classes.
n_estimators_fitted()Calibrated base estimators held.

Example

Skigen::GaussianNB<double> nb;
Skigen::CalibratedClassifierCV cc(nb, Skigen::CalibrationMethod::Sigmoid, 5);
cc.fit(X, y);
Verified against scikit-learn

This estimator is checked by the parity suite. See the generator tests/parity/generate_calibration_reference.py and the reference fixtures in tests/parity/data/calibrated_classifier_cv/, exercised by tests/parity/parity_calibration.cpp.

API Reference

For full signatures see the CalibratedClassifierCV API Reference.