Практическое руководство с множеством примеров сюжетов

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

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

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

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

Я думаю, мы четко подчеркнули важность распределения данных. Теперь мы можем приступить к примерам.

Мы будем использовать набор страховых данных, который вы можете получить в Kaggle. Первый шаг - импортировать библиотеки и прочитать набор данных в фреймворке Pandas.

import numpy as np
import pandas as pd
import seaborn as sns
sns.set(style='darkgrid')
insurance = pd.read_csv("/content/insurance.csv")
insurance.head()

Набор данных содержит некоторые показатели (т.е. характеристики) клиентов страховой компании и сумму, взимаемую за страхование.

Первый тип визуализации, который мы увидим, - это гистограмма. Он делит диапазон значений непрерывных переменных на дискретные ячейки и показывает, сколько значений существует в каждой ячейке.

Ниже представлена ​​основная гистограмма переменной bmi.

sns.displot(insurance, x='bmi', kind='hist', aspect=1.2)

Мы можем использовать функцию displot для seaborn и указать тип распределения с помощью параметра kind. Переменная аспекта регулирует соотношение высоты и ширины фигуры.

Переменная bmi имеет нормальное распределение, за исключением нескольких выбросов выше 50.

Функция displot позволяет добавлять график kde поверх гистограмм. График kde (оценка плотности ядра) - это непараметрический способ оценки функции плотности вероятности случайной величины.

sns.displot(insurance, x='bmi', kind='hist', kde=True, aspect=1.2)

У нас есть возможность создать только график kde, установив параметр kind в функции displot как «kde». В этом случае нам не нужно использовать параметр kde.

Мы можем построить распределение одной переменной отдельно на основе категорий другой переменной. Один из способов - использовать параметр оттенка. На рисунке ниже показана гистограмма переменной bmi отдельно для курильщиков и некурящих.

sns.displot(insurance, x='bmi', kind='hist', hue='smoker', aspect=1.2)

Мы также можем отображать столбцы бок о бок с помощью параметра multiple.

sns.displot(insurance, x='bmi', kind='hist', hue='smoker', multiple='dodge', aspect=1.2)

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

sns.displot(insurance, x='charges', kind='hist', hue='smoker', col='sex', height=6, aspect=1)

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

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

sns.displot(insurance, x='charges', y='bmi', kind='hist',
height=6, aspect=1.2)

На этом рисунке показано распределение переменных bmi и зарядов. Более темные части сетки более плотные с точки зрения количества точек данных (то есть строк), которые они содержат.

Еще одна особенность, которую мы можем использовать в распределениях, - это коврик. Он рисует отметки вдоль осей x и y для представления предельных распределений. Давайте добавим ковровый график к двухмерной гистограмме, созданной на предыдущем шаге.

sns.displot(insurance, x='charges', y='bmi', kind='hist', rug=True,
height=6, aspect=1.2)

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

Параметр оттенка также можно использовать с двумерными гистограммами.

sns.displot(insurance, x='charges', y='bmi', kind='hist',rug=True, hue='smoker',height=6, aspect=1.2)

Мы также можем создавать двумерные графики kde. Например, график ниже является версией kde предыдущей двумерной гистограммы.

sns.displot(insurance, x='charges', y='bmi', kind='kde',rug=True, hue='smoker',height=6, aspect=1.2)

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

sns.displot(insurance, x='charges', y='bmi', kind='kde',rug=True, hue='smoker',fill=True, height=6, aspect=1.2)

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

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

sns.jointplot(data=insurance, x='charges', y='bmi', hue='smoker', height=7, ratio=4)

Заключение

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

Seaborn предлагает множество высокоуровневых функций для построения графиков распределения. Мы также можем комбинировать различные виды графиков для создания более информативных визуализаций. В этой статье мы увидели, как использовать в этом смысле функции displot и Jointplot.

Спасибо за чтение. Пожалуйста, дайте мне знать, если у вас есть какие-либо отзывы.