IniziaInizia gratis

Filtrare le feature altamente correlate

Automatizzerai la rimozione delle feature altamente correlate nell'insieme di dati numerici ANSUR. Calcolerai la matrice di correlazione e filtrerai le colonne che hanno un coefficiente di correlazione maggiore di 0.95 o minore di -0.95.

Poiché ogni coefficiente di correlazione compare due volte nella matrice (la correlazione di A con B è uguale a quella di B con A), vorrai ignorare metà della matrice di correlazione in modo che venga rimossa solo una delle due feature correlate. Usa un trucco con una maschera per questo scopo.

Questo esercizio fa parte del corso

Riduzione della dimensionalità in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Calcola la matrice di correlazione di ansur_df e prendine il valore assoluto.
  • Crea una maschera booleana con valori True nel triangolo superiore destro e applicala alla matrice di correlazione.
  • Imposta la soglia del coefficiente di correlazione a 0.95.
  • Elimina dal DataFrame tutte le colonne elencate in to_drop.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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.")
Modifica ed esegui il codice