Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Визуализация распределения данных и ядерная оценка плотности в Python

Покупка
Новинка
Артикул: 853616.01.99
Доступ онлайн
500 ₽
В корзину
Рассмотрены возможности библиотек Python для визуализации распределения данных. Приведены примеры построения гистограмм, kde- и ecdf-графиков, а также кумулятивных кривых в каждой из рассмотренных библиотек. Показано, как можно получить координаты графиков в библиотеке Plotly. На тестовом примере продемонстрированы результаты работы созданной авторами программы. Для оценки уровня усвоения студентами пройденного материала предложены варианты самостоятельных работ. Предназначено для бакалавров, обучающихся по направлениям подготовки 09.03.02 «Информационные системы и технологии», 18.03.01 «Химическая технология», 28.03.02 «Наноинженерия», 29.03.04 «Технология художественной обработки материалов», 29.03.05 «Конструирование изделий легкой промышленности», изучающих дисциплины «Теория вероятностей и математическая статистика», «Обработка экспериментальных данных», «Большие данные», «Алгоритмы и структура данных», «Вычислительная математика». Подготовлено на кафедре информатики и прикладной математики.
Титов, А. Н. Визуализация распределения данных и ядерная оценка плотности в Python : учебно-методическое пособие / А. Н. Титов, Р. Ф. Тазиева ; Минобрнауки России, Казан. нац. исслед. технол. ун-т. - Казань : Изд-во КНИТУ, 2024. - 96 с. - ISBN 978-5-7882-3479-3. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2198885 (дата обращения: 04.03.2025). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Министерство науки и высшего образования Российской Федерации 
Казанский национальный исследовательский 
технологический университет 
А. Н. Титов, Р. Ф. Тазиева 
ВИ З УА ЛИЗ АЦ И Я РАСП РЕДЕЛЕН И Я
ДАН НЫ Х И  ЯДЕРНАЯ О ЦЕН КА  
П ЛО ТНО СТИ  В PY TH ON   
Учебно-методическое пособие
Казань 
Издательство КНИТУ 
2024 


УДК 004.42(075) 
ББК  32.97я7 
Т45 
Печатается по решению редакционно-издательского совета  
Казанского национального исследовательского технологического университета 
Рецензенты: 
канд. пед. наук, доц. С. М. Куценко 
канд. экон. наук, доц. О. С. Семичева 
Т45 
Титов А. Н. 
Визуализация распределения данных и ядерная оценка плотности 
в Python : учебно-методическое пособие / А. Н. Титов, Р. Ф. Тазиева; 
Минобрнауки России, Казан. нац. исслед. технол. ун-т. – Казань : 
Изд-во КНИТУ, 2024. – 96 с. 
ISBN 978-5-7882-3479-3 
Рассмотрены возможности библиотек Python для визуализации распределения данных. Приведены примеры построения гистограмм, kde- и ecdf-графиков, 
а также кумулятивных кривых в каждой из рассмотренных библиотек.  Показано, 
как можно получить координаты графиков в библиотеке Plotly. На тестовом примере продемонстрированы результаты работы созданной авторами программы. 
Для оценки уровня усвоения студентами пройденного материала предложены варианты самостоятельных работ. 
Предназначено для бакалавров, обучающихся по направлениям подготовки 
09.03.02 «Информационные системы и технологии», 18.03.01 «Химическая технология», 28.03.02 «Наноинженерия», 29.03.04 «Технология художественной обработки материалов», 29.03.05 «Конструирование изделий легкой промышленности», изучающих дисциплины «Теория вероятностей и математическая статистика», «Обработка экспериментальных данных», «Большие данные», «Алгоритмы и структура данных», «Вычислительная математика». 
Подготовлено на кафедре информатики и прикладной математики. 
УДК 004.42(075) 
ББК  32.97я7 
ISBN 978-5-7882-3479-3 
© Титов А. Н., Тазиева Р. Ф., 2024 
© Казанский национальный исследовательский 
технологический университет, 2024 
2


С О Д Е Р Ж А Н И Е
Введение 
......................................................................................................................... 4
1. СОЗДАНИЕ ГИСТОГРАММ 
................................................................................... 6
1.1. Построение гистограмм в библиотеке Matplotlib 
......................................... 10
1.2. Построение гистограмм в библиотеке Seaborn ............................................ 16
1.3. Построение гистограмм в библиотеке Plotly ................................................ 23
1.4. Построение гистограмм в библиотеке Altair ................................................ 28
2. ЯДЕРНАЯ ОЦЕНКА ПЛОТНОСТИ РАСПРЕДЕЛЕНИЯ. ЭТАПЫ
ПОСТРОЕНИЯ ............................................................................................................ 32
3. ПОСТРОЕНИЕ KDE-ГРАФИКОВ И КУМУЛЯТИВНЫХ КРИВЫХ
В БИБЛИОТЕКАХ PYTHON 
..................................................................................... 66
3.1. Построение кумулятивных кривых в Matplotlib .......................................... 66
3.2. Построение kde- и ecdf-графиков в Seaborn ................................................. 67
3.3. Построение kde-графиков в Plotly ................................................................. 75
3.4. Построение kde-графиков в Altair.................................................................. 80
Задания для самостоятельной работы 
....................................................................... 85
Литература ................................................................................................................... 93
3 


В В Е Д Е Н И Е
Одним из первых шагов при создании любого информационного 
продукта является понимание имеющихся в распоряжении аналитика 
необработанных («сырых») данных. Одним из методов, используемых 
для понимания и изучения данных, является их визуализация. Создавая 
подходящие и хорошо продуманные визуализации, можно обнаружить 
основную структуру и взаимосвязи в данных. 
Графики распределения имеют решающее значение для исследовательского анализа данных. Они помогают нам обнаружить, какой диапазон охватывают данные, какова их центральная тенденция, симметрично 
или асимметрично их распределение, является ли распределение данных 
унимодальным или мультимодальным, присутствуют ли в данных выбросы.  Визуализация данных может включать в себя графики, диаграммы, таблицы и карты, которые могут быть интерактивными или статичными, и применяется для отображения различных типов данных. Цель 
визуализации – помочь в восприятии данных, их анализе и принятии решений на основе имеющихся данных. Визуализация помогает превратить 
сложные и неструктурированные данные в информацию, которую можно 
визуально интерпретировать и легко анализировать. 
Одними из самых распространенных способов визуализации данных являются построение гистограмм, полигонов частот, ядерной 
оценки плотности и кумулятивных кривых. 
Гистограмма – это графическое представление имеющихся данных. Это один из ключевых элементов в области визуализации и анализа данных. С помощью гистограмм данные не только выглядят аккуратнее, но их легче сравнивать.  
Гистограммы применяются в самых различных областях: в статистике – для отображения распределения данных, в финансах – для 
визуализации распределения доходов или расходов и оценки финансовой стабильности, в маркетинге – для анализа цен на товары, продаж 
и прочих показателей, в медицине – для анализа распределения заболеваний и оценки эффективности лекарственных препаратов, в инженерии – для анализа технических данных, например распределения сил, 
температур и давления, в data science – для анализа данных, сравнения 
моделей и прогнозирования результатов, в образовании – для визуализации результатов тестов и оценки успеваемости обучающихся. 
4 


Несмотря на многие достоинства, которыми обладают гистограммы, у них есть и ряд серьезных недостатков. Они сильно зависят от 
количества интервалов, выбор которых неоднозначен, от максимальных и минимальных значений переменной, представляют собой кусочно-постоянную функцию с одинаковыми значениями внутри интервала. График распределения можно назвать непрерывным сглаженным 
аналогом гистограммы. Самый распространенный вариант построения 
такого графика – ядерная оценка плотности. В этом методе для каждой 
точки данных строится непрерывная кривая – ядро. Из построенных 
кривых получают единую гладкую оценку плотности. Другим способом графического представления данных является кумулятивная функция распределения, преимущества которой состоят в том, что нет необходимости выбирать количество интервалов и для ее построения не 
нужна никакая аппроксимация, как с ядерной оценкой плотности. 
Все перечисленные возможности визуализации реализованы, 
в частности, в библиотеках Python. В представленном авторами пособии демонстрируется визуализация данных с использованием библиотек Matplotlib, Seaborn, Plotly и Altair. Данные библиотеки являются универсальными. Их работа поддерживается на популярных операционных системах – Windows, macOS и Linux. С ними можно работать как через облачный сервис Google Colab, так и в различных интегрированных средах разработки, поддерживающих язык программирования Python.  
Пособие включает в себя три главы. В первой главе приведены 
примеры построения гистограмм в этих четырех библиотеках.   
Во второй главе рассмотрены этапы построения ядерной оценки 
плотности с созданием программного кода, осуществляющего это построение. Результатами работы кода являются построение графика 
ядерной оценки плотности в соответствии с выбранным типом ядра 
с возможностью варьирования интервала значений пропускной способности ядра для сглаживания полученного графика с помощью слайдера. 
В третьей главе показано, как можно строить kde-графики и/или 
графики кумулятивных кривых в упомянутых ранее библиотеках. 
Материал, изложенный в пособии, может быть использован при 
проведении лабораторных занятий по дисциплинам «Теория вероятностей и математическая статистика», «Обработка экспериментальных 
данных», «Большие данные», «Алгоритмы и структура данных», «Вычислительная математика». 
5 


.  С О З Д А Н И Е  Г И С Т О Г Р А М М  
Рассмотрим одномерное непрерывное распределение. Пусть 
(х1, x2, …,xn) – выборка наблюдений,  представленная в виде вариационного ряда 
1
2
3
(
...
)
n
x
x
x
x




. При большом числе наблюдений (порядка сотен) простая статистическая совокупность перестает быть 
удобной формой записи статистического материала – она становится 
слишком громоздкой и малонаглядной. Для придания ему большей 
компактности и наглядности статистический материал должен быть 
подвергнут дополнительной обработке – строится так называемый статистический ряд. Пусть в выборке (х1, x2,…, xn) есть одинаковые элементы. Перепишем выборку в другом виде: z1, z2,…, zk, где k – количество различных значений признака, причем каждое значение zi встречается ровно ni раз. Число ni называется частотой элемента zi. 
Очевидно, что  ∑
𝑛𝑖= 𝑛
𝑘
𝑖=1
. Статистическим рядом называется последовательность пар (zi, ni).  
При большом объеме выборки ее элементы объединяются 
в группы, представляя экспериментальные данные в виде группированного статистического ряда. Для этого интервал, содержащий все элементы выборки, разбивают на m непересекающихся интервалов. Вычисления значительно упрощаются, если интервалы имеют одинаковую 
длину. После того как частичные интервалы выбраны, определяют частоты – количество ni элементов выборки, попавших в i-й интервал. 
Наряду с частотами одновременно подсчитывают также накопленные 
i
частоты 
n
j
=

, относительные частоты 
i
n
j
1
n  и накопленные относительi
n
j
=

j
1
ные частоты 
. Полученные результаты сводят в таблицу частот 
n
группированной выборки. Группировка выборки вносит погрешность 
в дальнейшие вычисления. 
Пусть имеется выборка (х1, x2, …,xn) из генеральной совокупности 
с признаком Х. Пусть распределение Х неизвестно. Для того чтобы получить первое представление об этом распределении в случае количественного признака, строят так называемую гистограмму. Для этого 
разбивают действительную ось на конечное число промежутков 
. Подсчитывают частоты ni выборочных значений, лежащих 
m

,...,
1
6 


в i-м интервале (
1,
).
i
m
=
 Над 
i
 рисуют прямоугольники, высоты котоn
рых равны 
i
nh , где hi – ширина соответствующего интервала. Полученi
ный ступенчатый график называют гистограммой. Площадь полученной фигуры равна единице. Вычисления значительно упрощаются, если 
интервалы имеют одинаковую длину. В дальнейшем, как правило, будем рассматривать только этот случай. 
Построим таблицу частот и гистограмму по данным о размерах 
зарплат, предлагаемых работодателями в России (табл. 1.1). Данные 
взяты с сайта1 (доступ 17.01.24).  
 
Таблица 1.1 
Распределение размера зарплат, предлагаемых работодателями 
в России, по интервалам (сведения на 17.01.24) 
Границы интервалов, тыс. руб. 
10–20 
20–30 
30–40 
40–50 
50–60 
60–70 
70–80 
80–90 
90–100 
Количество 
предложений ni  
1981227 
1872196 
1649513 
1373879 
1092512 
879278 
715764 
595528 
489149 
Для построения гистограмм (нормированной и ненормированной) и полигона частот оформим вспомогательную таблицу: 
 
i
𝑛𝑖
Накопленная  
относительная  
Частота 
i
n
j
𝑛ℎ 
Относительная частота 
i
n
  
n
j
=

 
h i = h 
j
ni 
1
n
j
Границы 
интервалов,  
тыс. руб. 
частота 
1
=

  
 
 
n
10–20 
1981227 
1981227 
10 
0,186047055 
0,186047055 
0,01860471 
20–30 
1872196 
3853423 
10 
0,175808503 
0,361855558 
0,01758085 
30–40 
1649531 
5502954 
10 
0,154899154 
0,516754712 
0,01548992 
40–50 
1373879 
6876833 
10 
0,129014062 
0,645768774 
0,01290141 
50–60 
1092512 
7969345 
10 
0,102592303 
0,748361077 
0,01025923 
60–70 
879278 
8848623 
10 
0,082568571 
0,830929648 
0,00825686 
70–80 
715764 
9564387 
10 
0,067213795 
0,898143442 
0,00672138 
80–90 
595528 10159915 
10 
0,055923037 
0,954066479 
0,0055923 
90–100 
489149 10649064 
10 
0,045933521 
1 
0,00459335 
        
На рис. 1.1 представлена ненормированная гистограмма. По оси 
Х отложены значения середин интервалов. 
                                     
 
1Система поиска вакансий: сайт. URL: https://gorodrabot.ru/  
7 


 
Рис. 1.1. Ненормированная гистограмма, построенная 
по данным табл. 1.1 
Нормированная гистограмма и полигон частот для той же таблицы представлены на рис. 1.2. Сумма площадей всех прямоугольников 
на рисунке равна единице. 
 
Рис. 1.2. Нормированная гистограмма и полигон частот 
При увеличении объема выборки и уменьшении длины интервала 
)
(x
f X
гистограмма относительных частот является статистическим аналогом 
плотности распределения 
 генеральной совокупности. 
Одной из оценок теоретической функции распределения является 
эмпирическая функция распределения. Она позволяет оценить вероятность того, что случайная величина Х принимает значение, меньшее некоторого числа х, и вычисляется по формуле 
8 


*
1
( )
,
n
i
= 
F
x
n
n

z
x
i
  
где суммируются частоты тех элементов выборки, для которых выполняется неравенство 
. Очевидно, что 
 при значениях x, не 
*
=
x
F
n
x
zi 
0
)
(
превышающих минимального значения в выборке, и 
*( )
1
n
F
x =  при значениях х, превышающих максимальное значения. На остальных промежутках 
 представляет собой неубывающую кусочно-постоянную 
)
(
* x
Fn
функцию. 
Значение эмпирической функции распределения для статистики 
определяется теоремой Гливенко: пусть 
 – эмпирическая функция 
)
(
* x
Fn
распределения, построенная по выборке объема n из генеральной совокупности с функцией распределения 
. Тогда для любого x и лю)
(x
FX
бого ε > 0 
. 
*
=

−
1
)
)
(
)
(
(
lim

→

x
F
x
F
P
X
n
n
Таким образом, для любого x 
 сходится по вероятности к 
 
)
(
* x
Fn
)
(x
FX
и, следовательно, при большом объеме выборки может служить оценкой функции распределения генеральной совокупности в каждой 
точке x. 
По данным табл. 1.1 построим график эмпирической функции распределения (рис. 1.3). 
 
Рис. 1.3. График эмпирической функции распределения 
9 


В приведенных примерах данные были заданы в виде интервального ряда. На практике так бывает редко, набор данных обычно не 
сгруппирован. При работе в библиотеках Python, как правило, будет 
рассмотрен именно этот случай. Группировка и подсчет соответствующих частот будет осуществляться автоматически: пользователь задает 
лишь количество интервалов k. К сожалению, нет универсальной формулы, подходящей для их подсчета. Обычно пользуются одной из формул: формулой Стерджесса (k = 1 + 3.322lgn), Брукса и Каррузера 
(k = 5lgn), Хайнхольда и Гаеде 
, Райса (
3
2
k
n
=
) и др. Если пред(
)
k
n
=
полагается приблизительно нормальное распределение данных, ши3.49 ,
s
h
=
 
рину интервала иногда вычисляют по правилу Скотта (
3
n
где s – оценка стандартного отклонения). Для выбора ширины интер( )
2
,
IQR x
h
=
 
вала можно использовать правило Фридмана–Диакониса (
3
n
где IQR(x) – межквартильный размах). В данном пособии для подсчета 
количества интервалов будет использоваться формула Стерджесса. Будет показано, как построить гистограмму в одной из библиотек: Matplotlib, Seaborn, Plotly и Altair.  
Для работы с библиотекой для построения гистограмм, kde- 
и ecdf- функции она должна быть установлена на компьютер. Некоторые среды разработки Python, такие как, например, Google Colab, уже 
включают в себя различные библиотеки, в том числе NymPy, Matplotlib, 
Seaborn, Plotly, Altair. Их устанавливать не надо, а следует только импортировать. Проверить, установлена ли данная библиотека (модуль), 
можно, набрав в командной строке pip freeze. Установить библиотеку 
можно с помощью пайтоновского менеджера установки пакетов: pip 
install имя_библиотеки. 
1 . 1 .  П о с т р о е н и е  г и с т о г р а м м  в  б и б л и о т е к е  
M a t p l o t l i b  
Matplotlib – это библиотека для визуализации данных, написанная 
Джоном Хантером на языке Python и являющаяся, пожалуй, одной из самых популярных. Изначально распространялась под BSD (Berkeley 
10 


Похожие

Доступ онлайн
500 ₽
В корзину