Transformasi fitur
Anda sedang mendiskusikan himpunan data kredit dengan manajer bank. Ia menyarankan bahwa pengajuan pinjaman yang paling aman cenderung meminta jumlah kredit di kisaran menengah. Nilai yang terlalu rendah atau terlalu tinggi menunjukkan risiko yang tinggi. Ini berarti mungkin ada hubungan nonlinier antara variabel ini dan kelas. Anda ingin menguji hipotesis ini. Anda akan membangun transformasi nonlinier dari fitur tersebut. Lalu, Anda akan menilai fitur mana dari kedua fitur tersebut yang lebih baik dalam memprediksi kelas menggunakan SelectKBest() dan metrik chi2(), yang keduanya telah dimuat sebelumnya.
Data tersedia sebagai pandas DataFrame bernama credit, dengan kelas berada pada kolom class. Anda juga telah memuat pandas sebagai pd dan numpy sebagai np.
Latihan ini adalah bagian dari kursus
Merancang Alur Kerja Machine Learning di Python
Petunjuk latihan
- Definisikan fungsi yang mentransformasikan vektor numerik dengan menghitung selisih absolut setiap nilai terhadap nilai rata-rata vektor.
- Terapkan transformasi ini pada kolom
credit_amountdari himpunan data dan simpan pada kolom baru bernamadiff. - Buat pemilih fitur
SelectKBest()untuk memilih salah satu dari dua kolom,credit_amountdandiff, menggunakan metrikchi2(). - Periksa hasilnya.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Function computing absolute difference from column mean
def abs_diff(x):
return ____(x-____)
# Apply it to the credit amount and store to new column
credit['diff'] = ____
# Create a feature selector with chi2 that picks one feature
sk = ____(chi2, ____)
# Use the selector to pick between credit_amount and diff
sk.fit(____, credit['class'])
# Inspect the results
sk.____()