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

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

В этом блоге я расскажу о небольшом проекте, реализованном под руководством и наставничеством Удеми. Проект вводит данные из Kaggle и обрабатывает удобный набор из 911 звонков, совершаемых во время чрезвычайной ситуации.

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

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

NumPy - поддерживает создание одномерных массивов, двухмерных матриц и высокопроизводительных функций для работы с этими векторами / матрицами.

Pandas - помогает в анализе и манипулировании данными, предлагает высококачественные функции для этих целей.

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

Seaborn - мощная библиотека визуализации данных, созданная на основе Matplotlib для улучшения графического представления. Cufflinks и Plotly - расширенные библиотеки визуализации, построенные на Matplotlib.

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

Теперь давайте поиграемся с нашими данными и ответим на несколько вопросов:

В.1) Какие 5 почтовых индексов для звонков службы экстренной помощи?

В.2) Какие 5 поселков (TWP) входят в число наиболее часто звонящих в службу 911?

Q.3) Посмотрите на столбец «title», сколько там уникальных кодов заголовков?

Визуализация данных

В столбце заголовков нашего набора данных перед кодом заголовка указаны «Причины / Отделы». Это EMS, Fire и Traffic. Давайте воспользуемся функцией .apply () с настраиваемым лямбда-выражением, чтобы создать новый столбец с именем «Reason», содержащий это строковое значение. Давайте посмотрим на количество причин возникновения аварийной ситуации.

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

Теперь давайте сосредоточимся на информации о времени в нашем наборе данных. Значения столбца timeStamp относятся к строковому типу данных и преобразуются в объекты DateTime. Мы разбиваем время на 3 отдельные части - час, месяц и день недели.

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

Для лучшего понимания мы будем делать одно и то же сопоставление для каждого месяца.

Теперь мы создадим объект, используя функцию groupby (), где мы сгруппируем DataFrame по столбцу месяца и будем использовать метод count () для агрегирования. Мы будем использовать метод head () для этого возвращенного DataFrame.

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

Теперь посмотрим, сможем ли мы использовать функцию seaborn lmplot () для линейной аппроксимации количества вызовов в месяц. Нам может потребоваться сбросить индекс до столбца

Теперь наша задача - создать новый столбец «Дата», который будет содержать дату из столбца timeStamp. Вам нужно будет использовать apply вместе с методом .date (). После того, как мы закончили с функцией .apply (), мы сгруппируем этот столбец Date с агрегатом count () и создадим график количества вызовов службы 911.

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

Мы почти закончили с разделом визуализации данных, и нам осталось только обсудить тепловые карты и карты кластеризации. Давайте рассмотрим эти две темы, рассмотрев код

Перейдем к созданию тепловых карт с морскими данными и нашими данными. Сначала нам нужно реструктурировать фрейм данных, чтобы столбцы стали часами, а индекс - днем ​​недели. Есть много способов сделать это, но я бы порекомендовал объединить groupby с методом unstack.

Метод unstack () → Разверните уровень (обязательно иерархического) индексных меток. Метод возвращает фрейм данных, имеющий новый уровень меток столбцов, самый внутренний уровень которого состоит из меток поворотных индексов. Если индекс не является MultiIndex, результатом будет серия. Если объяснению не хватает ясности, я прошу вас просмотреть материалы, доступные в Интернете.

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

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

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

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

Надеюсь, вам понравится, оставайтесь в безопасности и продолжайте вести блог!

Спасибо Udemy и Kaggle за их значительную поддержку