Прогнозирование количества заказов такси на следующий час
-
Pandas, Numpy, Matplotlib, Seaborn, Statsmodels, Sklearn, Catboost, LightGBM
-
seasonal_decompose, TimeSeriesSplit, RandomizedSearchCV
В компании «Чётенькое такси» были собраны исторические данные о заказах такси в аэропортах. Для улучшения финансовых показателей деятельности компании требуется привлекать больше водителей в периоды пиковых нагрузок. Соответственно, требуется спрогнозировать количество заказов такси на следующий час и на основе полученных прогнозов планировать привлечение водителей.
Ключевая особенность собранных данных – они распределены по временным интервалам, поэтому решаемая задача будет относиться к анализу временных рядов.
Цель проекта: построить модель, предсказывающую количество заказов такси на следующий час.
Целевое ограничение, по которому оценивается результат выполнения проекта: значение метрики RMSE лучшей модели на тестовой выборке должно быть <= 48.
Для достижения цели были поставлены и решены следующие задачи:
-
выполнена загрузка и ресемплирование данных по одному часу
-
проведен исследовательский анализ данных
-
обучены модели машинного обучения с разными гиперпараметрами с выделением тестовой выборки в размере 10% от исходных данных
-
лучшая модель проверена на тестовой выборке
Решаемая задача относится к категории задач регрессии.
(1) C помощью функции декомпозиции выявлены тренд и сезонность. Сезонность дополнительно была исследована для каждого месяца. Тренд показывает значительное увеличение среднего количества заказов такси в летние месяцы, особенно в августе. Исследование сезонности по каждому из шести месяцев по которым представлена информация в датасете, показало, что ежедневно минимальное количество заказов такси фиксируется с полуночи до раннего утра. В течении дня количество вызовов такси увеличивается, достигая пика с 22 до 24 часов.
(2) для выявление лучшей было проведено обучение следующих моделей:
-
Ridge
-
DecisionTreeRegressor
-
CatBoost
-
HistGradientBoostingRegressor
-
LightGBMPergessor
(3) Лучший результат из пяти обученных моделей показала LGBMRegressor. Модель успешно прошла проверку на тестовой выборке, показав значение метрики RMSE 39.46. Значение метрики RMSE на тестовой выборке модели DummyRegressor 84.66. Таким образом, модель LGBMRegressor полностью соответствует установленным в техзадании требованиям.
(4) Визуализация предсказаний модели LGBMRegressor на тестовой выборке в сравнении с целевыми значениями показала, что модель недостаточно точно предсказывает пиковые значения (в основном максимальные), однако ошибка предсказаний (метрика RMSE) не превышает пороговый уровень.