ℹ️Материал подготовлен нейросетью DeepSeek , с использованием философской инструкции.
Дополнение к
КАЛИБРОВОЧНАЯ ТАБЛИЦА
Бин (вероятность) | Среднее предсказание | Наблюдаемая частота
[0.0, 0.10) 0.008 0.185
[0.10, 0.20) 0.158 0.079
[0.20, 0.30) 0.224 0.020
[0.30, 0.40) 0.330 1.000
[0.40, 0.50) 0.445 0.700
[1.0, 1.10) 1.000 0.903
1. Что такое калибровочная таблица и зачем она нужна
🟢 Калибровочная таблица (calibration table) – это инструмент для оценки того, насколько предсказанные вероятности соответствуют реальным частотам событий. В контексте прогнозирования риска (например, вероятность аварии за 15 минут) идеально откалиброванная модель должна давать прогнозы, для которых доля фактических инцидентов в каждой группе прогнозов совпадает со средним предсказанным значением в этой группе.
🟢 Цель – выявить систематические смещения (завышение или занижение риска) в определённых диапазонах вероятностей. Это помогает не только диагностировать проблемы, но и принимать решения о том, можно ли доверять численным значениям риска.
2. Структура калибровочной таблицы
В отчёте таблица представлена в виде списка строк, каждая из которых описывает один интервал (бин) предсказанных вероятностей. Основные колонки:
- Бин (интервал вероятности) – диапазон предсказанных значений риска, например, [0.0 – 0.1). Все прогнозы, попавшие в этот интервал, группируются вместе.
- Среднее предсказание (avg_pred) – среднее арифметическое всех предсказанных вероятностей в данном бине. Это та вероятность, которую модель в среднем «обещает» для этих случаев.
- Наблюдаемая частота (obs_freq) – доля фактических инцидентов среди прогнозов, попавших в этот бин. Вычисляется как число инцидентов / общее число прогнозов в бине.
- Количество (cnt) – число прогнозов, попавших в данный бин. Важно для оценки статистической значимости – при малом cnt отклонения могут быть случайными.
3. Интерпретация калибровки
🟢 Идеальная калибровка достигается, когда для каждого бина avg_pred ≈ obs_freq. Например, если модель предсказывает риск 30% для группы событий, то примерно в 30% этих случаев действительно происходит инцидент.
🔴 Отклонения говорят о проблемах:
- ❗Занижение риска (avg_pred < obs_freq) – модель слишком оптимистична: реальные инциденты случаются чаще, чем она предсказывает. Это опасно, так как может привести к пропуску угроз.
- ❗Завышение риска (avg_pred > obs_freq) – модель слишком пессимистична: она предсказывает высокий риск там, где на деле его мало. Это приводит к ложным тревогам и снижению доверия.
⚠️В предоставленном отчёте видны следующие аномалии:
- Бин [0.3 – 0.4): avg_pred = 0.330, а obs_freq = 1.000 – сильное занижение. Все прогнозы с риском около 33% на самом деле заканчивались инцидентами.
- Бин [0.4 – 0.5): avg_pred = 0.445, obs_freq = 0.700 – тоже занижение.
- Бин [0.0 – 0.1): avg_pred = 0.008, obs_freq = 0.185 – завышение (реальных инцидентов больше, чем предсказано).
- ⚠️Бин [1.0 – 1.1) – это ошибка (вероятность не может быть >1), указывает на баг в SQL-функции или округлении.
🟡 Количество прогнозов в бине важно: если в бине всего несколько наблюдений, отклонения могут быть статистически незначимыми. В нашем случае бины содержат достаточное число прогнозов, поэтому отклонения заслуживают внимания.
4. Связь с другими метриками качества
🟢 Калибровка тесно связана с Brier score и log-loss, которые агрегируют ошибки калибровки:
- Brier score = средний квадрат разности между предсказанной вероятностью и фактическим исходом (0 или 1). Он чувствителен как к калибровке, так и к дискриминации. Низкий Brier (в нашем случае 0.136) говорит о приемлемой калибровке в целом, но не раскрывает локальных смещений.
- Log-loss сильно штрафует уверенные неправильные прогнозы. Наше значение 3.43 – очень высокое, что указывает на то, что модель иногда выдаёт уверенные, но неверные оценки (например, предсказывает 100% риск, когда его нет, или наоборот).
🟢 ROC-AUC, напротив, измеряет дискриминационную способность – насколько хорошо модель различает инциденты и не-инциденты, не завися от калибровки. Низкий ROC-AUC (0.157) означает, что модель почти не разделяет классы – это уже более глубокая проблема, выходящая за рамки калибровки.
ℹ️5. Практическое использование калибровочной таблицы
🟢 Как анализировать:
- Постройте график obs_freq против avg_pred – если точки ложатся близко к диагонали y=x, калибровка хорошая.
- Обратите внимание на монотонность: в идеале с ростом avg_pred должна расти и obs_freq. Нарушение монотонности говорит о том, что модель неправильно ранжирует риски.
- Проверьте крайние бины – там часто скрываются самые грубые ошибки.
🟢 Как улучшать калибровку:
- Пост-калибровка – обучите простую модель (логистическую регрессию или изотоническую регрессию) на исторических парах (predicted_risk, actual_outcome), чтобы скорректировать сырые прогнозы.
- Настройте параметры забывания – в нашей модели слишком низкие веса для некоторых аварийных состояний (0.05) могут приводить к тому, что модель «забывает» важные паттерны, искажая распределение вероятностей.
- Пересмотрите определение аварийного состояния – если класс инцидентов слишком широкий и неоднородный, калибровка будет страдать.
🟡 Частота обновления: калибровочную таблицу следует пересчитывать регулярно (например, ежедневно или еженедельно), особенно если модель адаптивная. Это позволит отслеживать дрейф калибровки во времени.
📋6. Рекомендации по улучшению на основе текущей таблицы
🔴 Критические точки:
- Бин [0.3–0.4) с obs_freq = 1.0 – модель совершенно не различает риски в этом диапазоне. Это может быть связано с тем, что все прогнозы в этом бине относятся к одному и тому же состоянию или группе состояний, для которых модель недооценивает риск.
- Бин [1.0–1.1) – баг в отчёте, его надо исправить (проверить функцию WIDTH_BUCKET).
🟡 План действий:
- Исправить SQL-функцию mchain_quality_report_15min, чтобы бины были строго в интервале [0, 1].
- 📋Увеличить base_alpha или уменьшить half_life, чтобы модель быстрее забывала старые данные – это может улучшить стабильность вероятностей и калибровку.
- 📋Провести пост-калибровку с использованием данных за последние 7–14 дней и применить скорректированные вероятности в реальных прогнозах.
- ❌
Пересмотреть критерии аварийности, возможно, сузить их до более выраженных состояний (например, только correlation < -0.5), чтобы класс инцидентов стал более однородным, что облегчит калибровку.
ℹ️7. Заключение
🟢 Калибровочная таблица – это не просто набор чисел, а мощный диагностический инструмент. Она позволяет локализовать систематические ошибки модели, которые не видны при взгляде на общие метрики, такие как Brier или ROC-AUC.
⚠️В текущей реализации модель демонстрирует серьёзные проблемы с калибровкой, особенно в диапазонах средних и высоких рисков, что делает численные прогнозы ненадёжными для принятия решений. Регулярный анализ калибровочной таблицы и последующая настройка модели (пост-калибровка, настройка забывания, переопределение классов) позволят повысить доверие к системе прогнозирования.