Добавить в корзинуПозвонить
Найти в Дзене
Postgres DBA

Подробное описание калибровочной таблицы из отчёта mchain_quality_report_15min

ℹ️Материал подготовлен нейросетью DeepSeek , с использованием философской инструкции.
🟢 Калибровочная таблица (calibration table) – это инструмент для оценки того, насколько предсказанные вероятности соответствуют реальным частотам событий. В контексте прогнозирования риска (например, вероятность аварии за 15 минут) идеально откалиброванная модель должна давать прогнозы, для которых доля
Оглавление

ℹ️Материал подготовлен нейросетью 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).

🟡 План действий:

  1. Исправить SQL-функцию mchain_quality_report_15min, чтобы бины были строго в интервале [0, 1].
  2. 📋Увеличить base_alpha или уменьшить half_life, чтобы модель быстрее забывала старые данные – это может улучшить стабильность вероятностей и калибровку.
  3. 📋Провести пост-калибровку с использованием данных за последние 7–14 дней и применить скорректированные вероятности в реальных прогнозах.
  4. Пересмотреть критерии аварийности, возможно, сузить их до более выраженных состояний (например, только correlation < -0.5), чтобы класс инцидентов стал более однородным, что облегчит калибровку.

ℹ️7. Заключение

🟢 Калибровочная таблица – это не просто набор чисел, а мощный диагностический инструмент. Она позволяет локализовать систематические ошибки модели, которые не видны при взгляде на общие метрики, такие как Brier или ROC-AUC.

⚠️В текущей реализации модель демонстрирует серьёзные проблемы с калибровкой, особенно в диапазонах средних и высоких рисков, что делает численные прогнозы ненадёжными для принятия решений. Регулярный анализ калибровочной таблицы и последующая настройка модели (пост-калибровка, настройка забывания, переопределение классов) позволят повысить доверие к системе прогнозирования.