Более разумное ценообразование для Airbnb с использованием машинного обучения

Увеличение дохода хоста с помощью регрессии и анализа временных рядов

[Этот проект был выполнен как часть иммерсивной программы обработки данных под названием Metis. Вы можете найти файлы этого проекта на моем GitHub, а слайды - здесь. Окончательный проект доступен здесь (интерактивное веб-приложение).]

Недавно я разработал новый подход к автоматическому ценообразованию для объявлений Airbnb, используя Внутренний набор данных Airbnb. Я использовал линейную регрессию, чтобы установить базовую цену, и анализ временных рядов, чтобы спрогнозировать колебания цен в зависимости от даты. Я использовал обучение без учителя для создания рекомендательной системы, чтобы хозяева могли сравнивать свой листинг с другими похожими популярными листингами.

Немного предыстории

Airbnb представила свой интеллектуальный инструмент ценообразования несколько лет назад, но проблема в том, что предлагаемые цены слишком низкие, и хозяева заметили, что их доходы уменьшаются, когда они использовали этот инструмент. Сторонние решения, такие как Hosty и Beyond Pricing, пытались исправить это с помощью моделей, увеличивающих доход хостов; однако они негибкие и непонятные. Пользовательский ввод ограничен данными, введенными в листинг Airbnb (что не позволяет пользователям легко настраивать вводимые данные), и хозяева не могут понять, как они получили определенное ценовое предложение.

Для новых хозяев, которые еще не разместили объявление или, возможно, даже не приобрели недвижимость для сдачи в аренду, это оставляет их в недоумении относительно того, чего ожидать с точки зрения дохода. Поэтому моей целью было создать инструмент для новых и старых хозяев, чтобы максимизировать количество бронирований, не снижая цены слишком низко.

Процесс

В рамках этой первоначальной концепции я сосредоточился на объявлениях Airbnb в Лос-Анджелесе с разумными ценами и очень высокой заполняемостью, чтобы обучить модель, исключая недооцененные и непопулярные объявления. Сделано важное предположение, что, поскольку фактические данные о бронировании недоступны, отзывы можно использовать в качестве прокси для бронирований.

Я использовал обработку естественного языка для названий и описаний каждого объявления, чтобы увидеть, как обсуждаемые в них темы влияют на ценообразование. Затем я построил несколько регрессионных моделей для прогнозирования базовых цен для каждого объекта недвижимости. Для окончательной модели я использовал линейную регрессию для простоты ее интерпретации, что важно, учитывая, что конечный пользователь, хозяева Airbnb, выиграет от понимания того, как лучше всего определять свои цены. Поскольку время года играет такую ​​большую роль в ценах на отдых, я провел анализ временных рядов, чтобы спрогнозировать, как цена будет колебаться в зависимости от даты. Затем я использовал обучение без учителя, чтобы создать систему рекомендаций, основанную на содержании, для хостов, чтобы они могли сравнивать свои объявления с аналогичными. Наконец, я развернул эту модель в веб-приложении, чтобы увидеть, как она будет работать в действии.

После очистки данных я настроил многие потенциально важные функции. В дополнение к текстовым функциям, упомянутым выше, этот набор функций включает высокоуровневую информацию, такую ​​как тип собственности, тип комнаты и местоположение. Он также содержит более подробную информацию, такую ​​как количество гостей, ванные комнаты, удобства и многое другое.

Полученные результаты

После обучения исходных моделей и использования регуляризации эластичной сети я выбрал наиболее эффективные и настроил гиперпараметры, чтобы найти ту, которая обладает наибольшей предсказательной силой. Я измерил успех регрессионных моделей , используя среднюю абсолютную ошибку, которая в итоге составила около 18 долларов, что означает, что хосты, использующие этот инструмент, могут рассчитывать примерно на такое же пространство для маневра при поиске точной правильной цены для них.

Чтобы лучше понять, как работает модель, давайте углубимся в особенности. График ниже показывает относительную важность каждой функции: те, которые повышают цену, простираются вправо, а те, которые идут влево, уменьшают цену.

Самые сильные положительные факторы - это то, если тип собственности - это весь дом, нахождение в районе на Вест-Сайде Лос-Анджелеса, гостиничные номера и количество людей, которые он вмещает - чем больше, тем лучше. Хотя я в конечном итоге исключил текстовые функции из развернутой модели, стоит отметить, что больше всего подняли цену темы, связанные с хорошими видами на открытом воздухе и недавно обновленными.

Те, которые имеют наибольшее негативное влияние на цену, требуют длительного проживания, большинства типов недвижимости, не относящихся к жилью, кварталов Ист-Сайда и, что неудивительно, общих комнат. Текстовые функции, которые негативно влияют на цену, описываются как «уютные» или «удобные», а также «семейные».

Кажется довольно интуитивно понятным, что цена должна быть выше или ниже в зависимости от того, какой сегодня день. На приведенном ниже графике показана разбивка по дням недели, времени года и определенным праздникам.

Цена снижается в течение недели, достигая минимума в среду, а в выходные - резко. Цены на многие праздники также повышаются, особенно в День Благодарения, Рождество и Новый год. Если посмотреть на сезонные колебания, цена коррелирует с высоким сезоном путешествий в Лос-Анджелесе в конце лета и снова во время зимних каникул.

Базовая цена комбинируется с колебаниями во времени, чтобы установить рекомендованную цену, как показано ниже.

Функции, используемые для прогнозирования цен, также используются в качестве входных данных для системы рекомендаций на основе контента для поиска популярных списков, похожих на входные, что позволяет хостам сравнивать свои листинги с другими, уже имеющимися на рынке.

Если вы хотите попробовать это сами, посетите мое приложение, которое я развернул с помощью Heroku, здесь. Не стесняйтесь обращаться с любыми вопросами.