Некоторое время назад я опубликовал статью про генерацию синтетических данных для электродуговых печей (EAF). Идея была проста: реальных промышленных данных нет (они стоят миллиарды или засекречены), а учить ML-модели на чем-то надо.
Статья вызвала неожиданно обсуждение. В комментариях собрались профильные инженеры, дата-сайентисты и те самые "душные физики"(в хорошем смысле), которые заставили меня переписать генератор с нуля. Этот пост - история о том, как проект эволюционировал от простой таблицы с цифрами до сложного симулятора, который прошел аудит экспертов и был разобран на части математическим методом Курамото.
Часть 1: От "Рой мертв" до "Рой дышит" (История эволюции V1 -> V2)
Изначально датасет был наивен. Аномалии происходили мгновенно: если random() выдавал число > 0.99, датчики просто скачком меняли значения. Это позволяло тренировать детектор аномалий (ML-модель понимала, что "всё пропало"), но абсолютно не годилось для Predictive Maintenance (предсказания поломок).
В комментариях пришел эксперт (респект пользователю, который прогнал 300 итераций XGBoost и анализ Курамото), который математически доказал:
Каузальности нет: Аномалии не обусловлены предыдущими показаниями.
Рой мертв: Датчики (токи фаз, напряжение) независимы друг от друга, а должны быть связаны физикой плазмы.
Что было сделано в 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 заложен фундамент, на котором можно строить по-настоящему предиктивные системы, учитывающие инерцию физических процессов и каузальность сбоев.
Все три датасета доступны в репозитории. Буду рад любому фидбеку, особенно если вам удастся найти «слепую зону» и в этой версии.
