В анализе данных и машинном обучении выявление сильно коррелированных пар переменных часто имеет решающее значение для выбора функций, уменьшения размерности и понимания взаимосвязей между различными столбцами данных. В этой статье мы рассмотрим различные методы эффективного выявления сильно коррелированных пар в кадре данных Pandas с использованием методов стека и подмножества. Попутно мы предоставим примеры кода, чтобы продемонстрировать реализацию каждого метода.
Методы:
- Матрица корреляции.
Одним из распространенных подходов является вычисление матрицы корреляции DataFrame с использованием функцииcorrв Pandas. По умолчанию эта функция вычисляет коэффициент корреляции Пирсона между всеми парами числовых столбцов. Затем мы можем отфильтровать матрицу, чтобы извлечь сильно коррелированные пары.
import pandas as pd
# Compute correlation matrix
corr_matrix = df.corr()
# Filter for highly correlated pairs (e.g., correlation > 0.8)
highly_correlated_pairs = corr_matrix[corr_matrix > 0.8].stack().dropna()
- Стек и подмножество.
Другой метод предполагает использование функцииstackв Pandas для преобразования DataFrame в серию с иерархическим индексом. Затем мы можем отфильтровать результирующую серию, чтобы извлечь пары с высокой степенью корреляции.
import pandas as pd
# Stack the DataFrame
stacked = df.stack()
# Filter for highly correlated pairs (e.g., correlation > 0.8)
highly_correlated_pairs = stacked[stacked > 0.8]
- Пользовательское подмножество.
Мы можем создать собственное подмножество DataFrame, перебирая столбцы и сравнивая их значения корреляции. Этот метод обеспечивает большую гибкость в определении порога корреляции и позволяет использовать дополнительные условия или вычисления.
import pandas as pd
# Define correlation threshold
threshold = 0.8
# Initialize an empty list to store highly correlated pairs
highly_correlated_pairs = []
# Iterate over column pairs
for i in range(len(df.columns)):
for j in range(i + 1, len(df.columns)):
# Calculate correlation
correlation = df.iloc[:, i].corr(df.iloc[:, j])
# Check if correlation exceeds the threshold
if correlation > threshold:
pair = (df.columns[i], df.columns[j], correlation)
highly_correlated_pairs.append(pair)
В этой статье мы рассмотрели различные методы идентификации сильно коррелированных пар в кадре данных Pandas. Используя функции corr, stackи создание собственного подмножества, мы можем эффективно извлекать нужные пары. В зависимости от конкретных требований и сложности анализа один метод может оказаться более подходящим, чем другие. Используя эти методы, аналитики данных и специалисты по машинному обучению могут получить ценную информацию и принять обоснованные решения для своих проектов.