Описание данных
ferma_main.csv
ferma_dad.csv
cow_buy.csv
Файл ferma_main.csv
содержит данные о стаде фермера на текущий момент.
Описание таблицы:
Параметры корма коровы
- ЭКЕ (Энергетическая кормовая единица) — измерение питательности корма коровы;
- Сырой протеин — содержание сырого протеина в корме, в граммах;
- СПО (Сахаро-протеиновое соотношение) — отношение сахара к протеину в корме коровы.
Где паслась корова
Тип пастбища — ландшафт лугов, на которых паслась корова.
Особенности коровы
id
— номер коровы;
Порода
— порода коровы;
Возраст
— бинарный признак (менее_2_лет
, более_2_лет
);
Имя Папы
— порода папы коровы. Характеристики молока
Жирность
— содержание жиров в молоке, в процентах;
Белок
— содержание белков в молоке, в процентах;
Вкус молока
— оценка вкуса по личным критериям фермера;
Удой
— масса молока, которую корова даёт в год, в килограммах.
Файл ferma_dad.csv
хранит имя папы каждой коровы в стаде фермера.
Файл cow_buy.csv
— это данные о коровах «ЭкоФермы», которых фермер хочет изучить перед покупкой. Структура таблицы почти аналогична ferma_main.csv
, кроме нескольких особенностей:
Белок
и Жирность
молока указаны на момент покупки — когда «ЭкоФерма» давала им свой корм.
- Параметры кормления
ЭКЕ
, Сырой протеин
, СПО отсутствуют
. Недавно технологи заказчика пересмотрели параметры корма и планируют их внедрить после расширения стада. Именно новые параметры нужно использовать, когда вы будете применять предсказательные модели к бурёнкам «ЭкоФермы». По новой схеме фермер планирует увеличить средние значения ЭКЕ
, Сырой протеин
, СПО
на 5%.
Удой
и Вкус молока
неизвестны — именно их и предстоит предсказать!
-
Инструкция по выполнению проекта
❗ Для исследовательского анализа данных и оценки качества моделей вы можете создавать и использовать функции. Они заметно упростят вам работу: • Вам не придётся постоянно повторять однотипный код и обновлять данные; • Вы уменьшите риск допустить ошибку в коде; • Ваш код будет более лаконичным и понятным; • Вы сможете использовать ваши функции для будущих проектов. При проверке этого проекта ревьюеры не будут негативно оценивать отсутствие функций — используйте их по желанию.
Шаг 1. Загрузите и изучите данные
Скачайте файлы и добавьте их датафреймы. Пути к файлам:
/datasets/ferma_main.csv
/datasets/ferma_dad.csv
/datasets/cow_buy.csv
Изучите признаки и данные. Определите, соответствуют ли они описанию задачи и изученным в прошлых спринтах стандартам оформления данных. При необходимости вы можете переименовать названия столбов, указав, какие названия использовались изначально.
Шаг 2. Предобработка данных
- Проверьте данные на наличие пропусков и дубликатов. Узнайте, корректны ли типы данных у каждого признака. При необходимости устраните все проблемы с данными.
Шаг 3. Исследовательский анализ данных
- Проведите статистический анализ всех признаков.
- Постройте графики, которые описывают все признаки. Помните, что количественным и категориальным данным подходят разные графики.
- Сделайте выводы о данных:
- напишите, заметили ли вы выбросы, необычное распределение количественных данных и другие особенности датасетов?
- расскажите, как вы планируете улучшить данные?
Шаг 4. Проведите корреляционный анализ
- Изучите взаимосвязь между целевым и входными признаками. Если данные ненормально распределены, используйте коэффициент корреляции Спирмена или Кендалла. Если нормально — коэффициент корреляции Пирсона. Учитывайте, что корреляционные связи в подгруппах могут различаться.
- Визуализируйте корреляции с помощью диаграмм рассеяния
scatterplot
.
- Сделайте выводы о взаимосвязи целевого признака с остальными факторами. Ответьте на вопросы:
- Какой тип взаимосвязи между ними?
- Есть ли нелинейные связи между признаками? Нужно ли вводить в модель дополнительные факторы, чтобы это учесть?
- Наблюдается ли мультиколлинеарность между признаками?
Шаг 5. Обучение модели линейной регрессии
- Постройте модель линейной регрессии на данных датасета
farm_main.csv
.
- Используйте в качестве целевого признак
Удой
.
- Из всего набора факторов выберите признаки, которые подходят для вашей модели. Аргументируйте выбор. В первую очередь руководствуйтесь здравым смыслом. К примеру, очевидно, что характеристики молока не влияют на удой, в отличие от параметров корма.
- Разбейте данные на обучающую и тестовую выборки.
- Нормализуйте категориальные признаки с помощью One-Hot Encoding.
- Масштабируйте количественные признаки с помощью StandardScaler.
- Создайте модель линейной регрессии и получите прогноз.
- Оцените качество модели на тестовой выборке: рассчитайте
R²
, проанализируйте остатки с помощью графиков.
- Оформите выводы. Укажите:
- Уровень R² модели;
- Какие выводы следуют из анализа остатков;
- Нужны дополнительные исследования.
- Постройте модель линейной регрессии с учётом преобразования признаков, нелинейно связанных с целевым признаком.
- Графики показывают, что
СПО
и Удой
связаны нелинейно. Исключите нелинейность: переведите СПО в категориальный признак, выявив и использовав границу нелинейности.
ЭКЕ
и Удой
также связаны нелинейно. Исключите нелинейность: введите новую признак «ЭКЕ в квадрате»
.
- Повторите этапы из пункта 1 шага 5.
- Постройте модель линейной регрессии с учётом нового признака из файла
ferma_dad.csv
. Учтите преобразование нелинейности в пункте 2.
- Добавьте признак
Имя папы
, соединив его с остальными данными в ferma_main.csv
по ключу.
- Повторите этапы из пункта 1 шага 5.
- Сравните качество трёх моделей линейной регрессии, сопоставьте их R² и остатки.
- Рассчитайте точность каждой модели по трём метрикам: MSE, MAE, RMSE. Используйте функции для расчёта метрики.
- По метрикам определите, какая из моделей точнее.
- Определите доверительный интервал прогноза лучшей модели.
- Примените лучшую по качеству и по точности модель к данным из датасета
cow_buy.csv
и спрогнозируйте удой коров, которых фермер хочет купить.
- Нормализуйте данные перед прогнозом. Примените One-Hot Encoding и StandardScaler к тем же признакам, которые вы нормализовывали в датасете
ferma_main.csv
.
- Получите прогноз удоя коров.
Шаг 6. Обучение модели логистической регрессии
- Постройте модель логистической регрессии на данных датасета
farm_main.csv
.
- Используйте в качестве целевого признак Вкус молока.
- Отберите признаки, влияющие на целевой признак. Аргументируйте выбор. В первую очередь руководствуйтесь здравым смыслом.
- Разбейте данные на обучающую и тестовую выборки.
- Нормализуйте категориальные признаки с помощью One-Hot Encoding.
- Масштабируйте количественные признаки с помощью StandardScaler.
- Создайте модель логистической регрессии и получите прогноз.
- Оцените качество модели на тестовой выборке: рассчитайте метрики accuracy, recall, precision.
- Постройте матрицу ошибок.
- Проанализируйте модель логистической регрессии.
- Объясните, какая ошибка критичнее всего при покупке коров: ложно-положительная или ложно-отрицательная. Сформулируйте ответ с учётом метрик Recall и Precision.
- Рассчитайте метрики для случая, когда критическая ошибка будет равна 0. Для этого нужно изменить вероятность принадлежности к положительному или отрицательному классу. Какой уровень этой вероятности?
- Оформите выводы: скажите, что нужно сделать дальше, исходя из анализа модели?
- Примените модель логистической регрессии к датасету cow_buy.csv. Классифицируйте коров, которых хочет купить фермер, по вкусу молока, который они будут давать.
- Нормализуйте данные перед прогнозом. Примените One-Hot Encoding и StandardScaler к тем же признакам, которые вы нормализовывали в датасете
ferma_main.csv
.
- Получите прогноз вкуса молока у коров.
Шаг 7. Сделайте итоговые выводы
- Выведите прогнозы вкуса молока и удоя коров «ЭкоФермы» в одной таблице
DataFrame
.
- Отберите коров, для которых спрогнозирован удой более 6000 килограммов в год и вкусное молоко.
- Коротко опишите результаты работы модели для фермера. Ответьте на вопросы:
- Сколько коров он может купить из стада на продажу с минимальным риском для себя? Почему?
- Какие ещё рекомендации можно ему дать?
- Сделайте выводы о моделях линейной регрессии и логистической регрессии. Ответьте на вопросы:
- Какие способы улучшения качества регрессионной модели вы использовали в этой задаче?
- Возможно ли ещё улучшить результаты регрессионной модели? Если можно, то как? Если нет, то почему?
- Какие метрики моделей классификации, в том числе логистической регрессии, важны при анализе рисков или экономических расчётов?
Как будут проверять мой проект
Мы подготовили критерии оценки проекта, которыми руководствуются ревьюеры. Прежде чем приступить к решению кейса, внимательно их изучите.
На что обращают внимание ревьюеры, проверяя проект:
- Как вы готовите данные к обучению? Все ли особенности увидели и обрабатываете?
- Хорошо ли объясняете шаги по предобработке данных и исследовательскому анализу?
- Как проводите корреляционный анализ? Проводите ли исследования в подгруппах?
- Используете ли при корреляционном анализе графики?
- Какие выводы об исследовании задачи делаете?
- Корректно ли разбиваете данные на выборки?
- Верно ли выбираете методы моделирования?
- Корректно ли проводите обучение?
- Корректно ли исследуете качество модели?
- Корректно ли исследуете точность модели?
- Следите за структурой проекта и поддерживаете аккуратность кода?
- Правильно ли используете модели?
- Соблюдаете ли вы требования заказчика? Даёте ли вы ему практические рекомендации?
Всё, что вам нужно знать, есть в шпаргалках и конспектах прошлых тем.
Успеха!
Дорогой друг!
Я внимательно наблюдал за твоими действиями на сайте через вебвизор.
Если ты добрался до этой страницы, то скорее всего ты проходишь платное обучение на курсах.
Благодаря моим стараниям, целую главу ты можешь закрыть за сутки, а то и быстрее.
Думаю, что сэкономленное время, ты потратил с пользой, в то время как я сидел и пыхтел над заданиями.
Лучшая благодарность от тебя, это пожертвования на мой IT - проект.
Жертвуй столько, сколько не жалко, но и не скупись, чтобы было не стыдно.
Большое тебе спасибо, за твою благодарность!