Для предыдущей статьи: Здесь

Всем привет, Если вы помните, в нашей предыдущей статье мы использовали машинное обучение для минимизации производственных ошибок на заводе. В конце исследования мы нашли показатели точности 7 разных моделей, будет ли ошибка или нет, и поделились ими с вами. Однако в реальных задачах нам могут понадобиться более подробные выводы. В таком случае оценки точности нам недостаточно. В этой статье мы спустились в более подробный слой.

В этой статье мы сами создали нашу метрику ошибок. Мы считаем, что сценарий, в котором метрика ошибок адаптирована к реальной проблеме, также важен с точки зрения демонстрации того, как алгоритмы машинного обучения способствуют бизнесу на практике. До сих пор в задачах машинного обучения использовались стандартные метрики. Например, точность, точность, отзыв, f1-счет. Вы можете найти нашу статью о метриках по этой ссылке. Но что, если нам нужно использовать в нашем бизнесе метрику, которую мы создали вне этих метрик? Возможно, стандартные метрики не всегда лучший выбор для реальных задач. Если вы готовы, давайте начнем.

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

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

Типы ошибок

Для всех типов ошибок стоимость прогнозирования и принятия мер фиксирована и составляет 5 единиц. Кроме этого;

Отказ питания = 45 единиц
Эта ошибка вызвана проблемой электрического компонента. Требуется ремонт машины, если не было решено заранее

Ошибка износа инструмента = 30 единиц
Эта ошибка вызвана неправильной установкой наконечника станка. В результате поломки наконечника это заставляет нас снова заказывать новый наконечник.

Overstrain Failure = 20 единиц
Приводит к поломке или растрескиванию части машины. В этом случае необходимо установить соответствующий модуль машины на старую машину.

Случайные сбои = 15 единиц
Это относится к выражению 4–5 различных типов сбоев, которые возникают из-за того, что машина слишком усердно работает в одном классе.

Сбой рассеивания тепла = 5 единиц
Вызывает сбои в производстве в результате перегрева машины.

Во-первых, мы импортировали необходимые библиотеки.

Затем мы загрузили наш файл данных и просмотрели первые пять строк с помощью команды head().

Мы удалили столбцы UDI и Product ID в файле данных df и создали новый столбец с именем nf с помощью разработки функций.

Затем мы создали новую переменную с именем df_target. Потому что мы хотим, чтобы наши изменения не повлияли на файл df. Мы присвоили столбец Тип отказа, который мы будем угадывать, другой переменной.

Затем некоторые столбцы имели строковые значения. Мы их закодировали.

После очистки необходимых данных мы разделили данные на две части: обучающие и проверочные данные.

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

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

Мы превратили переменную «классификаторы», которую мы определили выше, во фрейм данных и отсортировали ее от меньшего к большему.

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

Я хотел бы выразить благодарность моему уважаемому советнику Алпарслану Месри, с которым мы вместе работали над написанием этой статьи. Увидимся в нашей следующей статье :)