training_projects

Форк
0

..
/
determining_cars_value 
7 месяцев назад
7 месяцев назад
README.md

Определение стоимости автомобилей

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


КОНТЕКСТ ИССЛЕДОВАНИЯ: исторические данные: технические характеристики, комплектации и цены автомобилей.


ЦЕЛЬ ИССЛЕДОВАНИЯ: построить модель для определения рыночной стоимости автомобиля


КРИТЕРИИ УСПЕХА И ПРИМЕЧАНИЯ:

  • качество предсказания;
  • скорость предсказания;
  • время обучения
  • для оценки качества моделей применяйте метрику RMSE.
  • начение метрики RMSE должно быть меньше 2500.

Описание данных для первого исследования:

  • Данные: /datasets/autos.csv

Признаки:

  • DateCrawled — дата скачивания анкеты из базы
  • VehicleType — тип автомобильного кузова
  • RegistrationYear — год регистрации автомобиля
  • Gearbox — тип коробки передач
  • Power — мощность (л. с.)
  • Model — модель автомобиля
  • Kilometer — пробег (км)
  • RegistrationMonth — месяц регистрации автомобиля
  • FuelType — тип топлива
  • Brand — марка автомобиля
  • Repaired — была машина в ремонте или нет
  • DateCreated — дата создания анкеты
  • NumberOfPictures — количество фотографий автомобиля
  • PostalCode — почтовый индекс владельца анкеты (пользователя)
  • LastSeen — дата последней активности пользователя

Целевой признак:

  • Price — цена (евро)

Вывод

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

Исследование было разделено на несколько этапов:

1. Загрузка и подготовка данных

  • Всего в датасете 354 369 записей и 16 столбцов
  • Обнаружили пропущенные значения:
    • VehicleType - 37 490
    • Gearbox - 19 833
    • Model - 19 705
    • FuelType - 32 895
    • Repaired - 71 154
  • Обнаружили 4 явных дубликата
  • Предварительно определили аномальные значения:
    • RegistrationYear - машина явно не может быть зарегистрирована в 9999 году, как и в 1000
    • Power - 20 000 лошадиных сил? Космические скорости :)
    • NumberOfPictures - видимо, картинки не успели выгрузиться или их не было в данных, поскольку наблюдаем только нули. Вероятна и техническая неполадка.
  • С типами данных все в порядке

2. Предобработка данных

  • Привели названия столбцов к snake_case для удобства
  • Заполнили пропущенные значения самым часто встречающимся значением в столбце с использованием пайплайна через SimpleImputer
  • Избавились от 5-ти явных дубликатов в данных.

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

  • Убрали 171 строку из данных, связанных с годом регистрации автомобиля: машины, зарегистрированные до 1886 и после 2016.
  • Избавились от "бесплатных" автомобилей в записях - удалено 10 772 строк
  • Обнаружили временную тенденцию, связанную с трендом "проставлять в СТС автомобилей 0 лошадиных сил" с целью обхода налоговых обязательств. Подобных записей в данных - (11.32%). Заменили нули на медианное значение количества лошадиных сил среди подобных брендов и моделей автомобиля.
  • В том числе обнаружили странными записи, в которых в автомобилях более 1500 л.с. и даже более 10 000 л.с. Определили, что подобные авто либо являются суперболидами (вероятность чего очень низкая), либо это техническая ошибка сервиса. Заменили отобранные значения по тому же принципу, что и с 0 л.с. Также сделали дополнительную проверку и заменили оставшиеся 2 пропуска
  • Среди типов автомобильных кузовов лидирует "седан" - 36.4% данных
  • Среди моделей автомобилей лидирует 'golf' от 'volkswagen'
  • Среди брендов пятерку лидеров также открывает 'volkswagen
  • 70.3% авто в данных используют топливо 'petrol' (бензин)
  • Большинство машин (89.8%)не было в ремонте в момент продажи. Наблюдается большой перевес в категориях

Исходя из корреляционного анализа можно сделать несколько выводов:

  • Относительно сильная зависимость признака model от остальных может привести к неустойчивости коэффициентов для линейных моделей - предположительно, они покажут себя хуже альтернативных моделей. То же справедливо и для остальных выявленных сильных линейных зависимостях.
  • Целевой признак коррелирует умеренно-положительно (0.5 < y < 0.8) с несколькими признаками:
    • model - 0.57. Достаточно очевидно, что цена авто зависит от выбранной модели.
    • registration_year - Год регистрации автомобиля тоже влияет на цену. Чем ближе эта дата к настоящему времени - тем "свежее" автомобиль и тем дорожен он стоит

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

  • Подготовили выборки, убрав неважные признаки
  • Создали пайплайн предобработки
  • Подобрали гиперпараметры некоторых и обучили + замерили метрики на кросс-валидации и трейне у 4-х моделей

6. Анализ моделей

  • Лучше всего с задачей справилась модель с классическими гиперпараметрами - CatBoostRegressor. Она показала лучший RMSE на обучающей выборке и быстрее остальных моделей предсказывает значения (за 221 ms).
    • RMSE на кросс-валидации: 1657.1575917061473
    • RMSE на тренировочной выборке: 1582.498757667244
    • RMSE на тестовой выборке: 1670.9846774171092
    • Время обучения модели: 19.7 s
    • Время предсказания модели (на тестовой выборке): 73.9 ms

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

  • Предсказание качественно и метрика RMSE < 2500;
  • Скорость предсказания достаточно высокая;
  • Время обучения в порядке нормы

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.