Skip to content
masterclassBuddyTech Buzz5 fresh blogs · 5:00 AM IST

Scikit-Learn · Class

CalibratedClassifierCV

CalibratedClassifierCV calibrates a classifier’s probability estimates with cross-validation. It supports sigmoid, isotonic, and temperature scaling, and can average predictions from calibrated fold-specific models.

Since
1.2

How it works

Cross-validates a classifier and learns a calibration mapping so its probability outputs better reflect observed class frequencies. With ensemble mode enabled, it trains and calibrates one classifier per split, then averages their probability predictions.

Syntax

class sklearn.calibration.CalibratedClassifierCV(estimator=None, *, method='sigmoid', cv=None, n_jobs=None, ensemble='auto')

Parameters

NameTypeDescription
estimatorclassifier, default=NoneClassifier whose outputs are calibrated; the current API uses an estimator supporting classification.
method{'sigmoid', 'isotonic', 'temperature'}, default='sigmoid'Calibration technique: sigmoid, isotonic, or temperature.
cvint, cross-validation generator, iterable, or None, default=NoneCross-validation strategy used to fit classifier and calibrator.
ensemblebool or 'auto', default='auto'Whether to retain one calibrated classifier for each cross-validation split.
n_jobsint, default=NoneNumber of jobs to run in parallel during fitting; None means one job unless a backend changes that behavior.

Returns

An estimator that provides calibrated class-probability predictions through predict_proba.

Key points

  • The class transforms classifier outputs into calibrated probabilities using isotonic, sigmoid, or temperature-scaling methods.
  • Cross-validation serves both to fit classifier parameters and to learn the probability calibration.
  • With ensemble mode, each fold receives its own fitted copy of the base estimator.
  • The held-out portion of each fold supplies predictions used to fit that fold's calibrator.
  • Ensemble predictions combine the calibrated fold models by averaging their probability outputs.
  • The class was added in scikit-learn version 1.2.

Common mistakes

  • Calibration is intended to improve probability quality, not necessarily classification accuracy.
  • Use cross-validation so the calibrator learns from predictions made on held-out data rather than the same data used to fit the classifier.

Example: Calibrate classifier probabilities

from sklearn.calibration import CalibratedClassifierCV
from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split

X, y = make_classification(random_state=0)
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.25, random_state=0
)
model = CalibratedClassifierCV(
    LogisticRegression(max_iter=1000), method="sigmoid", cv=3
)
model.fit(X_train, y_train)
probabilities = model.predict_proba(X_test)
print(probabilities[:2])

Fits a logistic classifier with cross-validated sigmoid probability calibration, then predicts calibrated class probabilities.

When to use it

Improve probability reliability

A classifier produces probabilities that are poorly aligned with observed frequencies.

Add calibrated probabilities

A classifier lacks trustworthy native probability estimates but exposes decision scores.

Calibrate multiclass outputs

A multiclass model needs class-wise probability calibration.

Interview questions

QHow does CalibratedClassifierCV avoid biased calibration?

CalibratedClassifierCV uses cross-validation to fit the classifier and calibrator without using the classifier's training predictions as calibration targets. With ensemble=True, each split produces a calibrated classifier, and prediction probabilities are averaged across them.

Follow-up: What calibration methods are available? The documented methods are sigmoid and isotonic; the current class reference also lists temperature scaling.

QWhat does the method parameter control?

The method parameter selects the calibration technique. Sigmoid corresponds to Platt's method, while isotonic is non-parametric; the current reference additionally documents temperature scaling.

Follow-up: When might a non-parametric method be risky? Isotonic calibration can be more flexible but generally needs enough calibration data to avoid fitting noise.

QDescribe the ensemble calibration procedure.

For every cross-validation split, a clone of the base estimator is trained on the training subset, predicts the held-out subset, and those predictions fit the calibrator. In multiclass settings, one calibrator is fit for each class.

Follow-up: How are final probabilities formed in ensemble mode? The calibrated probabilities from the split-specific estimators are averaged.

  • sklearn.calibration.calibration_curve
  • sklearn.calibration.CalibrationDisplay
  • sklearn.isotonic.IsotonicRegression
  • sklearn.linear_model.LogisticRegression

Source: CalibratedClassifierCV — scikit-learn 1.9.1 documentation. Checked 2026-10-15.