"Анализ данных"

Исследовательский анализ данных (EDA) - практический набор данных NYC Airbnb

Полное руководство по изучению и анализу набора данных NYC Airbnb

Я начал серию, чтобы объяснить исследовательский анализ данных (EDA) с конкретным набором данных, чтобы помочь лучше понять EDA. EDA - это широкий подход, включающий разные способы реализации, он варьируется от набора данных к набору данных. Чтобы узнать основы EDA, ознакомьтесь с этой статьей, поскольку в ней дается обзор EDA, в то время как эта статья написана, чтобы сосредоточиться на практической практике EDA, а не на основах EDA.

Что такое исследовательский анализ данных (EDA)?

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

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

Начнем с практической реализации. Перед этим помните;

EDA процесс

  1. Вопрос
  2. Проверять
  3. Напишите
  4. Повторить

Набор данных

Загрузите набор данных из: Данные NYC Airbnb

ПОМНИТЕ: Цель состоит в том, чтобы спрогнозировать стоимость аренды по заданным данным.

Примечание. Я только что объяснил некоторые шаги для EDA в NYC Airbnb, чтобы получить интуитивное представление о приближении EDA для решения любой проблемы. Чтобы узнать больше об этом наборе данных, посетите Github.

Попытайтесь разобраться в данных.

Например: Задавайте такие вопросы, как;

Сколько столбцов в наборе данных?

Каковы типы данных этих столбцов?

Сколько точек данных содержат некоторые нулевые значения? т.е. отсутствующие значения

Как заменить эти недостающие значения?

Сколько точек данных в наборе данных?

Каков диапазон всех столбцов с числами?

Каковы средние, медианные, режимы, процентили и т. Д. Значения характеристик?

Сколько значений для этой конкретной функции в каком-то диапазоне?

Попробуйте ответить или подтвердить эти или подобные вопросы следующим образом:

Теперь проверьте результат и запишите наблюдение. Например:

Результат data.dtypes будет следующим:

И наблюдение может быть:

  • некоторые столбцы содержат текст, поэтому, возможно, потребуется использовать BoW, tfidf, w2vec и т. д. для моделирования данных.

Точно так же вывод data.isnull (). Sum ():

И наблюдение может быть:

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

Итак, следующее - заменить эти нулевые значения, как показано в приведенном выше фрагменте кода.

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

Выход:

Наблюдение:

  • Большинство цен меньше 1000.

Теперь,

Наблюдение:

  • Всего имеется 239 дата-точек со стоимостью аренды ›1000.
  • Это либо супер щедрые листинги, либо возможна ошибка при вводе. Тем не менее, поскольку эти записи искажают наши данные, мы можем рассматривать их как выбросы и отбрасывать.

Выход:

Выход:

Наблюдения:

  • Это своего рода распределение Гаусса для значений арендной платы ‹250.
  • Учитывая, что порог = 250 - хороший вариант.

Точно так же пытаемся узнать разные особенности набора данных.

Выход:

Наблюдение:

  • Покрыто почти 90% данных.

Выход:

Наблюдение:

  • Есть 5 групп, и 85% покрываются Manhattan & Brooklyn.

Выход:

  • Здесь мы можем отметить, что в Бруклине и Манхэттене, как правило, больше объявлений с ценой ›150. Кроме того, большинство объявлений с ценой выше› 100 - это целые типы домов, за которыми следуют отдельные комнаты и общие комнаты, которые являются самыми дешевыми.
  • После изучения функций рекомендуется отбросить функции, которые не важны для прогнозирования.

Теперь,

Также важна проверка корреляции между функциями;

Изучение особенности типа номера;

Выход:

  • Как правило, это комната целиком или отдельная комната.

Обнаружение выбросов также является важной задачей во время EDA. Теперь исследуем столбец minimum_nights;

Выход:

  • Это довольно странно, диапазон колеблется от 1 ночи до 1250 ночей. Судя по графику, большинство ночей до 100 лет.

Выход:

  • Только 747 точек данных имеют количество minimum_nights ›30, поэтому замените все на 30.

Теперь построим график корреляции для всех функций;

Выход:

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

Вы можете найти исходный код на Github.

Если у вас есть вопросы или предложения, свяжитесь со мной в LinkedIn.

Использованная литература: