Попробуйте Seaborn: Ultimate Seaborn для EDA!

Визуализация данных — это начальный этап анализа данных (EDA), а Seaborn — это мощная библиотека Python, которая позволяет нам легко выявлять скрытые данные с помощью статистических графиков. В этом техническом блоге мы поговорим о различных функциях построения графиков Seaborn и о том, как их использовать для эффективного анализа данных.

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

  1. советы
  2. полеты
  3. Ирис
  4. титанический

Эти наборы данных включают категориальные и числовые данные, которые будут сопровождать нас в процессе анализа данных!

Если вы используете Jupyter Notebook или Google Colab, все готово! Поскольку он имеет предустановленные библиотеки Python для анализа и визуализации данных, такие как numpy, pandas, matplotlib и seaborn.

Импортируем Seaborn и загружаем набор данных игрушек:

import seaborn as sns

#example on how to load the dataset
iris_dataset = sns.load_dataset('iris')

Мы сосредоточимся на построении числовых и категориальных данных отдельно, используя в основном двумерный / многомерный анализ, а также краткий обзор одномерного анализа.

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

Параметры, которые помогают нам проводить многомерный анализ:

  1. вид: указывает тип графика (например, «точечный» для точечной диаграммы).
  2. оттенок: добавляет цветовую дифференциацию на основе категориальной переменной.
  3. стиль: различает точки данных с помощью разных стилей маркеров.
  4. размер: изменяет размер маркера на основе числовой переменной.
  5. размеры: настройка диапазона размеров маркеров.
  6. разделение: используется для определенных графиков для создания разделенных представлений.
  7. annot: добавляет к графику текстовые аннотации.

Построение графика с числовыми данными: использование replot — диаграмма рассеяния

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

#plain scatterplot
sns.relplot(x=’total_bill’, y=’tip’, kind=’scatter’, data=data)
#scatterplot with parameters
sns.relplot(x='total_bill',y='tip',hue='smoker',style='sex',size='size',sizes=(15,200),data=data)

Построение графика с категориальными данными: использование catplot

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

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

Категорийные диаграммы рассеяния

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

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

sns.catplot(x='day',y='tip',kind='strip',data=data)

б. Swarmplot: обеспечивает распределение точек данных, работает аналогично полосовой диаграмме, но позволяет избежать перекрытия между точками данных.

sns.catplot(x=’day’, y=’tip’, kind=’swarm’, hue=’sex’, data=data)

Категориальные Графики распределения

Графики категориального распределения — это графики, которые помогают визуализировать распределение одной числовой переменной в различных категориях.

а. Boxplot: способ отображения распределения данных на основе пяти номеров. сводка (мин., первый квартиль (Q1), медиана, третий квартиль (Q3), макс.). Он также может определить, симметричны ли данные.

#bivariate analysis
sns.catplot(x='day',y='total_bill',kind='box',hue='sex',data=data)
#univariate analysis
sns.catplot(x='day',y='total_bill',kind='box',data=data)

б. График скрипки: объединяет коробчатый график с представлением функции плотности вероятности (PDF).

#bivariate analysis
sns.catplot(x='day',y='total_bill',kind='violin',hue='sex',split=True,data=data)
#univariate analysis
sns.catplot(x='day',y='total_bill',kind='violin',data=data)

КатегориальныйГрафики оценки

Графики категориальной оценки — это графики, которые используются для оценки и визуализации совокупной статистики (например, среднего значения, медианы) числовых переменных в различных категориях.

а. Гистограмма: показывает полосы ошибок и рассчитывает средние значения.

#bivariate analysis
sns.catplot(x='smoker', y='total_bill', kind='bar', data=data)
#univariate analysis
sns.catplot(x='smoker', y='tip', kind='bar', hue='sex', estimator=np.median, data=data)

б. Countplot: Визуализирует количество категориальных данных.

sns.catplot(x=’sex’, kind=’count’, hue=’smoker’, data=data)

Категорные графики

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

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

#plain heatmap
sns.heatmap(x)
#heatmap with parameters
sns.heatmap(x, cbar=False, linewidths=0.5, annot=True, fmt='d', cmap='summer')

б. Карты кластеров: группирует похожие строки и столбцы на основе выбранной метрики.

sns.clustermap(x, z_score=0, annot=True, row_cluster=True, metric='correlation')

Параллельные графики

Параллельные графики позволяют создавать несколько графиков, расположенных в сетке, для сравнения различных аспектов ваших данных.

а. Jointplot: Создает многопанельную фигуру, отображающую двумерные отношения. Его можно использовать четырьмя способами:

#Scatter
sns.jointplot(x='total_bill', y='tip', data=data)
#Hexbin 
sns.jointplot(x='total_bill', y='tip', kind='hex', data=data) (hexplot - 2D histogram)
#KDE
sns.jointplot(x='total_bill', y='tip', kind='kde', data=data)
#Regression
sns.jointplot(x='total_bill', y='tip', kind='reg', data=data) (linear regression - for prediction)

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

#pairplots with hue parameter
sns.pairplot(iris, hue='species')
#pairplots with no parameter
sns.pairplot(iris)

в. Дисплей: комбинация гистограммы KDE (функция плотности вероятности). Полезно для визуализации числовых данных.

#Creating a displot
sns.distplot(titanic['age'])
#Creating a histogram
sns.distplot(titanic['age'], bins=10, kde=False)
#Creating a KDE (Probability Density Function) 
sns.distplot(titanic['age'], hist=False)

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

Приятной визуализации!