IT & Digital
Компьютерное зрение для определения дефектов, VR/AR в обучении, экзоскелеты для облегчения труда — мы используем технологии, которым необходим качественный рабочий код. У наших IT-специалистов исключительно интересные и продвинутые задачи.
5:33
Data Science — будущее наступило
Донат Фетисов, начальник отдела — главный архитектор данных
1700
сотрудников
20
городов, где работает «Северсталь-инфоком»
6,7
млрд рублей — инвестиции в IT и диджитал
Big data управляет заводами
Боты против рутины.
Как мы высвободили 700 человеко-часов рабочего времени
Властелины стихии.
Взрывники «Олкона» осваивают I-Blast
2:34
Система машинного зрения
«Цифровое сердце» компании.
Платформа нового поколения S/4HANA, которая заменит SAP ERP
Компьютерный взгляд на окатыши.
Передовое производство на «Карельском окатыше»
2:43
Единая система управления инженерными данными в «Российской стали»
Causal inference for a steel mill.
How to create a data science product for a steel mill
37:20
Использование Кафки в стальном производстве
Цифровое сердце компании
5:18
Информационная безопасность: как стать трудной мишенью
Константин Иванов, заместитель начальника управления информационной безопасности
Мария Лорман
Руководитель программы трансформации в ИТ
«Увязать всех коллег вместе и рассказать, что автоматизация должна быть совместной, эффективной — это большой челлендж»
0:55
В мире вычислений.
О работе менеджером по моделированию процессов
5:40
Поговорим о цифровых компетенциях
Сергей Дунаев, CIO
Вакансии в IT & Digital
Все города
digital
Специалист (программист)
Череповец
Специалист 1 линии SAP
Череповец
Дизайнер интернет-магазина
Москва
Специалист - программист
Череповец
Консультант SAP SD
Москва
Разработчик BPM'Online (Creatio)
Москва
Стажёр по автоматизации процессов
Ярославль
Разработчик приложений С#
Череповец
Full stack разработчик
Санкт-Петербург
Back-end разработчик
Санкт-Петербург
Менеджер по аудиту (информационная безопасность)
Москва
Младший консультант / консультант SAP CO (Контроллинг)
Москва
Front-end разработчик (Junior)
Санкт-Петербург
Ведущий эксперт (по прогнозной аналитике и машинному обучению)
Череповец
Администратор
Москва
Консультант SAP Solution Manager
Москва
Специалист 1 линии технической поддержки (со знанием английского языка)
Череповец
Специалист по поддержке и развитию ИТ-систем в производстве
Череповец
Эксперт SAP GRC
Москва
Разработчик CUDA C++
Москва
Старший специалист по функциональному тестированию
Воронеж
Сетевой инженер
Белгород
Подземный Инженер АСУТП
Белгород
Ведущий разработчик C++
Москва
Разработчик C++
Москва
Специалист SAP SD
Череповец
Программист
Череповец
Консультант SAP (Электронный документооборот)
Воронеж
Менеджер по развитию АСУ ТП
Череповец
Менеджер (предотвращение проблем)
Череповец
Data scientist
Москва
Разработчик ABAP
Москва
Администратор MS SQL
Череповец
Менеджер тестирования SAP (Электронный документооборот)
Москва
Менеджер по консолидированному анализу
Череповец
Разработчик Сomputer Vision
Воронеж
Специалист SAP HCM
Череповец
Аналитик данных
Москва
Специалист по автоматизации
Череповец
Менеджер по верхнеуровневой автоматизации
Череповец
Менеджер по управлению взаимоотношениями с бизнес-партнерами
Череповец
Технический архитектор по телекоммуникациям
Череповец
Администратор баз данных Oracle
Череповец
Разработчик JavaScript (удаленный формат)
Воронеж
Hybris-разработчик (удаленный формат)
Москва
Программист по автоматизации
Череповец
Старший специалист SAP HCM
Воронеж
Специалист (разработчик .net)
Череповец
Бизнес-аналитик
Москва
Менеджер по управлению взаимоотношениями
Москва
Сервис-менеджер
Москва
Менеджер (управление конфигурационными единицами)
Череповец
Специалист по сопровождению инфраструктуры обработки данных (DataLake)
Череповец
Тестировщик
Москва
Младший специалист SAP (Электронный документооборот)
Череповец
Старший специалист функционального тестирования
Воронеж
Младший консультант SAP (Электронный документооборот)
Воронеж
Старший консультант SAP APO
Москва
Администратор Business objects
Череповец
Специалист (JavaScript)
Воронеж
Старший консультант ( SAP MM)
Москва
Все вакансии
Центральный ФО
Северо-Западный ФО
Южный ФО
Сибирский ФО
Приволжский ФО

Боты против рутины.

Как мы высвободили 700 человеко-часов рабочего времени

Специалисты дирекции по ремонтам (ДпР) «Российской стали» внедрили ботов, с помощью которых автоматизировали рутинные процессы.

При работе в ERP рутинными считаются трудоемкие процессы, которые сотрудники регулярно и часто выполняют. Например, формирование различных отчетов. Автоматизация таких операций позволяет освобождать рабочее время специалистов для решения производственных задач.

В службе планирования ремонтов ДпР автоматизацией рутинных процессов занимаются с 2018 года. Один из них — закрытие выполненных заказов на техническое обслуживание. Ежемесячно формируется около 150 тысяч таких заказов. В апреле 2019-го созданный бот за три дня закрыл 510 тысяч заказов и тем самым высвободил 700 человеко-часов рабочего времени специалистов.

За прошедший год мы значительно расширили компетенции в области автоматизации и создаем как простейшие макросы, так и более сложные RPA-инструменты, которые имитируют действия пользователя в соответствии с заданным алгоритмом. Программа обрабатывает данные в несколько параллельных потоков, что значительно повышает производительность и объемы обрабатываемой информации. Главный специалист по планированию «Промсервиса» Максим Маслов
Главный специалист по планированию «Промсервиса» Степан Харев (справа) показывает слесарю-ремонтнику Артему Зенченко как происходит обработка данных в четыре параллельных потока

Одним из таких RPA-инструментов стала программа автоматической корректировки заявок на закупку товарно-материальных ценностей (ТМЦ) при их списании в производство. Создание документа вручную занимало около часа, а ошибочная корректировка могла привести к возникновению излишних заявок на закупку ТМЦ.

Подрядчик мог выполнить подобную разработку на базе ERP примерно за 5 миллионов рублей, ждать пришлось бы почти год. Мы своими силами без дополнительных затрат за два месяца автоматизировали этот бизнес-процесс. Бот справляется с задачей за пару минут, снижая трудозатраты на 256 человеко-часов в месяц. Главный специалист по планированию «Промсервиса» Степан Харев

Источник: Деловой портал «Управление производством».

Властелины стихии.

Взрывники «Олкона» осваивают новую компьютерную программу автоматизированного проектирования буровзрывных работ I-Blast

Рациональный подход

Эта программа обеспечивает эффективность и точность работы, автоматизирует трудоемкие процессы расчета различных данных. Создание цифровой модели блока на взрывание позволяет рассчитать размер сетки, расход взрывчатых веществ, развал горной массы, ее разлет и фрагментацию, сейсмически опасные зоны.

«Качество буровзрывных работ во многом зависит от правильно рассчитанного проекта. Это работа команды геологов, маркшейдеров, буровиков и взрывников. Чтобы выйти на новый уровень проектирования, „Олкон“ приобрел программный продукт французской компании Thierry Bernard Technologie», — рассказывает горный мастер Чингиз Магомедов.

Программа, по его словам, позволит более рационально просчитывать параметры сетки скважин, что сделает более рациональным расход взрывчатых веществ, повысит качество взрывов. Также с помощью нового продукта появляется возможность симулировать буровзрывные работы.

Симулятор взрыва

Современный промышленный взрыв уже давно стал управляемой стихией. За счет определенной последовательности соединения скважин системой Exsel с различным временем замедления взрывники получают заданный порядок инициирования зарядов. Поскважинное замедленное взрывание зарядов взрывчатых веществ на массовом взрыве обеспечивает требуемую направленность его действия. В программе I-Blast можно просчитать последовательность взрывания каждой скважины, распределить энергию взрыва с учетом твердости массива. С ее внедрением проектировщики буровзрывных работ смогут подбирать параметры сетки скважин, зарядов, способов инициирования. Это приведет к получению требуемой кусковатости и оптимальным удельным показателям.

На экране монитора замысловатый рисунок блока. Одна за другой в определенной последовательности вспыхивают точки скважин. Горный мастер показывает, как рассчитывается теоретический развал горной массы.

«Условные обозначения позволяют сразу увидеть, что, например, в этом блоке после взрыва разлет кусков составит 205 метров, что вполне укладывается в наши расчетные данные. У нас она в проекте до 500 метров», — рассказывает Чингиз Магомедов.

Мы получаем цифровой проект блока. Всего одним движением мыши производим виртуальный взрыв и смотрим, насколько эффективно отработали заряды на скважинах, какой получается развал горной массы. Чингиз Магомедов, горный мастер

Кстати

Горняки только осваивают возможности нового программного продукта. Обучали их представители компании-разработчика Thierry Bernard Technologie (Франция). В итоге четыре сотрудника горного управления успешно сдали экзамен уровня Basic.

В мире вычислений.

О работе менеджером по моделированию процессов

Год назад «Северсталь» начала осваивать моделирование гидро- и газодинамических процессов. Менеджер по моделированию процессов дирекции по техническому развитию и качеству (ДТРК) «Российской стали» Марина Михайлова одна из тех, кто занимается сложными вычислениями и адаптацией модели для ежедневного пользования на Череповецком металлургическом комбинате.

Марина Михайлова

Правильный расчет

Марина Михайлова окончила Московский Государственный Технический Университет имени Н. Э. Баумана по специальности «Газотурбинные установки и двигатели». Она трудится в компании всего лишь год, но благодаря десятилетнему опыту в гидродинамической отрасли легко справляется с поставленными задачами.

«Профессию долго не выбирала, сразу решила пойти по стопам отца, которой также окончил „Бауманку“. Пока мама искала для меня что-то полегче, мы пошли и записались на подготовительные курсы, — вспоминает Марина Михайлова. — Еще в университете я начала работать по специальности. Позже перешла в компанию, которая разрабатывает отечественный комплекс по гидродинамике. Так я попала в мир вычислений. На протяжении 10 лет проводила гидродинамические расчеты и обучала людей различным техническим аспектам. Потом меня пригласили в „Северсталь“».

Сейчас сотрудница моделирует технические процессы, которые позволяют металлургам просчитать риски и сэкономить деньги. Например, для промковша сталеплавов существуют четыре вида металлоприемников «турбостоп». Для того чтобы выбрать наиболее эффективный, моделируются все варианты и из них выбирается лучший. Специальные программы позволяют специалистам оценить ситуацию и провести необходимые расчеты.

Живое общение

Помимо офисной работы Марина Михайлова постоянно бывает на производственных площадках комбината, общается с коллегами. Живой диалог помогает четче формулировать цели.

Технологические процессы на комбинате невероятно интересны. Для понимания задач необходимо видеть все своими глазами. Личное общение с коллегами дорогого стоит. В разговоре с сотрудниками производств мы можем проговорить те нюансы, которые не всегда получается обсудить по телефону или по почте.

Адаптация

Также Марина Михайлова помогает специалистам ДТРК адаптировать сложные модели для ежедневного использования. Это непростая задача, но ее выполнение значительно экономит время для планирования процессов производства.

«Недавно коллеги из ДТРК обратились к нам с вопросом об оценке времени прогрева сляба. Обычно мы просчитываем такие модели в своих программах, но здесь было необходимо оценить много вариантов. Мы упростили задачу, оставив только теплопроводность и разработали модель вычислений на базе Microsoft Excel», — говорит Марина Михайлова.

Используя такой файл, менеджер может просчитать варианты, «прочувствовать нагрев» и аргументировано подобрать время прогрева сляба.

«Цифровое сердце» компании.

Платформа нового поколения S/4HANA, которая заменит SAP ERP

В 2019 году запущена программа проектов S/4HANA — важный этап цифровой трансформации «Северстали». Это платформа нового поколения, которая заменит SAP ERP.

Высокий стандарт

Решение о старте программы было принято после утверждения новой стратегии «Северстали» в 2018 году.

«Для реализации ключевых стратегических задач необходима цифровая и процессная основа, которой станет платформа S/4HANA. Она существенно повысит эффективность наших процессов. За счет более высокой скорости, производительности и предоставления возможностей по отслеживанию сквозной эффективности S/4HANA позволит нам создавать дополнительную стоимость для „Северстали“», — отметил генеральный директор «Северстали» Александр Шевелев.

Платформа S4/HANA создает дополнительные возможности для повышения эффективности работы как отдельных сотрудников, так и компании в целом. «Уровень изменений, заявленный в рамках бизнес-трансформации „Северстали“, настолько высок, что, по предварительным оценкам, количество доработок в действующей системе придется увеличить почти вдвое, что фактически превратит нашу нынешнюю систему в набор собственного кода и создаст серьезный риск критического падения производительности. В то же время внедрение новой платформы — это реальный шанс отказаться от старых доработок и использовать стандартные решения SAP там, где это возможно», — комментирует генеральный директор «Северсталь-инфокома» Сергей Дунаев.

Свой путь

«Северсталь» выбрала свой путь внед­рения S/4HANA, отличный от опыта других компаний. Многие из них переходили на платформу как на новую систему, приостанавливая производственный цикл. «Северсталь» планирует внедрение без остановки ключевых процессов, что позволит продолжить работу всех функций в плановом режиме.

Уже сформирована проектная команда, завершается проектирование новых процессов. В первом квартале 2020 года начнется процесс разработки платформы S/4HANA, который должен завершиться успешным внедрением в августе 2021 года. Особенность проекта — использование стандартизированных процессов и отказ от существенной части собственного программного кода. Это позитивно скажется на качестве управления изменениями в новой системе, которые потребуются в будущем.

«Это большой вызов для компании, предполагающий не только изменение цифровой платформы, но и критичный пересмотр повседневных практик, организации процессов и кросс-функционального взаимодействия», — говорит Александр Шевелев.

Сотрудничество

Все функции, которые являются пользователями SAP ERP, будут привлечены к изменению процессов. В тестировании и приемке платформы S/4HANA будут задействованы все подразделения, которые в своей работе используют возможности и данные учетного ядра. Им нужно будет убедиться, что при замене платформы их процессы работают надежно и корректно.

Переход на S/4HANA — сложный интересный проект, который повлечет значительные трансформации. Важно помнить, что любые изменения — это почти всегда трудоемкий процесс, требующий усилий от участников. Этим проект «Северстали» ценен и интересен.

Новая платформа является «цифровым сердцем» компании, ее учетным ядром, с которым интегрированы десятки систем. Сотни процессов будут затронуты внедрением платформы S/4HANA.

Преимущества платформы S/4HANA перед SAP ERP

Новый подход к работе пользователя: упрощенный интерфейс в формате KPI позволяет повысить скорость обучения и эффективность работы пользователей.

Упрощение структуры таблиц и объединение многих таблиц в единую. Это расширит возможности ведения аналитической отчетности для бизнес-пользователя, отчетности в режиме онлайн с детализацией до отдельных позиций.

Модули, ранее стоявшие отдельно, теперь могут работать внутри ERP, на единой модели данных.

Компьютерный взгляд на окатыши.

Передовое производство на «Карельском окатыше»

На «Карельском окатыше» создали управление цифровых технологий, специалисты которого уже внедряют в производство передовые решения.

Новая структура вошла в состав дирекции по развитию железорудных активов. Ее функции — внедрение технологий машинного обучения, искусственного интеллекта, компьютерного зрения, инструментов по сбору и хранению больших объемов данных. Все эти проекты рассчитаны на увеличение эффективности производства и снижение затрат. Возглавил новую структуру Владимир Люшенко, который до этого руководил направлением информационных технологий (ИТ) в производстве.

Я перешел в управление со своими задачами и проек­та­ми. Все они и далее будут реали­зовываться в кросс-функциональных группах. Чтобы действительно повысить конкурентоспособность компании, нам необходимо трансформировать бизнес-процессы, искать новые пути оптимизации производства.

Если раньше мы ждали от производства новые задачи, то сейчас сами проявляем инициативу, ищем свежие идеи, в том числе с применением современных цифровых технологий.

Только нужный размер

Новое управление уже реализует на «Карельском окатыше» несколько актуальных ИТ-проектов. Один из них — определение гранулометрического состава окатышей на узле окомкования, в котором используется передовая технология компьютерного зрения. Технически система выглядит так: цифровая видеокамера расположена над конвейером, по которому перемещаются сырые окатыши от окомкователя до обжиговой машины. Используя технологию компьютерного зрения, компьютерная программа классифицирует окатыши по размеру. Камера фиксирует любой сбой в процессе, изменение качества или размера продукта.

Смотри на зубья

«Мы много раз пытались решить задачу по исключению попадания недробимых предметов на фабрику. В основном это отломившиеся зубья экскаваторов, которые вместе с рудой попадают в дробилки и приводят к поломке оборудования. В итоге мы решили установить цифровую систему видеонаблюдения на стрелу экскаватора, а также поставить бортовой компьютер с программным обеспечением, которое сами разрабатываем. Это позволит автоматически отслеживать потери зубьев, оповещать об этом машиниста и диспетчера. В случае успешной реализации проекта мы растиражируем его на все карьерные экскаваторы», — поделился Владимир Люшенко.

Causal inference for a steel mill.

How to create a data science product for a steel mill

How to create a data science product for a steel mill that combines human expertise and causal inference principles.

Our project

I want to share my experience in creating a data science products for a Severstal mill located near St. Petersburg. We produce steel rolls up to 5 meters wide at this mill. For example, you can create oil and gas pipes from this type of steel. As an input, you send a 20-tonne steel slab, and after 15–30 iterations steel is transformed into a sheet with expected thickness.

Here is the video you can watch to get more insights on the process:

Before our project, an operator used to choose a speed for each iteration manually, and our goal was to automate this process. Our model is working in the real-time mode right now, and we can observe that model’s speed is more than a human’s speed by 5+ %.

Why can’t you choose the maximum possible speed in each iteration? The higher the speed, the higher the electric current (I) on engines, and if a current is more than a threshold, your engine will stop working to prevent a failure. So, an operator chooses a speed considering thickness, delta (a difference in thickness before and after an iteration), and other parameters.

Data

For simplicity, we assume that we only have thickness, delta, speed, and current in our data.

Let’s have 20000 iterations in our dataset. Let’s generate thickness from a uniform distribution with a minimum equal to 5 and a maximum equal to 15 and generate delta from the same distribution but with a minimum equal to 1 and a maximum equal to 4. It means that the metal thickness before an iteration will be between 5 and 15, and this thickness will be reduced by 1–4 points in each iteration.

Suppose that an operator chooses a speed according to this rule:

df['speed'] = np.round(25 - 0.1 * df['thickness'] ** 0.9 - 4 * df['delta'] ** 1.1

Also, an operator can choose a speed higher by 1 unit with a 5 % probability or lower by 1 unit with the same probability.

So, our speed is within 4.61–21.47 range.

Let our electric current obeys this rule:

df['I'] = 3000 + 1500 * (df['thickness'] ** 0.8 + 5 * df['delta'] ** 1.4) + 2000 * df['speed']

Additionally, let’s add some noise to our current. The noise would be taken from a normal distribution with a standard deviation equal to 500.

So, we can split our dataset into three parts: 15000 observations in a train set, 2500 — dev, 2500 — test.

Let an electric current excess starts from 78647 units — it is a rare situation with a frequency of about 0.3 % in our dataset.

Everything is ready for our research =)

Direct approach

You can choose the wrong way to deal with this problem: select a powerful algorithm and train it on your data. For example, you can use gradient boosting, train it, and vary a speed in a way to improve productivity and do not to exceed an electric current.

We have selected an algorithm with 12 leaves, 0.1 learning rate, and 500 trees, and our RMSE is 500±50 on all our datasets (train, dev, and test). The metric is remarkably close to the actual error (500), so we can say that our algorithm is close to the perfect one.

But this is correct only if we are working within the same distribution =)

Let’s choose a speed for each observation in our test set. We will start with maximum speed from our distribution and will stop if our electric current prediction is less than a critical one minus three standard deviations. As a standard deviation, we will take 600 (our 500±50 and small insurance):

def speed_choose(thickness, delta, model=bst, prelimit=limit - 600 * 3): speeds = list(range(4, 22)) speeds.reverse() for speed in speeds: df = pd.DataFrame({'speed': [speed], 'thickness': [thickness], 'delta': [delta]}) if model.predict(df) < prelimit: return speed return 4

Source: gistfile3.py on GitHub.

Our new speed is more than 30 % better than the old one! Great result!

Let’s see how our engines are working. Since we know the true dependency between speed and electric current in our virtual world, we can simulate the result of our experiment:

test = test.assign(I_new=test['I'] + (test['ml_speed'] - test['speed']) * 2000) print((test.I_new > limit).sum() / test.shape[0])

Source: gistfile4-py on GitHub.

So, we have 31.7 % of cases when our electric current is higher than critical, and it is 100 times more frequent event comparing the manual control period. How is it even possible? When we trained our algorithm, it didn’t have any information about the causation between speed and thickness with delta. Therefore, our algorithm remembered an electric current for each combination of speed, thickness, and delta. If we change speed, the model still sees old thickness and delta and thinks that everything will be fine. What can we do in this situation?

Maybe we should predict a speed?

Our goal is to speed up our mill. We know that an operator can work better or worse in similar situations. So, we can predict speed based on the best speed from our past!

For these types of problems, k-NN is a perfect algorithm (we can choose a speed exactly from the past by it):

mm_scaler = preprocessing.MinMaxScaler() X_train_minmax = mm_scaler.fit_transform(X_train[['thickness', 'delta']]) neigh = KNeighborsRegressor(n_neighbors=20) X_train_clean = X_train[y_train['I'] < limit].reset_index(drop=True) X_train_clean_minmax = mm_scaler.transform(X_train_clean[['thickness', 'delta']]) neigh.fit(X_train_clean_minmax, X_train_clean[['speed']])

Source: gistfile5-py on GitHub.

With this algorithm we can achieve a 1.2 % increase in the productivity with the electric current excess rate of only 0.24%:

X_dev_minmax = mm_scaler.transform(X_dev[['thickness', 'delta']]) kn = neigh.kneighbors(X_dev_minmax, return_distance=False) dev = dev.assign(ml_speed=[X_train_clean.loc[i, 'speed'].quantile(0.8) for i in kn]) print(dev.ml_speed.mean() / dev.speed.mean()) dev = dev.assign(I_new=dev['I'] + (dev['ml_speed'] - dev['speed']) * 2000) dev = dev.assign(I_new_predict=bst.predict(dev[['ml_speed', 'thickness', 'delta']])) print((dev.loc[:, 'I_new'] > limit).sum() / dev.shape[0])

Source: gistfile6-py on GitHub.

Great result! But can we do better?

Causal Inference

To reach a speed better than we got from k-NN, we should extract true dependency between a speed and an electric current. How can we do it when our dataset consists only of observations with interdependencies? We can start an experiment, but it is an expensive way on a real mill. However, we can work with interdependencies using causal inference methods.

We would like to demonstrate the work of one of the simplest causal inference methods. This method is simple, but also a strong one:

1) Let’s create a model where we will predict speeds through thicknesses and deltas. This model shouldn’t be too accurate but should incorporate dependency between our variables:

Xc = train[['thickness', 'delta']] Xc = sm.add_constant(Xc) Yc = train[['speed']] modc = sm.OLS(Yc, Xc) resc = modc.fit()

Source: gistfile7-py on GitHub.

2) Let’s split our dataset by predictions of this model, so in each part of this dataset will be similar predictions. Then we train different linear regression models on each of these datasets:

coefs = {} for i in range(6, 19): train_new = train.copy() train_new['bin'] = ((resc.predict(Xc) < (i + 2)) & (resc.predict(Xc) >= i)).astype(int) Xcb = train_new[train_new.bin == 1][['speed', 'thickness', 'delta']] Xcb = sm.add_constant(Xcb) Ycb = train_new[train_new.bin == 1][['I']] modcb = sm.OLS(Ycb, Xcb) rescb = modcb.fit() coefs[i] = rescb.params['speed']

Source: gistfile8.py on GitHub.

3) And now our coefficients are much closer to 2000: they vary from 1924 to 2031. If we create a linear regression without this split, we will receive a coefficient equal to 1404, which will lead us to an underestimation of a speed influence and, as a result, electric current excesses. Why is this approach working? We could presume that the splitting of our original dataset by these bins allows us to detect sets with similar values of thicknesses and deltas with respect to speeds. Therefore, we can better determine the relationship between speed and an electric current.

4) Now we can take a maximum of these coefficients and choose a speed with this knowledge:

dev.loc[:, 'ml_speed'] = dev['ml_speed'] + (limit - 600 * 3 - dev['I_new_predict']) / step dev.loc[:, 'I_new'] = dev['I'] + (dev['ml_speed'] - dev['speed']) * 2000 print((dev.I_new > limit).sum() / dev.shape[0]) print(dev.ml_speed.mean() / dev.speed.mean())

Source: gistfile9-py on GitHub.

The electric current excess is less than before! And we have achieved a 30 % speed improvement!

5) And we see that the result is consistent with our test set:

test = df[17500:] X_test = test[['speed', 'thickness', 'delta']] y_test = test[['I']] X_test_minmax = mm_scaler.transform(X_test[['thickness', 'delta']]) kn = neigh.kneighbors(X_test_minmax, return_distance=False) test = test.assign(ml_speed=[X_train_clean.loc[i, 'speed'].quantile(0.8) for i in kn]) test = test.assign(I_new_predict=bst.predict(test[['ml_speed', 'thickness', 'delta']])) test.loc[:, 'ml_speed'] = test['ml_speed'] + (limit - 600 * 3 - test['I_new_predict']) / step test.loc[:, 'I_new'] = test['I'] + (test['ml_speed'] - test['speed']) * 2000 print((test.I_new > limit).sum() / test.shape[0]) print(test.ml_speed.mean() / test.speed.mean())

Source: gistfile10-py on GitHub.

It is much better than the direct approach =)

Conclusion

We have an unfair advantage in this virtual example because we know the real dependency between a speed and an electric current, so we can see what actually happens with an electric current when a speed increase. In the real world, it is unknown to us. We can test our model on historical data, but in the real world our model might cause an electric current excess and stop a mill. So, we can do two simple things to prevent the risk:

1) We can start our improvement with small steps of speed. Thus, we can be close enough to our historical distribution and trace when it differs significantly.

2) Also, we can start with a recommendation system without direct control of the mill’s speed. Thus, an operator should confirm our recommendations on the first stage of the pilot.

In a short time, an operator will start to be confident in the proposed system, and it can be shifted to the full automation mode with a gradual increase in the speed. Today we have a maximum speed of the mill about 33 % higher than a year ago, and the average speed is higher by more than 5 %.

By the way, if you want to know more about causal inference, you can start with this tutorial.

The full code for this article available here.

Source: Towards Data Science.