Začněte nyníZačněte zdarma

Filtrování silně korelovaných příznaků

Teď automatizuješ odstranění silně korelovaných příznaků v numerické datové sadě ANSUR. Vypočítáš korelační matici a odfiltrujete sloupce s korelačním koeficientem větším než 0,95 nebo menším než -0,95.

Protože se každý korelační koeficient v matici vyskytuje dvakrát (korelace A s B se rovná korelaci B s A), budeš chtít ignorovat polovinu korelační matice, aby byl odstraněn vždy jen jeden ze dvou korelovaných příznaků. K tomu využij techniku s maskou.

Toto cvičení je součástí kurzu

Redukce dimenzionality v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Vypočítej korelační matici ansur_df a vezmi absolutní hodnotu této matice.
  • Vytvoř booleovskou masku s hodnotami True v pravém horním trojúhelníku a aplikuj ji na korelační matici.
  • Nastav prahovou hodnotu korelačního koeficientu na 0.95.
  • Z DataFrame odstraň všechny sloupce uvedené v to_drop.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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.")
Upravit a spustit kód