Zacznij terazZacznij za darmo

Usuwanie silnie skorelowanych cech

Zautomatyzujesz usuwanie silnie skorelowanych cech w liczbowym zbiorze danych ANSUR. Obliczysz macierz korelacji i odfiltrowania kolumny, których współczynnik korelacji przekracza 0.95 lub jest mniejszy niż -0.95.

Ponieważ każdy współczynnik korelacji pojawia się w macierzy dwukrotnie (korelacja A z B jest równa korelacji B z A), warto pominąć połowę macierzy korelacji – dzięki temu usunięta zostanie tylko jedna z dwóch skorelowanych cech. Użyj do tego celu triku z maską.

To ćwiczenie jest częścią kursu

Redukcja wymiarowości w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Oblicz macierz korelacji dla ansur_df i zastosuj wartość bezwzględną tej macierzy.
  • Utwórz maskę logiczną z wartościami True w górnym prawym trójkącie i zastosuj ją do macierzy korelacji.
  • Ustaw próg współczynnika korelacji na 0.95.
  • Usuń z DataFrame'u wszystkie kolumny wymienione w to_drop.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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.")
Edytuj i uruchom kod