Почему predict_proba обманывает: калибровка классификатора и восстановление доверия
Порог 0,8 часто воспринимают как 80 % уверенности, но модели могут сильно переоценивать вероятность. Разбираем причины и практические способы калибровки.
В статье на Habr ML «0.9 от вашего классификатора — это не 90 %: почему модели врут о своей уверенности и как это чинить» (https://habr.com/ru/companies/otus/articles/1065584/) авторы показывают, что predict_proba часто выдаёт завышенные оценки. Порог 0,8 воспринимается как 80 % уверенности, однако в реальных данных частота правильных предсказаний может составлять лишь 65‑70 %.
Почему происходит «обман»
- Неправильная калибровка – большинство современных моделей (логистическая регрессия, градиентный бустинг, нейросети) оптимизируют лог‑лосс, а не соответствие предсказанных вероятностей реальной частоте.
- Дисбаланс классов – при сильном перекосе в пользу одного класса модель «привыкает» к более высоким вероятностям.
- Переподгонка – чрезмерно сложные модели переобучаются на тренировочных данных, что приводит к переоценке уверенности на новых примерах.
Как измерить калибровку
- Reliability diagram – график, сравнивающий средние предсказанные вероятности и фактическую точность в бинах.
- Brier score – среднеквадратичная ошибка между предсказанными вероятностями и истинными метками.
- Expected Calibration Error (ECE) – интегральная мера отклонения.
Практические методы исправления
- Platt scaling – обучает однослойный логистический регрессор на logits.
- Isotonic regression – более гибкая, но требует большего объёма калибровочных данных.
- Temperature scaling – простейший метод, меняющий «температуру» softmax‑вывода; часто используется в компьютерном зрении.
- Кросс‑валидация калибровки – разделяем данные на train‑val‑test, чтобы избежать переоценки.
Автор подчёркивает, что калибровка должна стать обязательным шагом в любой pipeline, где решения автоматизируются на основе пороговых вероятностей.
Что дальше? После калибровки можно безопасно использовать пороги 0,7‑0,8 для автоматических триггеров, а также улучшить метрики бизнес‑процессов, зависящих от уверенности модели.
Для разработчиков и студентов это сигнал добавить калибровку в каждый ML‑pipeline. Без неё автоматизация может приводить к ложным срабатываниям и потерям. Применяя temperature scaling или Platt scaling, вы получите более правдоподобные вероятности и сможете доверять пороговым решениям.


