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

Вот ссылка на репозиторий GitHub, который предоставляет доступ к записной книжке Python и пошаговую документацию по настройке проекта:
https://github.com/rafayullah/Airbnb

1. Сбор данных

На платформе размещаются обновленные данные о листингах Airbnb. В этом проекте можно использовать данные из любого желаемого места, однако этот анализ проводился на основе данных Бостона. Также можно использовать данные из разных мест, и их можно объединить с помощью панд.

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

2. Предварительная обработка данных

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

  • Преобразование даты в формат pandas DateTime
  • Удаление символов валюты из цены и преобразование ее в непрерывный тип данных с плавающей запятой позже поможет модели предсказывать непрерывные значения.
  • Удаление символов процентов для некоторых функций, таких как процент приема, чтобы преобразовать их в целые числа.
  • Этот шаг, удаляя выбросы, по сути, выполняется для того, чтобы отклонения, присутствующие в данных, не отражались в нашей статистике и моделировании:

3. Особенности разработки

Для дальнейшего расширения набора функций необходимо проанализировать некоторые столбцы, например, столбцы «host_verifications» и «Удобства» могут быть дополнительно обработаны и проанализированы, чтобы их можно было использовать в качестве эффективного источника информации. В качестве образца, вот столбец удобств и проверок хоста, содержащий списанные по умолчанию значения:

После соответствующей предварительной обработки, выполненной с помощью функций (get_unique_features и get_list_as_features), мы получаем следующие результаты:

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

4. Статистический анализ.

Ниже показано распределение частоты объявлений в течение 2020 года:

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

Теперь давайте посмотрим, существует ли корреляция между количеством объявлений, опубликованных за определенный период времени, и их средней ценой:

На рисунке показана корреляция между количеством объявлений и средней ценой. По мере увеличения количества объявлений средняя цена на них увеличивается пропорционально.

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

5. Модельное обучение

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

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

6. Оценка модели

Можно четко увидеть, что такие функции, как facebook, jumio, Government_id и т. Д., Вносят свой вклад в разработку модели.

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

7. Будущие улучшения модели.

Анализ настроений

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

Спасибо, что прочитали статью, смело используйте репо, предоставленное для ваших экспериментов.