☑️Материал подготовлен нейросетью DeepSeek.
1. Цель и методология
📋Было проведено исследование влияния параметров адаптивного забывания (base_alpha, incident_half_life_days) на качество прогнозов риска на 15 минут при фиксированном критерии аварийности:
correlation < 0 AND os_trend = -1 AND wait_trend = 1.
Исследовались 4 конфигурации:
- Baseline – base_alpha = 0.10, half_life = 7 дней (текущие параметры)
- Fast forgetting – base_alpha = 0.20, half_life = 3 дня (быстрое забывание)
- Slow forgetting – base_alpha = 0.05, half_life = 14 дней (медленное забывание)
- Compromise – base_alpha = 0.15, half_life = 5 дней (промежуточный вариант)
Для каждой конфигурации были ретроспективно сгенерированы прогнозы за последние 14 дней (шаг 5 минут) на основе скопированных и модифицированных частот переходов. Для каждого прогноза фиксировался фактический исход – наличие инцидента производительности (performance_incident) в течение следующих 15 минут.
2. Сравнительные метрики качества
- Slow forgetting – ROC‑AUC = 0.4836, Brier score = 0.2964, Log‑loss = 10.236, MAE = 0.2964, Кол‑во прогнозов = 2534
- Compromise – ROC‑AUC = 0.4834, Brier score = 0.2963, Log‑loss = 10.232, MAE = 0.2963, Кол‑во прогнозов = 2535
- Baseline – ROC‑AUC = 0.4779, Brier score = 0.2934, Log‑loss = 10.135, MAE = 0.2934, Кол‑во прогнозов = 2532
- Fast forgetting – ROC‑AUC = 0.4774, Brier score = 0.2957, Log‑loss = 10.213, MAE = 0.2957, Кол‑во прогнозов = 2533
⚠️Все метрики крайне низки:
- ROC‑AUC < 0.5 – модель ранжирует хуже случайного угадывания.
- Log‑loss > 10 – модель чрезмерно уверена в неправильных прогнозах.
- Brier ~0.29 – далёк от идеала (0.1 и ниже).
ℹ️Различия между конфигурациями статистически незначимы (ROC‑AUC варьируется в пределах 0.006). ⚠️Следовательно, настройка гиперпараметров забывания не влияет на качество прогнозов – проблема лежит в самой модели или в данных.
3. Калибровочный анализ
Извлечение калибровочных таблиц (calibration_summary) показало, что для всех экспериментов присутствуют только два бина вероятностей:
- Бин [0, 0.1) – avg_pred = 0.0, obs_freq ≈ 0.112–0.113, доля прогнозов ≈ 76–77%
- Бин [1, 1.1) – avg_pred = 1.0, obs_freq ≈ 0.103–0.108, доля прогнозов ≈ 23–24%
Интерпретация:
- Модель выдаёт только два значения риска – 0 или 1 (никаких промежуточных вероятностей).
- В бине с предсказанным риском 0 фактическая частота инцидентов составляет ~11% – модель недооценивает риск.
- В бине с предсказанным риском 1 фактическая частота инцидентов также ~10–11% – модель переоценивает риск (ожидается 100%).
Это объясняет крайне высокий Log‑loss и плохую дискриминацию: прогнозы являются бинарными и не отражают истинную неопределённость.
ℹ️Калибровочная кривая фактически состоит из двух точек, далёких от диагонали, что свидетельствует о полной непригодности модели для практического использования.
4. Причины выявленных проблем
Поглощающая матрица даёт только 0 или 1
- Вероятности переходов из большинства состояний либо равны 0 (если нет переходов в аварийные), либо 1 (если состояние уже аварийное). Это указывает на то, что количество переходов недостаточно для получения гладких вероятностей – матрица разрежена, и многие состояния имеют только один возможный переход.
Целевое событие (аварийное состояние) определено слишком узко
- Комбинация corr<0 AND os=-1 AND wait=1 встречается редко, и переходы в такие состояния единичны. Модель не может обучиться на малом числе примеров.
Недостаток данных
- За 14 дней собрано ~2500 прогнозов (~180 в день), при этом число переходов, вероятно, значительно меньше рекомендованных 5000 для стабильного обучения.
- Прогнозы собираются только в моменты наличия переходов – многие состояния вообще не встречались в обучающей выборке, что приводит к бинарным оценкам.
5. Выводы и рекомендации
☑️Не изменять параметры забывания – ни одна из протестированных конфигураций не даёт улучшения. Оставить Baseline.
❌Пересмотреть критерий аварийности
❌Проверить корреляцию между состояниями цепи и реальными инцидентами производительности.
❌Рассмотреть более широкие критерии (например, corr<0 AND os=-1 без учёта wait_trend или другие комбинации).
❌Провести аналогичные эксперименты с альтернативными определениями аварийности.
❓Увеличить объём обучающих данных
- Накапливать переходы до достижения минимум 5000 переходов (сейчас, судя по числу прогнозов, их может быть недостаточно).
- Если возможно, использовать более длительный исторический период для обучения.
📋Изменить подход к построению вероятностей
- ☑️Использовать сглаживание (например, аддитивное сглаживание) для частот, чтобы избежать нулевых и единичных вероятностей.
❌Рассмотреть альтернативные модели(логистическая регрессия на основе признаков состояния, градиентный бустинг) – они могут дать более плавные и калиброванные вероятности.
Проверить корректность сбора прогнозов
❌Убедиться, что actual_outcome правильноопределяется по performance_incident (проверить соответствие временных меток).- Убедиться, что в predict_risk_from_absorbing используются все переходы из поглощающей матрицы, а не только петли.
6. Заключение
⚠️Текущая реализация модели прогнозирования риска на основе цепи Маркова с заданным критерием аварийности не обеспечивает приемлемого качества.
⚠️Тонкая настройка забывания не решает проблему.
📋Необходимы кардинальные изменения в определении целевого события и/или переход к другой модели машинного обучения.
Следующие шаги:
- 📋Провести анализ чувствительности к критерию аварийности.
- 📋Накопить больше данных.
- 📋Рассмотреть использование сглаживания или альтернативных алгоритмов.
- 📋Построить калибровочную кривую для текущей модели и визуально представить её руководству для обоснования необходимости изменений.