ComenzarEmpieza gratis

Filtrar características altamente correlacionadas

Vas a automatizar la eliminación de características altamente correlacionadas en el conjunto de datos numéricos ANSUR. Calcularás la matriz de correlación y filtrarás las columnas que tengan un coeficiente de correlación mayor que 0.95 o menor que -0.95.

Como cada coeficiente de correlación aparece dos veces en la matriz (la correlación de A con B es igual a la de B con A), te conviene ignorar la mitad de la matriz de correlación para que solo se elimine una de las dos características correlacionadas. Usa un truco con una máscara para ello.

Este ejercicio forma parte del curso

Reducción de dimensionalidad en Python

Ver curso

Instrucciones del ejercicio

  • Calcula la matriz de correlación de ansur_df y toma el valor absoluto de esta matriz.
  • Crea una máscara booleana con valores True en el triángulo superior derecho y aplícala a la matriz de correlación.
  • Establece el umbral del coeficiente de correlación en 0.95.
  • Elimina del DataFrame todas las columnas listadas en to_drop.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# 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 y ejecutar código