"Анализ данных"
Исследовательский анализ данных (EDA) - практический набор данных NYC Airbnb
Полное руководство по изучению и анализу набора данных NYC Airbnb
Я начал серию, чтобы объяснить исследовательский анализ данных (EDA) с конкретным набором данных, чтобы помочь лучше понять EDA. EDA - это широкий подход, включающий разные способы реализации, он варьируется от набора данных к набору данных. Чтобы узнать основы EDA, ознакомьтесь с этой статьей, поскольку в ней дается обзор EDA, в то время как эта статья написана, чтобы сосредоточиться на практической практике EDA, а не на основах EDA.
Что такое исследовательский анализ данных (EDA)?
- Как убедиться, что вы готовы использовать алгоритмы машинного обучения в проекте?
- Как выбрать наиболее подходящие алгоритмы для вашего набора данных?
- Как определить переменные функции, которые потенциально могут быть использованы для машинного обучения?
Исследовательский анализ данных (EDA) помогает ответить на все эти вопросы, обеспечивая наилучшие результаты для проекта. Это подход к обобщению, визуализации и близкому знакомству с важными характеристиками набора данных.
Начнем с практической реализации. Перед этим помните;
EDA процесс
- Вопрос
- Проверять
- Напишите
- Повторить
Набор данных
Загрузите набор данных из: Данные 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.