ComeçarComece de graça

Filtrando recursos altamente correlacionados

Você vai automatizar a remoção de recursos altamente correlacionados no conjunto de dados numérico ANSUR. Você calculará a matriz de correlação e filtrará colunas que tenham coeficiente de correlação maior que 0,95 ou menor que -0,95.

Como cada coeficiente de correlação aparece duas vezes na matriz (a correlação de A com B é igual à de B com A), você deve ignorar metade da matriz de correlação para remover apenas um dos dois recursos correlacionados. Use um truque com máscara para isso.

Este exercício faz parte do curso

Redução de Dimensionalidade em Python

Ver curso

Instruções do exercício

  • Calcule a matriz de correlação de ansur_df e pegue o valor absoluto dessa matriz.
  • Crie uma máscara booleana com valores True no triângulo superior direito e aplique-a à matriz de correlação.
  • Defina o limite do coeficiente de correlação como 0.95.
  • Remova do DataFrame todas as colunas listadas em to_drop.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# Calculate the correlation matrix and take the absolute value
corr_df = ansur_df.____().____()

# Create a True/False mask and apply it
mask = np.____(np.____(corr_df, dtype=____))
tri_df = corr_df.____(mask)

# List column names of highly correlated features (r > 0.95)
to_drop = [c for c in tri_df.columns if any(tri_df[c] >  ____)]

# Drop the features in the to_drop list
reduced_df = ansur_df.____(____, axis=1)

print(f"The reduced_df DataFrame has {reduced_df.shape[1]} columns.")
Editar e executar o código