Некоторое время назад я опубликовал статью про генерацию синтетических данных для электродуговых печей (EAF). Идея была проста: реальных промышленных данных нет (они стоят миллиарды или засекречены), а учить ML-модели на чем-то надо.

Статья вызвала неожиданно обсуждение. В комментариях собрались профильные инженеры, дата-сайентисты и те самые "душные физики"(в хорошем смысле), которые заставили меня переписать генератор с нуля. Этот пост - история о том, как проект эволюционировал от простой таблицы с цифрами до сложного симулятора, который прошел аудит экспертов и был разобран на части математическим методом Курамото.

Часть 1: От "Рой мертв" до "Рой дышит" (История эволюции V1 -> V2)

Изначально датасет был наивен. Аномалии происходили мгновенно: если random() выдавал число > 0.99, датчики просто скачком меняли значения. Это позволяло тренировать детектор аномалий (ML-модель понимала, что "всё пропало"), но абсолютно не годилось для Predictive Maintenance (предсказания поломок).

В комментариях пришел эксперт (респект пользователю, который прогнал 300 итераций XGBoost и анализ Курамото), который математически доказал:

  1. Каузальности нет: Аномалии не обусловлены предыдущими показаниями.

  2. Рой мертв: Датчики (токи фаз, напряжение) независимы друг от друга, а должны быть связаны физикой плазмы.

Что было сделано в V2 "Causal Swarm":

Я решил не просто "подкрутить" параметры, а внедрить Physics-Informed Generation.

  • Внедрение P-F интервала (Degradation Curves): Теперь аномалия - это не событие, а процесс. За 10–20 шагов до аварии начинается латентная фаза деградации. Параметры начинают плавно отклоняться от нормы.

  • Сцепленные дифференциальные уравнения: Параметры датчиков теперь связаны друг с другом. Если "плывет" ток на фазе А, это вызывает каскадную реакцию: меняется импеданс дуги, растут гармоники, вибрация кожуха увеличивается.

  • Near-misses (Почти аварии): В датасет вшиты эпизоды, когда параметры уходят в красную зону (например, сильная вибрация при плавлении массивного лома), но система стабилизируется без аварии. Это нужно, чтобы модель не поднимала ложные тревоги.

  • Типизация аномалий: Теперь есть колонки anomaly_type. Обрыв электрода ведет себя иначе, чем прогар футеровки.

Часть 2: Четыре печи - четыре характера

Другая важная находка аудита: датасет включает данные 4-х разных печей (от малышки на 70МВт до гиганта 150МВт). Пытаться обучить одну модель на все 4 печи - то же самое, что учить модель управлять и карьерным самосвалом, и малолитражкой одновременно.

После разделения моделей по furnace_id точность предсказаний на базовой версии скакнула с 60% до 90%. Физика печей различается, и данные это теперь честно отражают.

Структура репозитория:

1. eaf_industrial_v2_causal_swarm.csv - "Цифровой двойник"

Самый полный файл. Физика + Экономика (LME, цены) + Контекст (погода, логистика).

  • Для кого: EDA, разработка дашбордов, аналитика маржинальности.

2. eaf_industrial_v2_1_causal_swarm.csv - "Predictive Maintenance"

Специально для обучения ML. Очищен от экономического шума, сфокусирован на деградации датчиков.

  • Для кого: Обучение моделей предсказания времени до отказа (RUL).

  • Фишка: Содержит alpha_degradation - плавный переход от нормы к аварии.

3. eaf_industrial_v2_causal_swarm_nearmiss.csv - "Стресс-тест"

Датасет с высоким содержанием "ложных опасных ситуаций".

  • Для кого: Для Hard Negative Mining. Обучите модель не реагировать на каждый шорох.

Итог

Благодаря детальному аудиту сообщества, проект трансформировался из набора цифр в глубокую среду для R&D в области Industrial AI. В V2 заложен фундамент, на котором можно строить по-настоящему предиктивные системы, учитывающие инерцию физических процессов и каузальность сбоев.

Все три датасета доступны в репозитории. Буду рад любому фидбеку, особенно если вам удастся найти «слепую зону» и в этой версии.

Ссылка