Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛР / ЛР2 / Лабораторная работа 2

.pdf
Скачиваний:
9
Добавлен:
25.06.2023
Размер:
380.95 Кб
Скачать

Лабораторная работа №2 Анализ связей между признаками двумерного набора

данных

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

Краткий теоретический материал

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

Её построение подобно работе метода value_counts(), подсчитывающего количество уникальных значений в списке. value_counts() группирует строго одинаковые величины и хорош для подсчёта частоты в списках с категориальными переменными.

В pandas гистограмму строит специальный метод hist() (от англ. histogram — «гистограмма»). Применять его можно к списку или к столбцу датафрейма: во втором случае название столбца передаётся в параметре. Метод hist() находит в наборе чисел минимальное и максимальное значения, а полученный диапазон делит на области, или корзины. Затем hist() считает, сколько значений попало в каждую корзину, и отображает это на графике.

Параметр bins (пер. «корзины, вёдра») определяет, на сколько областей делить диапазон данных. По умолчанию таких «корзин» 10.

Диаграмма размаха в Python

Описывая распределение, аналитики рассчитывают среднее арифметическое или медиану.

Однако, помимо медианы и среднего, важно знать характерный разброс

— то, какие значения оказались вдали от среднего и насколько их много. Самое простое, что можно посчитать для оценки разброса, — это

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

Квартили (от лат. quartus — «четвёртый») разбивают упорядоченный набор данных на четыре части. Первый квартиль Q1 — число, отделяющее первую четверть выборки: 25% элементов меньше, а 75% — больше него. Медиана — второй квартиль Q2, половина элементов больше и половина меньше неё. Третий квартиль Q3 — это отсечка трёх четвертей: 75% элементов меньше и 25% элементов больше него. Межквартильный размах — это расстояние между Q1 и Q3.

Увидеть медиану и квартили в Python можно на специальном графике.

Его называют диаграммой размаха или «ящиком с усами».

«Ящик» ограничен первым и третьим квартилями. Внутри ящика обозначают медиану.

«Усы» простираются влево и вправо от границ ящика на расстояние, равное 1,5 межквартильного размаха (сокращённо IQR, от англ. interquartile range, «межквартильный размах»). В размах «усов» попадают нормальные значения, а за пределами находятся выбросы, изображённые точками. Если правый «ус» длиннее максимума, то он заканчивается максимумом. То же — для минимума и левого «уса».

В Python диаграмму размаха строят методом boxplot() (от англ. box- and-whisker plot — «график „ящик с усами“»).

Срезы данных методом query()

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

Условия, указанные в параметре query():

Поддерживают разные операции сравнения: !=, >, >=, <, <=.

Проверяют, входят ли конкретные значения в список,

конструкцией: Date_To in ["07.07.19", "09.07.2019"]. Если нужно узнать, нет ли в списке определённых значений, пишут так: Date_To not in ["07.07.19", "09.07.2019"].

Работают с логическими операторами в привычном виде, где «или»

or , «и» — and, «не» — not. Указывать условия в скобках необязательно. Без

скобок операции выполняются в следующем порядке: сначала not, потом and и, наконец, or.

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

Часто нужно понимать, как разные значения зависят друг от друга. Возьмём, к примеру, данные о росте и весе людей.

Изучим числовые характеристики: df.describe()

 

height

weight

count 7634.000000

7634.000000

mean

172.640603

57.688374

std

4.875440

5.274638

min

153.956131

37.687478

25%

169.297852

54.155792

50%

172.641400

57.746296

75%

175.939310

61.205201

max

190.888112

76.604422

...и гистограммы: df.hist()

Гистограммы похожи на графики нормального распределения. Отдельно отметим, что имеем дело с данными о взрослых людях: из числовых характеристик видно, что людей ниже 150 см в выборке нет.

Чтобы найти связь между ростом и весом, их тоже нужно отметить на одном графике, а не на отдельных гистограммах. Зададим рост и вес на осях X и Y соответственно.

При этом необходимо использовать особый тип графиков — scatter (пер. «разброс,рассеивание»).

Передадим значение scatter параметру kind метода plot(): df.plot(x='height', y='weight', kind='scatter')

Есть основная масса точек с наиболее частыми сочетаниями веса и роста. При этом с увеличением роста увеличивается и вес. Но это лишь в среднем. Можно найти уникальные примеры людей с большим весом и малым ростом. Однако есть и совсем пустые зоны: например, люди ростом более 180 см не весят меньше 50 кг.

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

Так, если нам скажут, что есть человек с ростом 190 см и весом 50 кг, мы ответим, что либо неправильно измеряли, либо это очень редкий человек. А

про индивида ростом 170 см и весом более 70 кг известно, что его вес превышает типичное для его роста значение.

Матрица диаграмм рассеяния

 

 

В

pandas

есть

специальный

метод: pd.plotting.scatter_matrix(df) (от англ. scatter matrix — «матрица рассеяния»).

В наборе данных для каждого человека известен рост , вес и возраст . В столбце male значением 1 обозначен мужской пол, 0 — женский. Построим матрицу рассеяния:

pd.plotting.scatter_matrix(df, figsize=(9, 9))

Для такого графика также можно использовать модуль seaborn – и строить график с помощью функции pairplot.

import seaborn as sns sns.pairplot(df)

Корреляция

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

Как оценить численно, насколько тесна взаимосвязь? Для этого находят

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

Если с ростом первой величины растёт вторая, то коэффициент корреляции Пирсона — положительный.

Если при изменении одной величины другая остаётся прежней, то коэффициент равен 0.

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

Чем ближе коэффициент корреляции Пирсона к крайним значениям 1 или -1, тем теснее линейная взаимосвязь. Если значение близко к нулю, значит, линейная связь слабая либо отсутствует вовсе. Бывает, что коэффициент нулевой не потому, что связи между значениями нет, а из-за того, что у неё более сложный, не линейный характер. Потому-то коэффициент корреляции такую связь не берёт.

Коэффициент Пирсона находят методом corr(). Метод применяют к столбцу с первой величиной, а столбец со второй передают в параметре. Какая первая, а какая вторая — неважно:

Порядок выполнения

1.Получить у преподавателя набор данных для проведения анализа согласно цели выполняемой работы.

2.Провести предварительную обработку данных (как в 1 ЛР).

3.Построить точечную диаграмму (матрицу диаграмм рассеяния). Выполнить анализ полученной диаграммы, отвечая на вопрос показывает ли она в среднем определенную зависимость между переменными. Изучите параметры и опишите взаимосвязи. Если параметров слишком много – может потребоваться создать несколько графиков.

4.Исследовать взаимосвязь между переменными с помощью оценки коэффициента корреляции и ковариации.

5.Построить heatmap (тепловую карту корреляции).

6.Выполнить интерпретацию результатов корреляции и ковариации, отвечая на вопросы о наличии (отсутствии) линейной взаимосвязи между переменными.

7.Есть ли в вашем наборе данных столбец, который является целевым признаком? Какие факторы больше всего влияют на целевой признак?

8.Выполнить дополнительные задания преподавателя по варианту.

Содержание отчета

1.Титульный лист

2.Цель работы

3.Вариант задания с кратким описанием набора данных

4.Пояснения и скриншоты по каждому пункту выполнения лабораторной работы

5.Ссылка на ваш Jupyter-ноутбук

6.Расширенный вывод по вашему исследованию

Соседние файлы в папке ЛР2