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

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

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

  • Числовые данные. Этот тип данных также называется количественными данными. Числовые данные — это тип данных, выраженный в числах; числовые данные всегда собираются в числовой форме. Примеры числовых данных включают возраст, вес, рост и т. д. Числовые данные могут быть дискретными или непрерывными. Он дискретный, если данные конечны или могут быть подсчитаны, например, количество учеников в классе, и непрерывен, если данные не могут быть подсчитаны, например. возраст.
  • Категориальные данные: этот тип данных также называется качественными данными. Этот тип данных может храниться в группах или категориях с помощью имен или меток. Примерами категориальных данных являются пол, семейное положение, уровень образования и т. д.

Сиборн

Seaborn — это библиотека визуализации данных, построенная на основе matplotlib и тесно интегрированная со структурой данных pandas в python. Чтобы иметь возможность работать с Seaborn, нужно быть знакомым с Numpy, Pandas и matplotlib.
Seaborn очень популярен, потому что он прост в использовании и создает очень красивые графики. С помощью библиотеки Seaborn можно создать множество визуализаций, таких как countplot, barplot, violinplot и т. д. Большинство из них будет затронуто, так что давайте начнем.

Чтобы использовать библиотеку Seaborn в python, ее необходимо импортировать, а данные, которые будут использоваться, также должны быть загружены в ту же рабочую область. Мы будем использовать 2 разных набора данных: поэтому мы загружаем оба.

import pandas as pd
# Seaborn is always shortened as sns
import seaborn as sns
import matplotlib.pyplot as plt
# Load the dataset
mpg_data = pd.read_csv('mpg.csv')
print(mpg_data)
young_people_survey = pd.read_csv('young_people_survey_response.csv')
print(young_people_survey)

Барплот

Гистограмма также известна как столбчатая диаграмма. Гистограмма представляет категорию данных с длиной и высотой, которые пропорциональны значениям, которые они представляют. Он показывает связь между числовой и категориальной переменной. Каждый объект категориальной переменной представлен в виде полосы. Размер столбца представляет собой числовую переменную.
В Seaborn barplot легко создать, и вы также можете указать желаемую сводную статистику.

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

sns.barplot(data=mpg_data, x='origin', y='horsepower')
plt.show()

На гистограмме автомобили, созданные в США, имеют в среднем самую высокую мощность. Линия, проведенная в верхней части каждого столбца, представляет собой столбец погрешности, который является ошибкой или неопределенностью в сообщенном измерении, в данном случае неопределенностью в сообщенном среднем значении.
Эту функцию можно отключить с помощью параметра «ci» в гистограмме.
Примечание: горизонтальную гистограмму можно изменить на вертикальную, установив параметр «y» в гистограмме на категориальную переменную, равную сравнивать.

Пример: Гистограмма исходной точки в зависимости от миль на галлон (миль на галлон), но мы создадим вертикальную гистограмму, и «ci» будет отключено. Сводная статистика, которая будет использоваться для этой гистограммы, является медианой, и это можно сделать, установив параметр «оценщик» на медиану.

sns.barplot(data=mpg_data, y='origin', x='mpg', ci=False, estimator='median')
plt.show()

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

Граф

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

График подсчета очень легко создать с помощью seaborn, например, используя набор данных young_people_survey, будет создан график подсчета столбца пола.

sns.countplot(data=young_people_survey, x='Gender')
plt.show()

sns.countplot(data=young_people_survey, y='Gender')
plt.show()

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

Гистограмма

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

В качестве примера будет использоваться гистограмма переменной смещения из mpg_data.

sns.histplot(data=mpg_data, x='displacement')
plt.show()

Смещение имеет экспоненциальное распределение, потому что счетчики уменьшаются по мере увеличения смещения.
Примечание. Количество бинов можно увеличить или уменьшить с помощью параметра 'bins', а ось Y можно изменить. изменено на вероятность с использованием аргумента «статистика».
Это будет показано с использованием столбца веса в mpg_data

sns.histplot(data=mpg_data, x='weight', stat='probability', bins=10)
plt.show()

Судя по приведенному выше графику, автомобили с массой от 2000 до 2500 чаще встречаются в mpg_data с вероятностью выше 20%.

График оценки плотности ядра

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

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

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

kdeplot можно создать на гистограмме, установив для параметра «kde» в histplot значение True.

sns.histplot(data=mpg_data, x='displacement', kde=True)
plt.show()

Блочная диаграмма

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

Блочная диаграмма содержит прямоугольник, этот прямоугольник обозначает межквартильный диапазон данных, левый край прямоугольника обозначает 25-й процентиль (1-й квартиль), а правый край прямоугольника обозначает 75-й процентиль (3-й квартиль). От прямоугольника отходят две линии, эти линии называются усами, одна слева представляет Q1 (1-й квартиль) — 1,5 * IQR (межквартильный диапазон),и справа представляет Q3 (3-й квартиль) + 1,5 * IQR (межквартильный диапазон),значения за пределами этих усов считаются выбросами.
Подробное изображение диаграммы показано ниже

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

sns.boxplot(data=mpg_data, x='horsepower')
plt.show()

Из диаграммы большая часть данных находится в диапазоне от 50 до 200, 1-й квартиль равен 75, медиана ниже 100, 3-й квартиль равен 125, а значения выше 200 считаются выбросами. Теперь вы можете увидеть силу коробочных диаграмм; мы получили 5 различных сводных статистических данных с одного участка. Далее диаграмма лошадиных сил, классифицированная по модели_года.

sns.boxplot(data=mpg_data, x='model_year', y='horsepower')
plt.show()

На приведенной выше диаграмме видно, что в среднем автомобили с model_year 70 имеют наибольшую мощность, а автомобили с model_year 80 и 81 занимают последнее место по мощности.

скрипкасюжет

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

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

sns.violinplot(data=mpg_data, x='weight')
plt.show()

На изображении выше видно, что большинство автомобилей весят от 1800 до 1500, 1-й квартиль — около 2200, медиана — около 2800, 3-й квартиль — около 3500, и данные искажены правильно.
Еще например, чтобы проверить, как распределение веса автомобилей отличается в зависимости от происхождения

sns.violinplot(data=mpg_data, x='weight', y='origin')
plt.show()

Судя по графику выше, автомобили из США в среднем весят больше. У автомобилей из Японии вес распределен примерно равномерно, у автомобилей из США вес сильно различается, в то время как у автомобилей из Европы вес распределен правильно.

Точечный график

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

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

sns.pointplot(data=young_people_survey, x='Age', y='Gender')
plt.show()

Из приведенной выше диаграммы средний возраст опрошенных женщин составляет 20,1 года, а мужчин - 20,9 лет. Разброс возраста обоих полов относительно их среднего значения примерно одинаков.
Примечание. Если диаграмма построена без указания оценочного значения, по умолчанию используется среднее значение.
Другим примером является точечный график миль на галлон по происхождению из mpg_data с использованием медианы в качестве оценки

sns.pointplot(data=mpg_data, x='origin', y='mpg', estimator='median')
plt.show()

Судя по графику, у автомобилей из Японии самый высокий средний расход на галлон.

диаграмма рассеяния

Диаграмма рассеяния используется для отображения взаимосвязи между двумя числовыми переменными в наборе данных. Это график, на котором значения двух числовых переменных нанесены по двум осям, а структура результирующих точек выявляет любую присутствующую корреляцию. Независимая переменная или предиктор откладывается по оси x, а зависимая переменная или метка — по оси y.

Пример. В mpg_data давайте возьмем mpg в качестве зависимой переменной, и будет создана диаграмма рассеяния между mpg и рабочим объемом.

sns.scatterplot(data=mpg_data, x='displacement', y='mpg')
plt.show()

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

Стриптиз

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

Пример: полосовая диаграмма миль на галлон в mpg_data, чтобы увидеть, как она распределяется

sns.stripplot(data=mpg_data, x='mpg')
plt.show()

Судя по графику, минимальное количество миль на галлон в наших данных составляет около 8, а максимальное чуть выше 45. Расход на галлон равномерно распределяется между 15–38,значениямиль на галлон. примерно нормально распределены.
Еще один пример — посмотреть, как расход топлива (мили на галлон) распределяется по происхождению

sns.stripplot(data=mpg_data, x='mpg', y='origin')
plt.show()

Из диаграммы видно, что в Японии и Европе нет автомобилей с расходом менее 20 миль на галлон. Автомобили из США по-прежнему равномерно распределены по данным по сравнению с Японией и Европой, но автомобили из США имеют расход менее 20 миль на галлон. 40.

Линейный график

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

Пример: может потребоваться проверить, как вес автомобилей зависит от года выпуска, линейный график является лучшим кандидатом для визуализации этого.
Примечание: линейный график в Seaborn по умолчанию включает доверительный интервал (5, 95) к сюжету

sns.lineplot(data=mpg_data, x='model_year', y='weight')
plt.show()

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

sns.lineplot(data=mpg_data, x='model_year', y='weight', ci=False)
plt.show

График регрессии

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

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

Для отработки regplot будут импортированы новые данные, это данные о выбросах CO2 автомобилями в Канаде.

co2_data = pd.read_csv('co2_emissions_canada.csv')
co2_data.head()

Данные содержат расход топлива и выбросы СО2, и будет построен график регрессии выбросов СО2 в зависимости от расхода топлива. Расход топлива является независимой переменной, а выбросы CO2 — зависимой переменной.

sns.regplot(data=co2_data, x='Fuel Consumption Comb (L/100 km)', 
             y='CO2 Emissions(g/km)')
plt.show()

Судя по графику, расход топлива сильно положительно коррелирует с выбросами СО2, поэтому он является отличным предиктором выбросов СО2, но мы видим, что некоторые данные отклоняются далеко от линии тренда, поэтому может потребоваться некоторая очистка данных.

Остаточный участок

Residplot означает остаточный участок. В регрессионной модели прогнозируемые значения целевых переменных не всегда совпадают с фактическими значениями. Остаток означает разницу между прогнозируемым значением и фактическим значением. Для идеальной модели среднее значение невязки будет равно 0, но хорошая модель должна иметь значения, близкие к 0.
Диаграмма остатка регрессирует y по x, а затем рисует диаграмму рассеяния остатков, другими словами, остаточная диаграмма отображает остаток модели линейной регрессии.

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

sns.residplot(data=co2_data, x='Fuel Consumption Comb (L/100 km)',
                   y='CO2 Emissions(g/km)')
plt.show()

Из остаточного графика видно, что некоторые данные отдаляются от 0, что мы и заметили, когда строили regplot.

Совместный сюжет

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

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

sns.jointplot(data=co2_data, x='Fuel Consumption Comb (L/100 km)',
                  y='CO2 Emissions(g/km)')
plt.show()

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

Парный сюжет

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

Пример: Создайте парный график co2_data

sns.pairplot(data=co2_data)
plt.show()

Судя по парному графику, большинство числовых данных распределены нормально, за исключением данных о цилиндрах, которые кажутся дискретными числовыми данными. Парная диаграмма — отличный инструмент, потому что это быстрый способ получить представление обо всех числовых данных, присутствующих в наборе данных.
Примечание: диагональную диаграмму можно изменить на kdeplot с помощью параметра «diag_kind». Установите для параметра «diag_kind» значение «kde».

sns.pairplot(data=co2_data, diag_kind='kde')
plt.show()

Тепловая карта

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

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

Корреляция находится в диапазоне от -1 до 1, где 1 означает абсолютно положительную корреляцию, 0 означает отсутствие корреляции и -1 означает абсолютно отрицательную корреляцию.
Пример: тепловая карта, визуализирующая корреляцию между всеми числовыми переменными в mpg_data

# Select only the numerical variables in mpg_data
numerical_data = mpg_data.select_dtypes(include='number')
# Calculate the correlation of the numerical variables
num_correlation = numerical_data.corr()
# Create the heatmap
sns.heatmap(data=num_correlation)
plt.show()

Использование тепловой карты для отображения корреляции дает такой график: если две числовые переменные имеют высокую положительную корреляцию, прямоугольник, который их представляет, будет светлым, а если два числовых данных сильно отрицательно коррелированы, прямоугольник, который их представляет, будет темным. Интенсивность цвета прямоугольника зависит от того, насколько сильно положительно или сильно отрицательно коррелируют две сравниваемые переменные. Даже при таком объяснении график корреляции по-прежнему трудно интерпретировать, для облегчения интерпретации добавляется коэффициент корреляции двух сравниваемых переменных. Это делается установкой аргумента annot в значение True.

sns.heatmap(data=num_correlation, annot=True)
plt.show()

Тепловая карта теперь очень легко интерпретируется.

Я пока остановлюсь здесь😨
Чтобы не сделать эту статью слишком длинной, она будет продолжена в «Введение в визуализацию данных с использованием Seaborn — Seaborn Complete Guide Part 2».

Большое спасибо, что дошли до этого момента. Пожалуйста, подпишитесь, чтобы получать больше таких статей, и если вам понравилась эта статья, поставьте мне лайк👏.
Если у вас есть какие-либо вопросы, пожалуйста, оставьте комментарий.