Заказчик исследования — сеть отелей «Как в гостях». Чтобы привлечь клиентов, сеть отелей добавила на свой сайт возможность забронировать номер без предоплаты. Однако если клиент отменяет бронирование, то компания терпит убытки. Сотрудники отеля могут, например, закупить продукты к приезду гостя или просто не успеть найти другого клиента. Чтобы решить эту проблему, нам нужно разработать систему, которая предсказывает отказ от брони. Если модель покажет, что бронь будет отменена, то клиенту предлагается внести депозит. Размер депозита — 80% от стоимости номера за одни сутки и затрат на разовую уборку. Деньги будут списаны со счёта клиента, если он всё же отменит бронь.
Для обучения будем использовать две модели на ансамблях:
- RandomForestClassifier
- AdaBoostClassifier
Линейную модель:
- LogisticRegression
Модель на методе опорных векторов:
- LinearSVC
Нам предоставленны различные данные о клиентах отеля за период 3 года.
Мы подготовили и очистили данные. Подобрали метрики и написали функции необходимые для решения задачи.
Проанализировали ряд моделей машинного обучения с учителем.
Все из протестированных моделей обеспечивают прирост прибыли и по совокупности факторов работают лучше случайных или константных моделей. Все модели за год отобьют бюджет проектирования системы прогнозирования.
Выбор конкретной модели для работы зависит от приоритетов стоящих перед бизнесом.
Если нужно максимизировать прибыль - подойдёт модель LinearSVC.
Если нужно минимизировать неоправданные залоги, которые могут отпугнуть клиентов - модель AdaBoostClassifier.
Сбалансированное решение - модель RandomForestClassifier.
Признак is_repeated_guest
хорошо коррелирует одновременно и с previous_cancelations
и с previous_bookings_not_canceled
, вероятно, речь о бизнес клиентах, для которых характерны частые отмены при изменении планов, но которые предпочитают останавливаться в одном и том же месте. Данные клиенты, зная что вероятность отмены всегда есть, станут фактором снижения доходов от введения системы залогов. Таких клиентов стоит перевести в отдельную категорию, которую не будет касаться система залогов.
Таким образом можно резюмировать что машинное обучение может существенно увеличить выручку при грамотном применении и отбить затраты на введение системы оценки рисков, но при этом настоятельно рекомендуется провести А/В тест и выяснить какой процент от клиентов в действительности откажется от брони если система потребует таковую. Это поможет минимизировать риски и выбрать оптимальную по доходности модель.
Jupyter Notebook
Python - pandas, numpy, seaborn, os, tqdm, matplotlib, pandas_profiling, statsmodels, sklearn