shaare.it

ValueError: Calibration requires probability estimates

ValueError: calibration needs probabilities

$ python -c "from sklearn.calibration import CalibratedClassifierCV; from sklearn.svm import LinearSVC; CalibratedClassifierCV(LinearSVC()).fit([[0],[1]], [0,1])"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ValueError: Base estimator must support decision_function or predict_proba for calibration

Why this happens

Calibration methods require access to decision scores or probabilities. Base estimators without decision_function or predict_proba cannot be directly calibrated.

Fix

Use an estimator exposing decision_function/predict_proba or wrap appropriately.

Wrong code

from sklearn.calibration import CalibratedClassifierCV
from sklearn.naive_bayes import MultinomialNB
CalibratedClassifierCV(MultinomialNB()).fit([[0],[1]], [0,1])

Fixed code

from sklearn.calibration import CalibratedClassifierCV
from sklearn.svm import LinearSVC
# LinearSVC has decision_function, so calibration works
CalibratedClassifierCV(LinearSVC()).fit([[0],[1]], [0,1])