- 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