Kom igångKom igång gratis

Filtrera bort starkt korrelerade särdrag

Nu ska du automatisera borttagningen av starkt korrelerade särdrag i det numeriska ANSUR-datasetet. Du beräknar korrelationsmatrisen och filtrerar bort kolumner med en korrelationskoefficient som överstiger 0,95 eller understiger -0,95.

Eftersom varje korrelationskoefficient förekommer två gånger i matrisen (korrelationen mellan A och B är densamma som mellan B och A) vill du ignorera hälften av korrelationsmatrisen, så att bara ett av de två korrelerade särdragen tas bort. Använd ett maskeringstrick för detta ändamål.

Den här övningen är en del av kursen

Dimensionsreduktion i Python

Visa kurs

Övningsinstruktioner

  • Beräkna korrelationsmatrisen för ansur_df och ta absolutvärdet av matrisen.
  • Skapa en boolesk mask med True-värden i det övre högra triangelområdet och applicera den på korrelationsmatrisen.
  • Sätt tröskelvärdet för korrelationskoefficienten till 0.95.
  • Ta bort alla kolumner i listan to_drop från DataFrame.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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.")
Redigera och kör kod