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

Содержание

  • Что такое KDE plot?
  • Как визуализировать график KDE с помощью Seaborn?
  • График KDE для набора данных Iris
  • Заключение

Что такое KDE plot?

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

Чтобы использовать модуль Seaborn, нам нужно установить его с помощью следующей команды:

!pip install seaborn

Синтаксис: 

seaborn.kdeplot(x=None, *, y=None, vertical=False, palette=None, **kwargs)

Параметры:

x, y : векторы или ключи в данных

vertical : логическое значение (True или False)

data : pandas.DataFrame, numpy.ndarray, отображение или последовательность

Как визуализировать график KDE с помощью Seaborn?

Мы изучаем использование некоторых параметров на нескольких конкретных примерах:

Импорт библиотек

Сначала импортируйте соответствующую библиотеку

import pandas as pd
import seaborn as sb
import numpy as np
from matplotlib import pyplot as plt
%matplotlib inline

Нарисуйте простое одномерное изображение kde:

Давайте посмотрим на Kde для нашей переменной по оси X и по оси Y. Для этого передадим переменную x в метод kdeplot().

# data x and y axis for seaborn
x= np.random.randn(200)
y = np.random.randn(200)

# Kde for x var
sns.kdeplot(x)

Вывод:

Затем после проверки наличия оси y.

sns.kdeplot(y)

Вывод:

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

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

sns.kdeplot(x, shade = True)

Вывод:

Вы можете изменить цвет оттенка с помощью атрибутов color:

sns.kdeplot(x, shade = True , color = "Green")

Вывод:

Используйте вертикальную линию для рисования, чтобы указать, нужно ли рисовать по оси X или по оси Y

sns.kdeplot(x, vertical = True)

Вывод:

Создайте двумерный Kdeplot для двух переменных:

Просто передайте две переменные в метод seaborn.kdeplot().

sns.kdeplot(x,y)

Вывод:

Затенение области, покрытой кривой, с помощью затенения атрибутов:

sns.kdeplot(x,y, shade = True)

Вывод:

Теперь вы можете изменить цвет с помощью cmap атрибутов:

sns.kdeplot(x,y, cmap = "winter_r")

Вывод:

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

sns.kdeplot(x, y, shade=True, cbar=True)

Вывод:

График KDE для набора данных Iris

Давайте рассмотрим пример с набором данных Iris, в котором для каждого столбца широкоформатного набора данных строится распределение:

Набор данных Iris состоит из 3 различных типов ирисов (Setosa, Versicolour и Virginica) с разной длиной лепестков и чашелистиков, сохранённых в массиве NumPy размером 150×4

Загрузка набора данных iris для Kdeplot:

iris = sns.load_dataset('iris')
iris

Вывод:

Двумерный Kdeplot для двух переменных iris:

Как только мы зададим виды, если мы захотим просто вычислить длину и ширину лепестков, то просто передадим две переменные (Setosa и virginica) в метод seaborn.kdeplot().

setosa = iris.loc[iris.species=="setosa"]
virginica = iris.loc[iris.species == "virginica"]
sns.kdeplot(setosa.petal_length, setosa.petal_width)

Вывод:

Рассмотрим другой пример, если мы хотим вычислить другой атрибут переменной — sepal_width и sepal_length.

sns.kdeplot(setosa.sepal_width, setosa.sepal_length)

Вывод:

Если мы передадим два отдельных Kdeplot с разными переменными:

sns.kdeplot(setosa.petal_length, setosa.petal_width)
sns.kdeplot(virginica.petal_length, virginica.petal_width)

Вывод:

Заключение

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