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

  1. Что такое коэффициент корреляции Пирсона?
  2. Как найти корреляцию между непрерывными переменными в наборе данных?
  3. Как визуализировать эту корреляцию?

Что такое коэффициент корреляции Пирсона?

Коэффициент корреляции Пирсона в основном используется для определения силы линейной связи между двумя непрерывными переменными, он представлен с помощью r. Математическая формула для расчета коэффициента корреляции имеет следующий вид:

Значение этого коэффициента корреляции находится в диапазоне от -1 до 1, где 1 означает положительную корреляцию, фиг. (2), 0 означает отсутствие корреляции, фиг. (3), а -1 представляет отрицательную корреляцию между двумя переменными, фиг. ( 4).

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

Как найти корреляцию между непрерывными переменными в наборе данных?

Теперь, когда у вас есть представление о том, что такое коэффициент корреляции Пирсона, мы можем перейти к фактическому определению значения этого коэффициента в Python. Чтобы найти этот коэффициент корреляции, есть два способа: с помощью Pandas или библиотек SciPy, мы рассмотрим оба метода.

В этом примере я рассмотрел 4 столбца данных, которые инициализируются случайным образом и будут определять корреляцию между всеми четырьмя столбцами. Ниже представлен код Реализация определения коэффициентов корреляции:

Использование SciPy:

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

import scipy.stats as stats
import numpy as np
# initialise random data points
data_1 = np.random.randn(1, 20)
data_2 = np.random.randn(1, 20)
# The stats.pearsonr() returns 2 values the correlation coefficient and the p-value
r, p_value = stats.pearsonr(data_1[0], data_2[0])
print(f"Correlation coefficient of data_1 and data_2 = {r}")

Использование Pandas Dataframe:

В Pandas есть встроенная функция под названием .corr () для определения корреляции Пирсона, поэтому мы будем использовать ее.

import numpy as np
import pandas as pd
# initialise random data points
data_1 = np.random.randn(1, 20)
data_2 = np.random.randn(1, 20)
data_3 = np.random.randn(1, 20)
data_4 = np.random.randn(1, 20)
data = {"Column 1":data_1[0], 
        "Column 2":data_2[0], 
        "Column 3":data_3[0], 
        "Column 4":data_4[0]}
# Initialise a dataframe with all the columns
df = pd.DataFrame(data)
# .corr() can calculate 'pearson', 'kendall', 'spearman' correlations.
print(df.corr(method='pearson'))

Я предлагаю вам попробовать реализовать эти коды самостоятельно для лучшего понимания.

Как визуализировать эту корреляцию с помощью тепловых карт?

Теперь, когда мы выяснили эти значения корреляции, было бы здорово, если бы мы смогли визуализировать то же самое, чтобы мы могли легко интерпретировать результаты. Для этого мы воспользуемся библиотекой Seaborn и построим тепловую карту. Каждый прямоугольник этой тепловой карты будет отображать коэффициент корреляции между соответствующими столбцами сетки.

import seaborn as sns
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(15,10))
sns.heatmap(df.corr(method='pearson'), annot = True, cmap="Blues")
plt.title("Correlation Heatmap")

Диагональ тепловой карты всегда будет показывать значение = 1, поскольку она дает корреляцию столбца с самим собой, которая должна быть 1, учитывая, что столбцы одинаковы. Итак, теперь, основываясь на этих значениях, мы можем найти столбцы, которые сильно коррелированы, и принять решение о том, какие функции следует выбрать.

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

Заключение

Теперь мы поняли, что такое корреляция. Как узнать корреляцию в питоне? и Как визуализировать это для лучшего понимания результатов. Вот и все! Следите за новостями в следующих блогах, и если у вас есть предложения или сомнения, прокомментируйте их ниже или напишите мне. Также свяжитесь со мной в LinkedIn. Всем удачи!

Идентификатор почты: [email protected]