Как ответить
Калибровка в машинном обучении — это свойство модели выдавать вероятности, которые соответствуют истинной частоте событий. Если модель предсказывает для группы объектов вероятность 0.8, то в 80% из них целевое событие действительно должно наступить. Это не про то, правильно ли модель ранжирует объекты (за это отвечает дискриминация, ROC-AUC), а про то, насколько честно она оценивает свои шансы.
На практике многие модели выдаются плохо откалиброванными. Например, градиентный бустинг на несбалансированном датасете часто выдаёт слишком уверенные предсказания — близкие к 0 или 1, хотя реальная частота событий в этих группах может быть 0.3 или 0.7. А логистическая регрессия, наоборот, почти всегда хорошо калибрована, потому что её функция потерь (log-loss) штрафует за несоответствие калибровке.
Когда это важно? В кредитном скоринге, медицинской диагностике, ценообразовании. Банку нужно знать, что из 100 клиентов с вероятностью дефолта 0.1 реально дефолтнут именно 10, а не 5 или 20. Если калибровка плохая, бизнес решения (одобрение кредита, порог отсечки) будут неоптимальными.
Основные методы калибровки:
- Platt scaling — обучаем логистическую регрессию на логитах (или предсказаниях) исходной модели. Хорошо работает для моделей с колоколообразным распределением предсказаний, как SVM или многие нейронки.
- Isotonic regression — непараметрический метод, строит монотонную кусочно-постоянную функцию. Требует больше данных, легко переобучается, но гибче.
- Temperature scaling — для нейронных сетей: делим логиты на константу T (температуру), а потом применяем softmax. T подбирается по валидационной выборке, минимизируя log-loss.
Метрики для оценки калибровки: Brier score (среднеквадратичная ошибка предсказаний), Expected Calibration Error (ECE) — среднее отклонение фактической частоты от предсказанной, разделённое по бакетам вероятностей. На графике калибровки (reliability diagram) хорошая калибровка — это линия близкая к диагонали.
Важно: калибровка не улучшает дискриминацию. Если у модели AUC = 0.7, после калибровки AUC не вырастет. Иногда после калибровки может даже чуть упасть log-loss (что нормально, цель и была его минимизировать).
На практике для middle-разработчика: если вы строите модель для бизнеса, где важна интерпретация вероятностей (а не только ранжирование), всегда проверяйте reliability diagram и при необходимости применяйте калибровку на отложенной выборке (кросс-валидация, чтобы избежать переобучения).