Daftar Isi:
- Memilih dengan tindakan univariat
- Bila menggunakan pilihan univariat, Anda harus memutuskan sendiri berapa banyak variabel yang harus disimpan: Pilihan serakah secara otomatis mengurangi jumlah fitur yang terlibat dalam model pembelajaran berdasarkan kontribusi efektifnya terhadap kinerja diukur dengan ukuran kesalahan.
Video: Python Dasar - 01 - Installasi & Testing (Tutorial Indonesia) 2024
Memilih variabel yang tepat dengan Python dapat memperbaiki proses belajar di sains data dengan mengurangi jumlah kebisingan (tidak berguna informasi) yang dapat mempengaruhi perkiraan peserta didik. Pemilihan variabel, oleh karena itu, dapat mengurangi varians prediksi secara efektif. Agar hanya melibatkan variabel yang berguna dalam pelatihan dan menghilangkan yang berlebihan, Anda dapat menggunakan teknik berikut:
-
Pendekatan univariat: Pilih variabel yang paling terkait dengan hasil target.
-
Pendekatan serakah atau terbelakang: Simpan hanya variabel yang dapat Anda hapus dari proses belajar tanpa merusak kinerjanya.
Memilih dengan tindakan univariat
Jika Anda memutuskan untuk memilih variabel berdasarkan tingkat hubungannya dengan targetnya, SelectPercentile kelas memberikan prosedur otomatis untuk menjaga hanya persentase tertentu dari fitur terbaik dan terkait. Metrik yang tersedia untuk asosiasi adalah
-
f_regression: Digunakan hanya untuk target numerik dan berdasarkan kinerja regresi linier.
-
f_classif: Digunakan hanya untuk target kategoris dan berdasarkan uji statistik Analisis Varians (ANOVA).
-
chi2: Lakukan statistik chi-square untuk target kategoris, yang kurang masuk akal untuk hubungan non linier antara variabel prediktif dan targetnya.
Saat mengevaluasi kandidat untuk masalah klasifikasi, f_classif dan chi2 cenderung menyediakan rangkaian variabel teratas yang sama. Masih merupakan praktik bagus untuk menguji pilihan dari kedua metrik asosiasi.
Selain menerapkan pilihan langsung dari asosiasi persentil teratas, SelectPercentile juga dapat memberi peringkat pada variabel terbaik untuk mempermudah menentukan seberapa persentilnya untuk mengecualikan fitur agar tidak berpartisipasi dalam proses pembelajaran. Kelas SelectKBest analog dalam fungsinya, namun memilih variabel k teratas, di mana k adalah angka, bukan persentil.
dari sklearn. feature_selection import SelectPercentile dari sklearn. feature_selection import f_regression Selector_f = SelectPercentile (f_regression, percentile = 25) Selector_f. cocok (X, y) untuk n, s dalam zip (boston. feature_names, Selector_f. scores_): print 'F-score:% 3. 2ft untuk fitur% s '% (s, n) F-score: 88. 15 untuk fitur CRIM F-score: 75. 26 untuk fitur ZN F-score: 153. 95 untuk fitur INDUS F-score: 15. 97 for fitur CHAS F-score: 112. 59 untuk fitur NOX F-score: 471. 85 untuk fitur RM F-score: 83.48 untuk fitur AGE F-score: 33. 58 untuk fitur DIS F-score: 85. 91 untuk fitur RAD F-score: 141. 76 untuk fitur TAX F-score: 175. 11 untuk fitur PTRATIO F-score: 63. 05 untuk fitur B F-score: 601. 62 untuk fitur LSTAT
Dengan menggunakan tingkat output asosiasi, Anda dapat memilih variabel yang paling penting untuk model pembelajaran mesin Anda, namun Anda harus waspada terhadap kemungkinan masalah ini: Beberapa variabel dengan asosiasi tinggi juga bisa berkorelasi tinggi, mengenalkan informasi duplikat, yang berperan sebagai noise dalam proses pembelajaran.
-
Beberapa variabel dapat dikenai sanksi, terutama yang biner (variabel yang menunjukkan status atau karakteristik dengan menggunakan nilai 1 jika ada, 0 jika tidak). Misalnya, perhatikan bahwa output menunjukkan variabel biner CHAS sebagai yang paling sedikit dikaitkan dengan variabel target (namun Anda tahu dari contoh sebelumnya bahwa ini berpengaruh dari fase validasi silang).
-
Proses seleksi univariat dapat memberi Anda keuntungan nyata bila Anda memiliki sejumlah besar variabel untuk dipilih dan semua metode lainnya tidak layak komputasi. Prosedur terbaik adalah mengurangi nilai SelectPercentile dengan setengah atau lebih dari variabel yang tersedia, mengurangi jumlah variabel ke jumlah yang dapat dikelola, dan akibatnya memungkinkan penggunaan metode yang lebih canggih dan tepat seperti pencarian serakah.
Menggunakan pencarian serakah
Bila menggunakan pilihan univariat, Anda harus memutuskan sendiri berapa banyak variabel yang harus disimpan: Pilihan serakah secara otomatis mengurangi jumlah fitur yang terlibat dalam model pembelajaran berdasarkan kontribusi efektifnya terhadap kinerja diukur dengan ukuran kesalahan.
Kelas RFECV, yang sesuai dengan data, dapat memberi Anda informasi tentang jumlah fitur yang berguna, mengarahkan mereka ke Anda, dan secara otomatis mengubah data X, dengan mengubah metode, menjadi seperangkat variabel yang dikurangi, seperti yang ditunjukkan pada contoh berikut:
dari sklearn. select_selection import RFECV selector = RFECV (estimator = regresi, cv = 10, scoring = "mean_squared_error") pemilih. fit (X, y) print ("Jumlah fitur optimal:% d"% selector n_features_) Jumlah fitur optimal: 6
Mungkin untuk mendapatkan indeks ke variabel optimum yang ditetapkan dengan memanggil atribut support_ dari RFECV kelas setelah Anda cocok itu.
cetak boston feature_names [pemilih support '] [' CHAS "NOX" RM "DIS" PTRATIO "LSTAT ']
Perhatikan bahwa CHAS sekarang termasuk di antara fitur yang paling prediktif, yang berbeda dengan hasil pencarian univariat. Metode RFECV dapat mendeteksi apakah suatu variabel penting, tidak peduli apakah itu biner, kategoris, atau numerik, karena secara langsung mengevaluasi peran yang dimainkan oleh fitur dalam prediksi.
Metode RFECV tentu lebih efisien, jika dibandingkan dengan pendekatan -univariat, karena mempertimbangkan fitur yang sangat berkorelasi dan disetel untuk mengoptimalkan ukuran evaluasi (yang biasanya bukan Chi-square atau F-score). Menjadi proses serakah, ini menuntut secara komputasi dan hanya dapat memperkirakan prediktor terbaik.
Saat RFECV mempelajari sekumpulan variabel terbaik dari data, seleksi mungkin terlalu banyak, itulah yang terjadi dengan semua algoritma pembelajaran mesin lainnya. Mencoba RFECV pada sampel data pelatihan yang berbeda dapat mengkonfirmasi variabel terbaik untuk digunakan.