Дорогой друг!

Специально для тебя, есть готовое переработанное решение в формате ."IPYNB" (.ipynb), но оно платное.

При получении вами критического (красного) замечания по проекту, проведу правки.

Решение сдесь: Добавь в корзину - Перейди в корзину - Укажи Email - Оплатить по СБП - СБП (приложение вашего банка) - Получи решение на Email

Не можешь оплатить, тогда через "Помощь" запроси другую систему оплаты (Webmoney, Alipay, Telegram (USDT, TON)).

Проектная работа

Промышленность

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

Когда закончите, отправьте её на проверку ревьюеру: он пришлёт комментарии в течение суток. После этого нужно доработать проект и пройти повторную проверку.

Скорее всего, вы будете дорабатывать кейс по комментариям ещё несколько раз. Это нормально.

Проект завершён, когда ревьюер одобрит все доработки.

Описание проекта

Чтобы оптимизировать производственные расходы, металлургический комбинат «Стальная птица» решил уменьшить потребление электроэнергии на этапе обработки стали. Для этого комбинату нужно контролировать температуру сплава. Ваша задача — построить модель, которая будет её предсказывать. Заказчик хочет использовать разработанную модель для имитации технологического процесса. Изучите его, прежде чем генерировать новые признаки.


Описание процесса обработки
Сталь обрабатывают в металлическом ковше вместимостью около 100 тонн. Чтобы ковш выдерживал высокие температуры, изнутри его облицовывают огнеупорным кирпичом. Расплавленную сталь заливают в ковш и подогревают до нужной температуры графитовыми электродами. Они установлены на крышке ковша.
Сначала происходит десульфурация — из стали выводят серу и корректируют её химический состав добавлением примесей. Затем сталь легируют — добавляют в неё куски сплава из бункера для сыпучих материалов или порошковую проволоку через специальный трайб-аппарат.
Прежде чем в первый раз ввести легирующие добавки, специалисты производят химический анализ стали и измеряют её температуру. Потом температуру на несколько минут повышают, уже после этого добавляют легирующие материалы и продувают сталь инертным газом, чтобы перемешать, а затем снова проводят измерения. Такой цикл повторяется до тех пор, пока не будут достигнуты нужный химический состав стали и оптимальная температура плавки.
Дальше расплавленная сталь отправляется на доводку металла или поступает в машину непрерывной разливки. Оттуда готовый продукт выходит в виде заготовок-слябов (англ. slab, «плита»).

Инструкция по выполнению проекта

Шаг 1. Загрузите данные

В начале работы над проектом подключитесь к базе данных в Sqlite. Для этого достаточно иметь доступ к файлу с расширением .db.
Чтобы его загрузить, используйте команду wget в отдельной ячейке Jupiter Notebook:

!wget https://code.s3.yandex.net/data-scientist/ds-plus-final.db 

Этот способ подойдёт для выполнения проекта на платформе Практикума. Если вы планируете работать локально, то можете скачать файл, перейдя по ссылке.
Далее для подключения к базе данных используйте этот код:

import os
import pandas as pd
from sqlalchemy import create_engine

path_to_db = 'ds-plus-final.db'
engine = create_engine(f'sqlite:///{path_to_db}', echo=False) 

При выполнении проекта задайте константу RANDOM_STATE. Её значение будет равно дате начала вашей работы над проектом. Например, если это 1 сентября 2022 года, то RANDOM_STATE = 10922. Используйте эту константу везде, где это необходимо: например при разделении данных на выборки.

Шаг 2. Проведите исследовательский анализ и предобработку данных

Проанализируйте исходные данные. Проверьте:
Все ли таблицы содержат данные.
Соответствует ли количество таблиц условию задачи.

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

Для таблицы steel.data_bulk:
Проведите исследовательский анализ данных: проверьте наличие пропусков и аномалий, изучите распределение признаков.
Обработайте пропуски. Пропуск означает, что материал не добавляли в партию.

Для таблицы steel.data_bulk_time:
Проведите исследовательский анализ данных: проверьте наличие пропусков и аномалий, изучите распределение признаков.
Проверьте данные на адекватность: например, убедитесь, что подача материала не измеряется сутками. Обратите внимание: перед вами не стоит задача временных рядов.

Для таблицы steel.data_gas:
Проведите исследовательский анализ данных: проверьте наличие пропусков и аномалий, изучите распределение признаков.

Для таблицы steel.data_temp:
Проведите исследовательский анализ данных: проверьте наличие пропусков и аномалий, изучите распределения признаков.
Целевой признак — последняя температура партии. Начальную температуру партии можно использовать как входной признак. Любые другие промежуточные значения температуры приведут к утечке целевого признака, их нельзя использовать как входные.
При агрегировании наблюдений используйте только ключи, у которых как минимум два наблюдения: первый и последний замеры температуры.
Заказчик предупредил, что значения температуры ниже 1500 градусов — аномальные.

Для таблицы steel.data_wire:
Обработайте пропуски. Пропуск означает, что материал не добавляли в эту партию.

Для таблицы steel.data_wire_time:
Проведите исследовательский анализ данных: проверьте наличие пропусков и аномалий, изучите распределение признаков.
Проверьте данные на адекватность: например, убедитесь, что подача материала не измеряется сутками. Обратите внимание: перед вами не стоит задача временных рядов.

Объедините таблицы по ключу:
Каждой партии должно соответствовать одно наблюдение.
Учтите: во все партии точно добавлялись сыпучие и проволочные материалы, везде была выполнена продувка газом и сплав всегда нагревался.
Заказчик предупредил, что иногда наблюдается асинхронность в заданном времени разных датчиков. Если вы будете выстраивать хронологию процессов для разных партий, то можете столкнуться с тем, что полученная хронология не соответствует хронологии в описании. Не стоит воспринимать это как ошибку.
Проведите исследовательский анализ данных объединённой таблицы и визуализируйте распределение каждого признака, напишите выводы.
Проведите корреляционный анализ.
Подготовьте данные для обучения:
Выберите признаки, которые будете использовать для обучения, учитывайте особенности данных и выбранных моделей.
Разделите данные на тренировочную и тестовую выборки (test_size = 0.25).
Подготовьте выборки для обучения, учитывайте особенности выбранных моделей.

Шаг 3. Обучите модель
Рассмотрите классы моделей:
решающее дерево или случайный лес,
бустинги,
нейронные сети.
Найдите лучшую модель для прогноза последней измеренной температуры. Оцените её качество метрикой MAE. Выберите лучшую модель по значению метрики на кросс-валидации.
Подберите значения как минимум двум гиперпараметрам хотя бы для одной модели. Лучше всего использовать методы автоматизированного подбора гиперпараметров: GridSearchCV, RandomizedSearchCV, OptunaSearchCV, Optuna и другие.

Шаг 4. Протестируйте модель и продемонстрируйте её работу
Проверьте качество лучшей модели на тестовой выборке. Значение метрики MAE должно быть менее 6.8.
Дополнительно можете оценить R².
Сравните результаты лучшей и константной моделей.
Проанализируйте важность основных признаков.
Для одного из важных признаков проведите дополнительное исследование:
Покажите график зависимости входного и целевого признаков.

Шаг 5. Сделайте общий вывод по работе
Напишите общие выводы, предложите способы для дальнейшего улучшения модели и дайте бизнес-рекомендации заказчику.

Описание данных

Данные хранятся в Sqlite  — СУБД, в которой база данных представлена одним файлом. Она состоит из нескольких таблиц:

  • steel.data_arc — данные об электродах;
  • steel.data_bulk — данные об объёме сыпучих материалов;
  • steel.data_bulk_time — данные о времени подачи сыпучих материалов;
  • steel.data_gas — данные о продувке сплава газом;
  • steel.data_temp — данные об измерениях температуры;
  • steel.data_wire — данные об объёме проволочных материалов;
  • steel.data_wire_time — данные о времени подачи проволочных материалов.

Таблица steel.data_arc
key — номер партии;
BeginHeat — время начала нагрева;
EndHeat — время окончания нагрева;
ActivePower — значение активной мощности;
ReactivePower — значение реактивной мощности.

Таблица steel.data_bulk
key — номер партии;
Bulk1 … Bulk15 — объём подаваемого материала.

Таблица steel.data_bulk_time
key — номер партии;
Bulk1 … Bulk15 — время подачи материала.

Таблица steel.data_gas
key — номер партии;
gas — объём подаваемого газа.

Таблица steel.data_temp
key — номер партии;
MesaureTime — время замера;
Temperature — значение температуры.

Таблица steel.data_wire
key — номер партии;
Wire1 … Wire9 — объём подаваемых проволочных материалов.

Таблица steel.data_wire_time
key — номер партии;
Wire1 … Wire9 — время подачи проволочных материалов.

Во всех файлах столбец key содержит номер партии. В таблицах может быть несколько строк с одинаковым значением key: они соответствуют разным итерациям обработки.

Условия задачи:

  • Для обучения модели подходит только линейная регрессия (остальные — недостаточно предсказуемые).
  • При разведке региона исследуют 500 точек, из которых с помощью машинного обучения выбирают 200 лучших для разработки.
  • Бюджет на разработку скважин в регионе — 10 млрд рублей.
  • При нынешних ценах один баррель сырья приносит 450 рублей дохода. Доход с каждой единицы продукта составляет 450 тыс. рублей, поскольку объём указан в тысячах баррелей.
  • После оценки рисков нужно оставить лишь те регионы, в которых вероятность убытков меньше 2.5%. Среди них выбирают регион с наибольшей средней прибылью.

Данные синтетические: детали контрактов и характеристики месторождений не разглашаются.

Как будут проверять мой проект?

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

На что обращают внимание ревьюеры, проверяя проект:

  • Как вы готовите данные к обучению?
  • Выполнили все шаги по инструкции?
  • Все ли условия бизнеса учтены?
  • Какие выводы об исследовании задачи делаете?
  • Корректно ли выполнена процедура Bootstrap?
  • Предложен ли регион для разработки скважин? Обоснован ли выбор?
  • Не дублируете ли код?
  • Следите ли за структурой проекта и поддерживаете ли аккуратность кода?

Всё, что вам нужно знать, есть в шпаргалках и конспектах прошлых тем.

Успеха!

Дорогой друг!

Я внимательно наблюдал за твоими действиями на сайте через вебвизор.

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

Благодаря моим стараниям, целую главу ты можешь закрыть за сутки, а то и быстрее.

Думаю, что сэкономленное время, ты потратил с пользой, в то время как я сидел и пыхтел над заданиями.

Лучшая благодарность от тебя, это пожертвования на мой IT - проект.

Жертвуй столько, сколько не жалко, но и не скупись, чтобы было не стыдно.