Разработка модели машинного обучения, предсказывающей рыночную стоимость автомобиля
-
Pandas, Numpy, Matplotlib, Seaborn, Joypy, Skimpy, Datetime, Sklearn, Feature-engine, Catboost, LightGBM
-
KNNImputer, SimpleImputer, OneHotEncoder, OrdinalEncoder, MinMaxScaler, DropCorrelatedFeatures, SelectKBest, mutual_info_regression, make_scorer, RandomizedSearchCV
Популярный среди автолюбителей портал по продаже автомобилей с пробегом «Не бит, не крашен» разрабатывает приложение для привлечения новых клиентов и расширения своего присутствия в онлайн-пространстве. Новый сервис должен позволить быстро узнать рыночную стоимость автомобиля. Администрацией портала накоплены исторические данные: технические характеристики, комплектации и цены автомобилей, – которые станут основой для обучения машинного алгоритма.
Цель исследования: разработка модели машинного обучения, предсказывающей рыночную стоимость автомобиля.
Для достижения цели были выполнены следующие задачи:
-
проведен исследовательский анализ данных; данные подготовлены для машинного обучения;
-
проведено обучение нескольких моделей с подбором лучших гиперпараметров для каждой модели;
-
проанализировано время обучения модели; время, затраченное моделью на предсказание; качество модели;
-
выбрана лучшая модель, качество которой проверено на тестовой выборке.
Заказчиком определены следующие критерии, по которым будет выбрана лучшая модель:
-
должно быть исследовано несколько моделей, одна из которых — LightGBM, как минимум одна — не бустинг;
-
время обучения модели;
-
время, затраченное моделью на предсказание;
-
качество модели, определяемое по метрике RMSE, значение которой должно быть ниже 2500.
(1) Обучены две линейные модели ипять моделей, основанных на решающих деревьях:
-
Ridge
-
LassoCV
-
DecisionTreeRegessor
-
RandomForestRegressor
-
HistGradientBoostingRegressor
-
CatBoostRegressor
-
LGBMRegressor
(2) создана собственная метрика rmse, позволившая получать значение метрики по итогам кросс-валидации на RandomizedSearchCV с помощью атрибута best_score_
(3) Ни в одном из случаев проверки простых (линейных) моделей на обучающем комплекте с использованием кросс-валидации не было получено значение метрики RMSE, которое соответствовало бы пороговому уровню в 2500. Удаление коррелирующих признаков и выявление 150-ти важнейших признаков не позволило снизить RMSE.
Все пять 'сложных' (основанных на решающих деревьях) моделей на обучающей выборке с использованием кросс-валидации показали значение метрики RMSE меньшее, чем 2500.
Лучшей моделью, соответствующей ограничениям, установленным в техзадании, стала модель HistGradientBoostingRegressor, показавшая на тестовой выборке значение RMSE, равное 1873.984.