Hapus prediktor dengan varians nyaris nol
Seperti yang Anda lihat di video, untuk rangkaian latihan berikutnya Anda akan menggunakan himpunan data blood-brain. Ini adalah himpunan data biokimia dengan tugas memprediksi nilai berikut untuk sekumpulan senyawa biokimia:
log((concentration of compound in brain) /
(concentration of compound in blood))
Nilai ini memberikan metrik kuantitatif tentang kemampuan senyawa melewati blood-brain barrier, dan berguna untuk memahami sifat biologis penghalang tersebut.
Salah satu hal menarik dari himpunan data ini adalah banyaknya variabel, dan banyak di antaranya memiliki varians yang sangat rendah. Artinya, variabel-variabel tersebut memuat sangat sedikit informasi karena sebagian besar nilainya sama (misalnya nol).
Untungnya, caret memiliki fungsi utilitas bernama nearZeroVar() untuk menghapus variabel seperti ini agar menghemat waktu selama pemodelan.
nearZeroVar() menerima data x, lalu melihat rasio antara nilai yang paling sering muncul terhadap nilai kedua yang paling sering muncul, freqCut, serta persentase nilai berbeda terhadap jumlah total sampel, uniqueCut. Secara bawaan, caret menggunakan freqCut = 19 dan uniqueCut = 10, yang cukup konservatif. Saya cenderung sedikit lebih agresif dan menggunakan freqCut = 2 serta uniqueCut = 20 saat memanggil nearZeroVar().
Latihan ini adalah bagian dari kursus
Machine Learning dengan caret di R
Petunjuk latihan
bloodbrain_x dan bloodbrain_y sudah dimuat di ruang kerja Anda.
- Identifikasi prediktor dengan varians nyaris nol dengan menjalankan
nearZeroVar()pada himpunan data blood-brain. Simpan hasilnya sebagai objek bernamaremove_cols. GunakanfreqCut = 2danuniqueCut = 20saat memanggilnearZeroVar(). - Gunakan
names()untuk membuat sebuah vektor berisi semua nama kolom daribloodbrain_x. Sebut iniall_cols. - Buat kerangka data baru bernama
bloodbrain_x_smalldengan variabel varians nyaris nol telah dihapus. Gunakansetdiff()untuk menyaring nama kolom yang ingin Anda pertahankan (yaitu yang tidak ingin Anda hapus.)
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Identify near zero variance predictors: remove_cols
remove_cols <- nearZeroVar(___, names = TRUE,
freqCut = ___, uniqueCut = ___)
# Get all column names from bloodbrain_x: all_cols
# Remove from data: bloodbrain_x_small
bloodbrain_x_small <- bloodbrain_x[ , setdiff(___, ___)]