Определите сильно коррелированные функции в Python с помощью примеров кода

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

  1. Корреляция Пирсона.
    Коэффициент корреляции Пирсона измеряет линейную корреляцию между двумя переменными в диапазоне от -1 до 1. Значение, близкое к 1, указывает на сильную положительную корреляцию, а значение, близкое к -1, указывает на сильная отрицательная корреляция.
import pandas as pd
# Load the dataset
data = pd.read_csv('dataset.csv')
# Compute the correlation matrix
correlation_matrix = data.corr()
# Find highly correlated features
highly_correlated = correlation_matrix[abs(correlation_matrix) > 0.8]
  1. Корреляция Спирмена.
    Корреляция Спирмена — это непараметрическая мера, которая оценивает монотонную связь между двумя переменными. Он подходит для выявления нелинейных корреляций.
import pandas as pd
# Load the dataset
data = pd.read_csv('dataset.csv')
# Compute the correlation matrix using Spearman method
correlation_matrix = data.corr(method='spearman')
# Find highly correlated features
highly_correlated = correlation_matrix[abs(correlation_matrix) > 0.8]
  1. Корреляция Кендалла.
    Корреляция Кендалла — это еще один непараметрический показатель, который оценивает силу ранговой корреляции между двумя переменными. Это также полезно для обнаружения нелинейных связей.
import pandas as pd
# Load the dataset
data = pd.read_csv('dataset.csv')
# Compute the correlation matrix using Kendall method
correlation_matrix = data.corr(method='kendall')
# Find highly correlated features
highly_correlated = correlation_matrix[abs(correlation_matrix) > 0.8]
  1. Визуализация тепловой карты.
    Еще один полезный метод — создание тепловой карты для визуализации корреляционной матрицы, которая позволяет легко идентифицировать сильно коррелированные функции.
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# Load the dataset
data = pd.read_csv('dataset.csv')
# Compute the correlation matrix
correlation_matrix = data.corr()
# Plot the correlation matrix as a heatmap
plt.figure(figsize=(10, 8))
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm')
plt.show()