Автор оригинала: Pankaj Kumar.
Сюжеты плотности в Python – комплексный обзор
Участок плотности используется для визуализации распределения непрерывной численной переменной в наборе данных. Это также известно как Плотность ядра.
Это хорошая практика, чтобы хорошо узнать ваши данные, прежде чем начать применять какие-либо методы обучения машины.
В качестве хорошего ML-практикующего мы должны задавать такие вопросы, как:
- Как выглядят наши данные?
- Обычно это распространяется или имеет некоторую другую форму?
- Алгоритмы, которые мы намереваемся применить к нашим данным, у него есть какие-либо основные предположения о распределении данных?
Регистрация таких вопросов сразу после того, как мы приобретеем наши данные, могут значительно улучшить результаты на более поздних этапах и сэкономить нам много времени.
Сюжеты, такие как гистограммы и графики плотности, служат нам способы ответить на упомянутые выше вопросы.
Зачем понимать гистограммы перед изучением графиков плотности?
Участок плотности очень аналогичен гистограмме. Мы визуализируем форму распределения с использованием гистограммы. Гистограммы могут быть созданы путем биния данных и сохранение количества наблюдений в каждом корзине. На гистограмме ось Y обычно обозначает количество корпусов, но также может быть представлено в количестве на единицу, также называемую как плотности.
Если мы увеличиваем количество контейнеров в нашей гистограмме, форма распределения кажется гладкой.
Теперь представьте плавную непрерывную линию, проходящую через верхнюю часть каждого корзина, создавая контур формы нашего распределения. В результате мы получаем то, что мы называем сюжетом плотности.
Понимание графика плотности
Мы можем подумать о разах плотности как участки сглаженных гистограмм, что сейчас довольно интуитивно понятно. Графики плотности в основном используют к Оценка плотности ERELEL Отказ Оценка плотности ядра позволяет более плавать распределения, сглаживая шум.
Участки плотности не подвержены количеству мусорных веществ, которые являются основным параметром, когда следует учитывать гистограммы, следовательно, позволяет нам лучше визуализировать распределение наших данных.
Таким образом, в резюме это так же, как гистограмма, но имеющая гладкую кривую, нарисованную в верхней части каждого корзина.
Существует несколько форм распределений в дикой природе. Некоторые из наиболее распространенных форм, которые мы бы очень могли столкнуться:
Плотность сюжетов с Python
Мы можем построить график плотности во многих отношениях с использованием Python. Давайте посмотрим на несколько часто используемых методов.
1. Использование модуля Python Scipy.Stats
Scipy.Stats
Модуль дает нам gaussian_kde
класс, чтобы узнать плотность для данных данных.
import numpy as np import matplotlib.pyplot as plt from scipy.stats import gaussian_kde data = np.random.normal(10,3,100) # Generate Data density = gaussian_kde(data) x_vals = np.linspace(0,20,200) # Specifying the limits of our data density.covariance_factor = lambda : .5 #Smoothing parameter density._compute_covariance() plt.plot(x_vals,density(x_vals)) plt.show()
Мы меняем функцию COVARICE_FACTOR
из gaussian_kde
Класс и пропустите разные ценности, чтобы получить более гладкий участок. Не забудьте позвонить _compute_covariance
После изменения функции.
2. Использование модуля kdeplot kdeplot
Meeborn Module предоставляет нам более простой способ выполнить вышеуказанную задачу с гораздо большей гибкостью.
import numpy as np import seaborn as sb import matplotlib.pyplot as plt data = np.random.normal(10,3,300) #Generating data. plt.figure(figsize = (5,5)) sb.kdeplot(data , bw = 0.5 , fill = True) plt.show()
Морской kdeplot
Требуется одноразовый массив данных или объект серии PandaS в качестве входного аргумента. BW
Аргумент эквивалентен COVARICE_FACTOR
из gaussian_kde
класс продемонстрирован выше. Мы можем передать заполнить
= Ложь
Чтобы не заполнить область под кривой с цветом и просто построит кривую.
3. Использование функции графика Pandas
Пандас Сюжет
Способ также может быть использован для участков плотности, предоставляя добрый
в качестве входного аргумента к нему.
import numpy as np import pandas as pd import matplotlib.pyplot as plt x_values = np.random.random(10,3,300) #Generating Data df = pd.DataFrame(x_values, columns = ['var_name'] ) #Converting array to pandas DataFrame df.plot(kind = 'density)
4. Использование Seborborn Distlot
Мы также можем использовать Meanborn расслабитель
Метод для визуализации распределения непрерывных численных данных. Seanborn.distplot ()
Метод требует непреднамеренной переменной данных в качестве входного параметра, который может быть серии PandA, 1D-массив или список.
Некоторые важные аргументы, которые мы можем перейти к Seanborn.distplot ()
Чтобы настроить сюжет в соответствии с нашими потребностями:
HIST
: ( Тип – Bool ) ли построить гистограмму или нет.KDE
: ( Тип – Bool) Будь то, чтобы построить оценку плотности ядра Гаусса.- BINS : ( Тип – номер ) Указание количества мусорных веществ на гистограмме.
hist_kws
: (Тип – Dict) Дикто о аргументах ключевых слов для matplotlib.caxes.axes.hist ()kde_kws
: (Тип – Dict) Аргументы ключевых слов для kdeplot () прошел как словарь.
import numpy as np import matplotlib.pyplot as plt import seaborn as sb data = np.random.normal(10, 3, 1000) #Generating data randomly from a normal distribution. sb.set_style("whitegrid") # Setting style(Optional) plt.figure(figsize = (10,5)) #Specify the size of figure we want(Optional) sb.distplot(x = data , bins = 10 , kde = True , color = 'teal'\ , kde_kws=dict(linewidth = 4 , color = 'black')) plt.show()
Чтобы узнать больше о Meanborn расслабитель
Вы можете обратиться к этой статье на Seborborn Destlots Отказ
Заключение
Это приводит нас к концу статьи! Мы надеемся, что вы многое узнали о разных участках плотности сегодня. Вы можете прочитать эти статьи, чтобы узнать больше о библиотеках Pandas и Matplotlib, которые мы использовали в этой статье.