Yüksek korelasyonlu özellikleri filtreleme
Sayısal ANSUR veri kümesinde yüksek korelasyonlu özellikleri otomatik olarak kaldıracaksın. Korelasyon matrisini hesaplayıp, korelasyon katsayısı 0.95'ten büyük veya -0.95'ten küçük olan sütunları filtreleyeceksin.
Her korelasyon katsayısı matriste iki kez göründüğü için (A ile B'nin korelasyonu B ile A'nın korelasyonuna eşittir) iki korele özellikten yalnızca birinin kaldırılması için korelasyon matrisinin yarısını yok saymak isteyeceksin. Bunun için bir maskeleme hilesi kullan.
Bu egzersiz, kursun bir parçasıdır
Python'da Boyut Azaltma
Egzersiz talimatları
ansur_df'in korelasyon matrisini hesapla ve bu matrisin mutlak değerini al.- Sağ üst üçgende
Truedeğerleri olan bir boolean maske oluştur ve bunu korelasyon matrisine uygula. - Korelasyon katsayısı eşik değerini
0.95olarak ayarla. - DataFrame'den
to_dropiçinde listelenen tüm sütunları düşür.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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.")