Тепловая карта корреляции в Seaborn

Manav Narula 16 Июль 2021
Тепловая карта корреляции в Seaborn

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

Мы можем построить корреляционную матрицу с помощью модуля seaborn. Это помогает легко понять набор данных и очень часто используется для анализа.

Из этого туториала Вы узнаете, как построить корреляционную матрицу в Python с помощью функции seaborn.heatmap().

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

В приведенном ниже коде мы представим корреляционную матрицу с помощью тепловой карты в Python.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame({"Day 1": [7,1,5,6,3,10,5,8],
                    "Day 2" : [1,2,8,4,3,9,5,2],
                    "Day 3" : [4,6,5,8,6,1,2,3],
                    "Day 4" : [5,8,9,5,1,7,8,9]})

sns.heatmap(df.corr())

тепловая карта корреляции в seaborn

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

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

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame({"Day 1": [7,1,5,6,3,10,5,8],
                    "Day 2" : [1,2,8,4,3,9,5,2],
                    "Day 3" : [4,6,5,8,6,1,2,3],
                    "Day 4" : [5,8,9,5,1,7,8,9]})

sns.heatmap(df.corr(), vmin = -1, vmax = +1, annot = True, cmap = 'coolwarm')

корреляционная тепловая карта в море с разными параметрами

Обратите внимание на использование такого количества параметров. Аргументы vmin и vmax используются для указания масштаба цветовой оси. аргумент cmap здесь изменяет цветовую схему, используемую для графика. Параметр annot используется для отображения значений корреляции на квадратах. В дальнейшем мы можем использовать параметры linewidth и linecolor, чтобы затемнить границы квадратов и указать цвет границы. Мы можем настроить цветовую полосу с помощью аргумента cbar_kws.

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

Приведенный ниже фрагмент кода позволяет добиться этого.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

df = pd.DataFrame({"Day 1": [7,1,5,6,3,10,5,8],
                    "Day 2" : [1,2,8,4,3,9,5,2],
                    "Day 3" : [4,6,5,8,6,1,2,3],
                    "Day 4" : [5,8,9,5,1,7,8,9]})

upp_mat = np.triu(df.corr())

sns.heatmap(df.corr(), vmin = -1, vmax = +1, annot = True, cmap = 'coolwarm', mask = upp_mat)

тепловая карта треугольной корреляции в seaborn

В приведенном выше коде мы сначала используем numpy.triu(), который возвращает верхний треугольник матрицы, а затем маскируем его, используя аргумент mask функции heatmap(). Точно так же мы можем замаскировать нижний треугольник с помощью функции numpy.tril().

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

Например,

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

df = pd.DataFrame({"Day 1": [7,1,5,6,3,10,5,8],
                    "Day 2" : [1,2,8,4,3,9,5,2],
                    "Day 3" : [4,6,5,8,6,1,2,3],
                    "Day 4" : [5,8,9,5,1,7,8,9]})

upp_mat = np.triu(df.corr())

sns.heatmap(df.corr()[['Day 1']], vmin = -1, vmax = +1, annot = True, cmap = 'coolwarm')

корреляционная тепловая карта в море с разными переменными

В приведенном выше примере мы строим корреляцию переменной Day 1 с другими переменными.

Author: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Сопутствующая статья - Seaborn Heatmap