Menyaring fitur yang sangat berkorelasi
Anda akan mengotomatisasi penghapusan fitur yang sangat berkorelasi dalam himpunan data ANSUR numerik. Anda akan menghitung matriks korelasi dan menyaring kolom yang memiliki koefisien korelasi lebih dari 0,95 atau kurang dari -0,95.
Karena setiap koefisien korelasi muncul dua kali dalam matriks (korelasi A ke B sama dengan korelasi B ke A), Anda perlu mengabaikan separuh matriks korelasi agar hanya satu dari dua fitur yang berkorelasi yang dihapus. Gunakan trik mask untuk tujuan ini.
Latihan ini adalah bagian dari kursus
Pengurangan Dimensi dengan Python
Petunjuk latihan
- Hitung matriks korelasi dari
ansur_dfdan ambil nilai absolut dari matriks ini. - Buat mask boolean dengan nilai
Truepada segitiga kanan atas dan terapkan pada matriks korelasi. - Tetapkan ambang koefisien korelasi ke
0.95. - Hapus semua kolom yang tercantum di
to_dropdari DataFrame.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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.")