Search
Close this search box.
Seleção de recursos com matriz de correlação em Python
matriz de correlação em Python

Posts Relacionados:

Uma matriz de correlação mede a relação linear entre pares de recursos em um conjunto de dados e fornece uma indicação de quão fortemente e em que direção dois recursos estão relacionados.

Receba nossa newsletter

Seleção de Recursos

A seleção de recursos como uma etapa de pré-processamento em machine learning é uma ocorrência comum. Ela pode reduzir a complexidade de um modelo e aumentar sua eficiência e poder preditivo, reduzindo o ruído dos dados. Existem várias formas de se selecionar recursos. Neste post, o método escolhido será o uso de matriz de correlação.

O que é uma Matriz de Correlação?

Uma matriz de correlação é uma tabela quadrada que mostra os coeficientes de correlação entre diferentes recursos de um conjunto de dados. Um coeficiente de correlação mede a força e a direção da relação linear entre duas variáveis. Ele varia de -1 a 1, onde -1 indica uma correlação negativa forte, 0 indica nenhuma correlação e 1 indica uma correlação positiva forte. A partir desses valores, uma matriz de correlação fornece uma indicação de quão fortemente e em que direção dois recursos estão relacionados. Em essência, uma matriz de correlação é um resumo das relações entre pares de recursos. Ela consegue destacar quais estão fortemente relacionados e quais não estão.

Como criar uma matriz de correlação

A criação de uma matriz de correlação é bem direta. Primeiro, calcule os coeficientes de correlação entre todos os pares de variáveis. Organize esses coeficientes em um formato de tabela. Visualize a matriz de correlação como um mapa de calor, onde variáveis altamente correlacionadas são representadas por cores intensas (por exemplo, azul para correlações negativas ou vermelho para correlações positivas). Isso ajuda a identificar agrupamentos de recursos correlacionados.

Na prática, a forma mais simples de criar uma matriz de correlação em Python é com Scikit-learn. Para ilustrar esse processo, usaremos o conjunto de dados iris. O código é mostrado abaixo:

				
					import numpy as np
from sklearn.datasets import load_iris
from sklearn.preprocessing import StandardScaler
import matplotlib.pyplot as plt
import seaborn as sns

# Carrega os dados
iris = load_iris()
X = iris.data
feature_names = iris.feature_names

# Normaliza os recursos
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# Calcula matriz de correlação
corr_matrix = np.corrcoef(X_scaled.T)

# Cria heatmap
plt.figure(figsize=(10, 8))
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm', xticklabels=feature_names, yticklabels=feature_names)
plt.title('Matriz de Correlação do Conjunto de Dados Iris')
plt.show()
				
			

Neste código, abrimos os dados e separamos os atributos das variáveis-alvo. Depois, normalizamos os dados, calculamos os coeficientes de correlação e plotamos um heatmap.

correlation matrix

Matriz de correlação dos atributos do conjunto de dados iris.

Como selecionar recursos com uma matriz de correlação

Para a seleção de recursos com matriz de correlação, existem pelo menos dois aspectos que devem ser explorados. Eles são: correlações entre recursos e a variável-alvo e as correlações de recursos entre si (multicolinearidade).

Recursos altamente correlacionados com a variável de destino devem ser selecionados. Porém, as correlações negativas podem ser tão importantes quanto as positivas para a seleção de recursos. A força da correlação (valor absoluto) é mais importante do que a direção. Uma forte correlação negativa (-1 a -0,5) indica uma relação inversa entre as variáveis. Portanto, considere o valor absoluto das correlações ao selecionar recursos. Selecione recursos com correlação acima de um determinado limite (por exemplo, 0,5). Remova os demais. A remoção de recursos pouco correlacionados ajuda na redução de dimensionalidade de um modelo, o que contribui para um melhor desempenho.

correlation matrix friedman scikit-learn

Outro exemplo de matriz de correlação.

Recursos altamente correlacionados entre si também podem ser verificados usando um limite (por exemplo, > correlação de 0,8). Remova um dos recursos altamente correlacionados para reduzir a multicolinearidade. Ela compromete o desempenho dos modelos de machine learning. 

Não se esqueça de incluir correções negativas. Se dois recursos estiverem altamente correlacionados negativamente entre si, considere remover um para reduzir a multicolinearidade.

Quais recursos são adequados para uma matriz de correlação?

Em machine learning, uma matriz de correlação mede a relação linear entre pares de recursos em um conjunto de dados. Portanto, a seleção de recursos através de correlação é adequada para problemas em que se espera que a relação entre os recursos seja linear. Além disso, ambas as variáveis de um par devem ser medidas em uma escala contínua. Idealmente, os dados não devem possuir outliers que possam distorcer os resultados e a distribuição conjunta das variáveis deve ser aproximadamente normal.

Limitações

A seleção de recursos através de análises com matriz de correlação tem algumas limitações importantes. A primeira, já mencionada, é que ela mede a relação linear entre pares de recursos. Portanto, ela não é adequada para dados com relações não lineares.

Além disso, a análise de correlação ignora dependências entre recursos. Embora considere relacionamentos em pares, a análise de correlação pode não capturar como vários recursos influenciam conjuntamente a variável de destino.

Encontrou algum erro ou quer fazer uma sugestão? Por favor, entre em contato usando nosso formulário de contatos.

Imagem com IA Generativa – Dia 199

IA generativa img 199

Arte com IA generativa: imagem do dia

Todos os dias, postamos um exemplo de imagem artística gerada com inteligência artificial.

Tutoriais

Postagens Mais Recentes

Outras Postagens Que Podem Interessar

Veja
Mais

Fique em contato

Se inscreva para receber nossa newsletter com novidades.

aprendiz artificial