Skip to content

Latest commit

 

History

History
119 lines (82 loc) · 6.07 KB

README.md

File metadata and controls

119 lines (82 loc) · 6.07 KB

Название проекта: Прогнозирование цены автомобиля по VIN-коду

Заказчик: самостоятельное исследование

Статус проекта: завершён

Описание рабочих файлов:

  • decoding_vin_codes.ipynb - рабочая тетрадь с исследованиями, визуализациями и текстовыми описаниями
  • requirements.txt - список зависимостей, необходимых для работы проекта, а также их версии
  • research_class.py - файл, содержащий класс для проведения исследования
  • assets - директория с сохранёнными артефактами

Установка зависимостей и запуск проекта

git clone https://github.com/denis-42ds/decoding_vin_codes.git
cd decoding_vin_codes
pip install -r requirements.txt
jupyter lab

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

Изучение информации, зашифрованной в VIN-кодах с целью прогнозирования цены.

Цель проекта

  • Составление прогноза цен на основании информации скрытой в VIN-кодах.

Задачи

  • изучить структуру VIN-кода: какие информационные компоненты он содержит (регион, производитель, характеристики автомобиля и т. д.);
  • составлять регулярные выражения для поиска и извлечения конкретных частей VIN-кода, таких как производитель, модель и год выпуска;
  • распарсить текстовый массив данных с VIN-кодами и ценами;
  • решить задачу предсказания цены по VIN-коду.

Метрики

  • MSE, MAE, MAPE, R2

Ход исследования

  • Ознакомление с данными;
  • ознакомление со способами кодирования данных в VIN-кодах;
  • составление паттерна для парсинга VIN-кодов;
  • проверка работоспособности паттерна;
  • парсинг VIN-кодов;
  • подготовка данных для модели;
  • обучение baseline модели;
  • обучение других моделей;
  • выбор лучшей модели;
  • проверка важности признаков;
  • заключение по исследованию.

Основные используемые инструменты

  • python: re, pandas, seaborn, psycopg2-binary, phik, catboost, shap, sklearn;
  • mlflow;
  • postgresql.

Отчёт по проведённому исследованию

Загрузка данных и ознакомление с ними

Выполнено

  • данные загружены и изучены;
  • составлено общее представление о необходимых действяих для обработки.

Подготовка паттерна для парсинга данных

Выполнено

  • паттерн подготовлен и протестирован.

Исследовательский анализ данных

Выполнено

  • исследованы общие параметры датафрейма, наличие дубликатов, типы признаков;
  • исследована целевая переменная;
  • изучены зависимости между признаками.

Подготовка данных для обучения моделей

Выполнено

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

Обучение моделей

Выполнено

Обучены и оценены модели:

  • Linear Regression без подбора гиперпараметров - в качестве baseline;
  • Linear Regression с подбором гиперпараметров GridSearch;
  • Random Forest Regressor с подбором гиперпараметров GridSearch;
  • CatBoost Regressor с подбором гиперпараметров GridSearch.

Выбор лучшей модели

Выполнено

  • по метрике MSE лучший результат на валидации показала модель CatBoost Regressor

Тестирование модели

Выполнено

  • проверка на тестовой выборке показала адекватность обучения модели

Анализ важности признаков лучшей модели

Выполнено

Наиболее важными признаками для прогнозирования цены выделены:

  • год производства автомобиля;
  • завод-производитель автомобиля;
  • кузов автомобиля

Дополнительно

  • поднята база PostgreSQL для хранения метрик и параметров моделей;
  • поднят MLflow server для логирования моделей, параметров и метрик.

Общий итог: для выполнения поставленной задачи наиболее подходящей моделью оказалась модель градиентного бустинга CatBoost