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
Pokyny k cvičení
- Vypočítej korelační matici
ansur_dfa vezmi absolutní hodnotu této matice. - Vytvoř booleovskou masku s hodnotami
Truev 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.")