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

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

Новые клиенты Airbnb могут арендовать жилье во всех 34 000+ городах в 190+ странах. Airbnb может публиковать более индивидуальный контент со своим сообществом, сокращать среднее время между первыми бронированиями и более точно оценивать спрос, правильно прогнозируя, где новый пользователь забронирует свою первую поездку.

СОДЕРЖАНИЕ

  1. Постановка задачи
  2. Использование машинного обучения
  3. Источник данных
  4. Существующие исследования
  5. Исследовательский анализ данных
  6. Первый подход
  7. Интерпретация модели (СПОСОБ применения различных моделей)
  8. Развертывание с помощью STREAMLIT
  9. Оценка Kaggle
  10. Сводка
  11. Будущая область
  12. Ссылки
  13. Ссылка для подключения

ПОСТАНОВКА ПРОБЛЕМЫ

Задача веб-сайта Kaggle, а именно новая проблема бронирования пользователей Airbnb, будет решена, чтобы решить проблему, для решения которой предназначен этот отчет:

как построить модель для прогнозирования намерений пользователей на основе пользовательских данных?

К этому проекту подключено пять наборов данных, каждый из которых имеет переменную релевантность, и цель состоит в том, чтобы оценить и ранжировать пять наиболее вероятных направлений поездки для каждого пользователя. Когда прогноз делают все пользователи, он публикуется на веб-сайте Kaggle, который использует систему подсчета очков NDCG, чтобы определить, насколько он точен.

У нас есть 12 ярлыков классов для работы. Эти ярлыки классов представляют места, где люди бронируют места. Они перечислены ниже:

  1. США (США)
  2. АС (Австралия)
  3. Калифорния (Канада)
  4. Германия (Дания)
  5. ЕС (Испания)
  6. Франция (Франция)
  7. ГБ (Великобритания)
  8. ИТ (Италия)
  9. НЛ (Нидерланды)
  10. ПТ (Португалия)
  11. Другие, т.е. пункты назначения, отличные от упомянутых выше
  12. NDF (пункт назначения не найден), т. е. когда пользователи посетили веб-сайт, но не выполнили бронирование.

ИСПОЛЬЗОВАНИЕ ОД

Чтобы решить эту проблему, мы будем использовать методы машинного обучения для прогнозирования местоположения первого бронирования пользователя на Airbnb. Для этой проблемы мы будем использовать оценку NDCG в качестве нашей меры.

ИСТОЧНИК ДАННЫХ

Для решения этой проблемы мы используем данные конкурса Kaggle. ссылка на Набор данных.

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

Страна назначения имеет 12 возможных результатов: «США», «FR», «CA», «GB», «ES», «IT», «PT», «NL», «DE», «AU», «NDF». » («Назначение не найдено» и «Другое»). Различие между «NDF» и «другое» в этом контексте заключается в том, что «другое» означает бронирование, но для страны, не включенной в список, а «NDF» означает отсутствие бронирования.

Train_users.csv — для описания каждого пользователя в наборе данных используется 16 признаков:

  • идентификатор: идентификатор пользователя
  • date_account_created: дата создания аккаунта
  • timestamp_first_active: временная метка первого действия, обратите внимание, что оно может быть раньше, чем date_account_creat date_first_booking
  • date_first_booking: дата первого бронирования
  • пол
  • возраст
  • signup_method
  • signup_flow: страница, с которой пользователь пришел зарегистрироваться
  • язык: предпочтительный международный язык
  • филиал_канал: какой платный маркетинг
  • affiliate_provider: где находится маркетинг, например. гугл, крейгслист, другое
  • first_affiliate_tracked: с каким первым маркетинговым продуктом взаимодействовал пользователь перед регистрацией.
  • signup_app
  • первый_тип_устройства
  • первый_браузер
  • country_destination: это целевая переменная, которую вы должны предсказать

Test users.csv — это наши тестовые данные, которые имеют те же свойства, что и данные поезда, которые мы должны использовать для периода тестирования, и 62096 точек данных.

Sessions.csv – CSV-файл, содержащий в общей сложности 10 567 737 точек данных и хранящий все записи онлайн-сеансов пользователя. Он содержит такие функции, как идентификатор пользователя, действие и тип действия.

  • user_id: для соединения со столбцом «id» в таблице пользователей.
  • действие
  • action_type
  • action_detail
  • тип устройства
  • secs_elapsed

СУЩЕСТВУЮЩИЕ ИССЛЕДОВАНИЯ

В настоящее время существует не так много способов решения проблемы.

  1. Традиционно люди игнорировали данные сеанса и использовали исключительно данные поезда. Эта стратегия приведет к значительной потере информации из данных сеанса.
  2. В обучающей выборке остались только те пользователи, которые были созданы между зимними и ранними летними месяцами, в то время как пользователи, которых мы хотим предсказать, включают только пользователей из поздних летних месяцев. На самом деле, эти две группы должны иметь различное распределение туристических направлений, поскольку привлекательность некоторых направлений сильно зависит от времени года.

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

ИССЛЕДОВАТЕЛЬСКИЙ АНАЛИЗ ДАННЫХ

Проверка отсутствующих значений:

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

Примерами этого являются NaN (не число), что означает пропущенные значения, выбросы и другие загрязнения.

1. На приведенном выше рисунке видно, что во многих столбцах, включая дату первого бронирования, возраст и первое отслеживаемое партнерство, отсутствуют данные.
2. Для даты первого бронирования имеется 58 % от общего числа значений данных. отсутствуют, и 42% значений переменной age.
3. Значения NaN и отсутствующие значения будут обрабатываться соответствующим образом.

1. Одномерный анализ

Распределение ярлыков классов:

  1. Согласно приведенным выше данным, NDF (пункт назначения не найден) имеет наибольшее количество меток класса (58%), за ним следуют США (29%) и другие (5%).
  2. NDF относится к онлайн-посетителям, которые отказались от своей корзины покупок. Пользователи, которые присоединились, но не запланировали никаких поездок, составляют основную часть пользователей.
  3. Однако основная масса клиентов предпочитает поездки в США в NDF.
  4. Мало кто предпочитает идти в другие места.

Распределение по возрасту:

  1. Наши записи показывают, что самый высокий возраст — 2014 год. Любой возраст такого рода мы считаем аномальным, поскольку он, безусловно, является результатом ошибочного впечатления пользователя.
  2. Таким образом, наши верхние и нижние возрастные ограничения установлены на уровне 100 и 18 лет соответственно.

Страна назначения:

  1. После удаления метки класса NDF мы видим, что на США приходится почти 70% бронирований путешествий.
  2. Согласно данным, 11% участников ездили в страны, не указанные в описании класса.

Приложение для регистрации (круговая диаграмма):

  1. Из первого сюжета 62% тех, кто едет в США, зарегистрировались онлайн.
  2. Согласно первому графику, только около 9% пользователей используют iOS в качестве способа регистрации, и только около 85% пользователей выбирают Интернет. Android и mo-web имеют относительно низкий процент.
  3. Большинство пользователей iOS путешествуют в США.

Тип первого устройства (круговая диаграмма):

  1. Большинство людей, приезжающих в США, используют настольные компьютеры Windows в качестве исходного типа устройств, за которыми следуют настольные компьютеры Mac.
  2. Человек, который использует iPhone или iPad, также будет путешествовать в основном в США.
  3. Помимо США и других стран, никто из пользователей iPhone не посещает другие страны, такие как IT, CA и т. д.

Блочная диаграмма между country_destination и account_created_month:

  1. Из приведенного выше графика видно, что большинство людей, которые хотят поехать в FR и IT, делают свои заказы в начале года, часто примерно в мае.
  2. Некоторые клиенты начнут делать свои первоначальные бронирования в сентябре для поездок в США, другие страны и Австралию.

Скрипка между country_destination и account_created_month:

  1. Практически все пользователи из других стран и из Нидерландов едут в Соединенные Штаты.
  2. Как правило, те, кто хочет перейти на FR, DE, GB и AU, старше других пользователей.
  3. Как правило, люди, которые хотят посетить ES и PT, моложе других пользователей.

2. Двумерный анализ

Блочная диаграмма между двумя объектами:

  • Страну назначения «Великобритания» посещает больше путешественников старшего возраста, чем любая другая демографическая группа.
  • Испания — это страна назначения с самым высоким процентом молодых путешественников.
  • По сравнению с другими странами, в Австралии почти нет пользователей другого пола.
  • Чтобы продолжить Исследовать данные, требуется анализ Multivate.
  1. Как видно выше, более молодые пользователи женского пола предпочитают посещать такие страны, как США, FR, ES и PT.
  2. Большинство путешественников, приезжающих в Германию, — пожилые, небинарные люди.
    Путешествие в НЛ обычно заказывают более молодые, небинарные люди.
    Большинство пользователей, которые выбирают путешествие во Францию, — пожилые, мужчины и неизвестного пола.

Возраст, тип первого устройства и страна:

  1. Настольные компьютеры на базе Windows преобладают в интересах международных путешественников.
  2. iPad нравится людям всех возрастов во всех категориях направлений.
  3. Телефоны Android были самым популярным гаджетом среди посетителей, отправляющихся в NL, но наименее популярным среди тех, кто направлялся в PT и AU.
  4. Молодые путешественники, особенно моложе 40 лет, чаще пользовались айфонами.
  5. Молодые путешественники, за исключением тех, кто едет в Австралию, предпочитали настольные компьютеры под управлением операционных систем, отличных от Windows или Mac.
  6. Только путешественники, путешествующие в США, пользовались мобильными телефонами, отличными от Android/iOS.

ПЕРВЫЙ ПОДХОД

Очистка данных:

  1. Поскольку в данных поезда много значений NaN и пропущенных значений, я предварительно обработал данные, чтобы сделать их более понятными, заменив все значения NaN значением режима этой функции, а все пропущенные значения — средним значением этой функции. .
  2. Я удалил характеристики, которые приносили мало пользы, и создал новые, такие как первый день бронирования, первый месяц бронирования и т. д. из данных поезда.
  3. Поскольку существует несколько записей для одного пользователя, я объединил их все вместе, чтобы создать одну запись для этого пользователя и создать новые данные сеанса. Я очистил данные для данных сеанса, чтобы сделать их более полезными.

Перед очисткой:

После очистки:

Очистка данных сеанса:

  1. Я решил использовать CountVectorizer, также известный как Bag of Words, чтобы выполнить однократное кодирование для всех категориальных переменных в наших данных.
  2. Я использовал векторизатор tf-idf с n-grams(1,4) для кодирования действия функций, типа действия и деталей действия, чтобы получить информацию о серии.
  3. Я решил провести стандартизацию числовых характеристик
  4. Позже я собрал все выделенные данные в один файл с помощью функции «hstack» NumPy, чтобы их можно было передать нашей модели для тестирования и обучения.
  5. В итоге у меня более 3000 функций.

Интерпретация модели (СПОСОБ применения различных моделей)

ОЦЕНКА NDCG:

Подход с нормализованным дисконтированным кумулятивным выигрышем (NDCG) — это распространенный способ оценить, насколько хорош набор результатов поиска. Он делает следующее утверждение:

  1. Более полезными, чем умеренно релевантные результаты, которые более полезны, чем нерелевантные результаты, являются очень релевантные результаты (кумулятивный выигрыш).
  2. Чем раньше релевантные результаты отображаются в наборе результатов, тем они более ценны (дисконтирование).
  3. Результат ранжирования не должен быть связан с выполненным запросом (нормализация).

ОБУЧЕНИЕ МОДЕЛЯМ:

1. КНН:

Алгоритм k-ближайших соседей, иногда называемый KNN или k-NN, представляет собой классификатор с контролируемым обучением, который использует близость для создания классификаций или прогнозов относительно группировки одной точки данных.

  1. Я получил достойный результат по сравнению с Наивным Байесом после проведения настройки гиперпараметров значения «k» с использованием RandomSearchCV.
  2. Однако, поскольку KNN имеет высокую временную сложность, обучение и получение результатов заняло больше времени.
  3. Мне удалось получить оценку KNN NDCG 0,9297.

2. НАИВНЫЕ БАЙЕСЫ:

Наивный байесовский классификатор — это алгоритм, который классифицирует вещи, используя теорему Байеса. Сильная или наивная независимость между свойствами точек данных является предположением, сделанным наивными байесовскими классификаторами. Спам-фильтры, текстовый анализ и медицинская диагностика — вот некоторые примеры распространенных применений наивных байесовских классификаторов.

Наименее эффективной была эта модель! Это может быть результатом большей размерности моих данных (>3000). Поэтому я мало пишу об этом.

Рейтинг NDCG: 0,36

3. ДЕРЕВО РЕШЕНИЙ:

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

Я смог превзойти модель случайного леса после использования деревьев решений для создания нашей модели и некоторой гиперпараметрической оптимизации параметров дерева решений. Оценка NDCG, предоставленная этой моделью, составляет 0,9357.

4. ЛОГИСТИЧЕСКАЯ РЕГРЕССИЯ:

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

Я использовал логарифмическую потерю как свою потерю в логистической регрессии при использовании SGD. Вместо обычного C, который можно ожидать при работе с логистической регрессией, гиперпараметр в этом случае был альфа.

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

Оценка для NDCG: 0,8661

5. XG-BOOST:

Extreme Gradient Boosting (XGBoost) — это распределенная, масштабируемая платформа машинного обучения с градиентным усилением дерева решений (GBDT). Лучшая библиотека машинного обучения для задач регрессии, классификации и ранжирования, она предлагает параллельное повышение дерева.

Оценки n и максимальная глубина — это два параметра модели, по которым я выполняю всю настройку гиперпараметров. Я построил модель с помощью XGBoost.

Наконец, я смог получить 0,9362 балла на тестовых данных после обучения модели на наших данных.

6. СЛУЧАЙНЫЙ ЛЕС:

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

Я попытался использовать классификатор Random Forest с настройкой гиперпараметров, но мне не удалось получить конкурентоспособный результат. Мне удалось получить только 0,8252 балла NDCG.

7. ТАМОЖЕННЫЙ КЛАССИФИКАТОР УКЛАДКИ:

Кроме того, я использовал пользовательский классификатор стека в пользовательской модели, как показано ниже:

Я поровну разделил свои тренировочные данные. В нашей уникальной модели суммирования у нас есть n оценок, поэтому я создал n случайных выборок данных с заменой первых 50% данных. Мои n базовых моделей были обучены с использованием этих n образцов.

Я построил набор данных для оставшихся 50% данных, используя прогнозы каждой базовой модели, и использовал этот набор данных для обучения метамодели.

Я использовал данные CV, чтобы делать прогнозы после построения модели и обучения на данных поезда (которые мы разделили ранее). Используя эту модель, которая дала оценку 0,9565, мы смогли добиться вполне приличных результатов.

КРАТКОЕ СОДЕРЖАНИЕ

С общим баллом NDCG 0,9565 Stacking Classifier стал чемпионом среди всех.

  1. Здесь наблюдают за пользователем пять пунктов назначения. Эти пять мест перечислены в порядке вероятности того, что каждое из них будет посещено.
  2. Например, человек с идентификатором пользователя «5uwns89zht» имеет наибольшую вероятность того, что он не сделает бронирование (NDF = пункт назначения не найден = нет бронирования, что может указывать на то, что он посетил веб-сайт, чтобы что-то увидеть или найти).
  3. Следующими в нашей модели идут Франция, США, Италия и Испания. Поэтому, если он планирует сделать резервацию, его лучшим выбором должны быть Франция, США, Италия и Испания.

Развертывание с помощью STREAMLIT

Платформа приложений с открытым исходным кодом на основе Python называется Streamlit. Это позволяет нам быстро разрабатывать веб-приложения для науки о данных и машинного обучения. С ним совместимы основные библиотеки Python, такие как sci-kit-learn, Keras, PyTorch, SymPy (латекс), NumPy, pandas и Matplotlib.

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

Ссылка для посещения сайта: https://shradhanjalipradhan-airbnb-dep-s-dep-1-5lfz1h.streamlitapp.com/

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

Вы можете посмотреть видео-демонстрацию того же самого здесь:

Ссылка на канал: https://youtu.be/S8anQIfo9Yg

ОЦЕНКА KAGGLE

БУДУЩЕЕ ОБЛАСТЬ

  1. Кроме того, другие наборы данных, такие как нации и age_gender_bkts, могут использоваться для создания нового набора данных для обучения модели.
  2. Больше характеристик можно было бы собрать из данных сеанса, а также данных поезда.
  3. Для многих параметров модели возможна дополнительная настройка гиперпараметров.
  4. Для придания характеристик можно использовать различные подходы, такие как Word2vec или GloVe, взвешенные по TF-IDF.
  5. Это зафиксирует семантическое значение слов, еще больше повысив точность предсказания.

ССЫЛКА

  1. https://nycdatascience.com/blog/student-works/predicting-new-users-f
    irst-travel-destination-airbnb-capstone-project/
  2. https://www.diva-portal.org/smash/get/diva2:1108334/FULTEXT01.pdf

ССЫЛКА ДЛЯ ПОДКЛЮЧЕНИЯ

Linkedin: https://www.linkedin.com/in/shradhanjalipradhan/

GitHub: https://github.com/shradhanjalipradhan

YouTube: https://www.youtube.com/channel/UCaeQBkDw-VsPSgPB5B2dsQQ

Kaggle: https://www.kaggle.com/shradhanjalipradhan