Цель этой статьи - создать основу для анализа данных, представленных 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, который можно легко заменить.
Спасибо, что прочитали статью, смело используйте репо, предоставленное для ваших экспериментов.