Isi kandungan:
- Memilih dengan langkah univariat
- Apabila menggunakan pilihan univariat, anda perlu memutuskan sendiri berapa banyak pembolehubah yang dapat dipertahankan: Pemilihan tamak secara automatik mengurangkan bilangan ciri yang terlibat dalam model pembelajaran atas dasar sumbangan berkesan mereka kepada prestasi yang diukur dengan ukuran ralat.
Video: From C to Python by Ross Rheingans-Yoo 2024
Memilih pembolehubah yang betul dalam Python dapat meningkatkan proses pembelajaran dalam sains data dengan mengurangkan jumlah bunyi (tidak berguna maklumat) yang boleh mempengaruhi anggaran pelajar. Oleh itu, pemilihan yang berubah-ubah dapat mengurangkan variasi ramalan dengan berkesan. Untuk melibatkan hanya pemboleh ubah yang berguna dalam latihan dan meninggalkan yang berlebihan, anda boleh menggunakan teknik ini:
-
Pendekatan univariat: Pilih pemboleh ubah yang paling berkaitan dengan hasil sasaran.
-
Pendekatan tamak atau mundur: Pastikan hanya pemboleh ubah yang boleh anda keluarkan dari proses pembelajaran tanpa merosakkan prestasinya.
Memilih dengan langkah univariat
Jika anda memutuskan untuk memilih pemboleh ubah oleh tahap persatuan dengan sasarannya, SelectPercentile kelas menyediakan prosedur automatik untuk menyimpan hanya peratusan tertentu yang terbaik, ciri-ciri yang berkaitan. Metrik yang tersedia untuk persatuan adalah
-
f_regression: Digunakan hanya untuk sasaran angka dan berdasarkan prestasi regresi linier.
-
f_classif: Hanya digunakan untuk sasaran kategori dan berdasarkan ujian statistik Analisis (Variasi) (ANOVA).
-
chi2: Menjalankan statistik chi-square untuk sasaran kategori, yang kurang masuk akal kepada hubungan tak linear antara pemboleh ubah ramalan dan sasarannya.
Apabila menilai calon untuk masalah klasifikasi, f_classif dan chi2 cenderung menyediakan set pembolehubah teratas yang sama. Ia masih merupakan amalan yang baik untuk menguji pilihan dari kedua-dua metrik persatuan.
Selain menerapkan pemilihan langsung persatuan persentil teratas, SelectPercentile juga boleh menilai pembolehubah terbaik untuk membuat keputusan lebih mudah untuk menentukan peratus percentile untuk mengecualikan ciri daripada menyertai proses pembelajaran. Kelas SelectKBest adalah sama dengan fungsinya, tetapi ia memilih pembolehubah k atas, di mana k adalah nombor, bukan persentil.
dari sklearn. feature_selection import SelectPercentile from sklearn. feature_selection import f_regression Selector_f = SelectPercentile (f_regression, percentile = 25) Selector_f. patut (X, y) untuk n, s dalam zip (boston. feature_names, Selector_f. scores_): mencetak 'F-score:% 3. 2ft untuk ciri% s '% (s, n) Skor F: 88. 15 untuk ciri CRIM F-score: 75. 26 untuk ciri ZN F-score: 153. 95 untuk ciri INDUS F-score: ciri CHAS F-score: 112. 59 untuk ciri NOX F-score: 471. 85 untuk ciri RM F-score: 83.48 untuk ciri AGE F-score: 33. 58 untuk ciri DIS F-score: 85. 91 untuk ciri RAD F-score: 141. 76 untuk ciri CAKUP F-score: 175. 11 untuk ciri PTRATIO F-score: 63. 05 untuk ciri B F-score: 601. 62 untuk ciri LSTAT
Menggunakan tahap output persatuan membantu anda memilih pembolehubah yang paling penting untuk model pembelajaran komputer anda, tetapi anda harus berhati-hati untuk masalah yang mungkin: > Sesetengah pembolehubah yang mempunyai persatuan tinggi juga boleh berkorelasi tinggi, memperkenalkan maklumat pendua, yang bertindak sebagai bunyi dalam proses pembelajaran.
-
Sesetengah pembolehubah boleh dihukum, terutamanya binari (pembolehubah yang menunjukkan status atau ciri menggunakan nilai 1 apabila ia hadir, 0 apabila tidak). Sebagai contoh, perhatikan bahawa output menunjukkan pemboleh ubah biner CHAS sebagai yang paling tidak berkaitan dengan pemboleh ubah sasaran (tetapi anda tahu dari contoh sebelumnya bahawa ia berpengaruh dari fasa silang pengesahan).
-
Proses pemilihan univariat boleh memberi anda kelebihan sebenar apabila anda mempunyai sejumlah besar pemboleh ubah untuk dipilih dan semua kaedah lain berubah menjadi tidak dapat dikomputasi. Prosedur terbaik adalah untuk mengurangkan nilai SelectPercentile dengan separuh atau lebih daripada pembolehubah yang ada, mengurangkan bilangan pembolehubah kepada nombor terkawal, dan dengan itu membolehkan penggunaan kaedah yang lebih canggih dan lebih tepat seperti carian tamak.
Menggunakan carian tamak
Apabila menggunakan pilihan univariat, anda perlu memutuskan sendiri berapa banyak pembolehubah yang dapat dipertahankan: Pemilihan tamak secara automatik mengurangkan bilangan ciri yang terlibat dalam model pembelajaran atas dasar sumbangan berkesan mereka kepada prestasi yang diukur dengan ukuran ralat.
Kelas RFECV, sesuai dengan data, dapat memberi anda maklumat tentang jumlah ciri yang berguna, tunjukkan kepada anda, dan secara automatik mengubah data X, dengan mengubah kaedah, ke dalam kumpulan variabel yang dikurangkan, seperti yang ditunjukkan dalam contoh berikut:
dari sklearn. feature_selection import RFECV selector = RFECV (estimator = regresi, cv = 10, scoring = "mean_squared_error") pemilih. cetak patut (X, y) cetak ("bilangan ciri optimum:% d" pemilih% n_features_) Bilangan ciri optimum: 6
Boleh diperolehi indeks ke set pembolehubah yang optimum dengan menghubungi sokongan atribut_ dari RFECV kelas selepas anda sesuai dengannya.
boston cetak. feature_names [pemilih. support_] ['CHAS "NOX" RM "DIS" PTRATIO "LSTAT']
Perhatikan bahawa CHAS kini termasuk di antara ciri-ciri yang paling ramalan, yang berbeza dengan hasil dari carian univariat. adalah penting, tidak kira sama ada ia adalah binari, kategoris atau numerik, kerana ia secara langsung menilai peranan yang dimainkan oleh ciri dalam ramalan.
Kaedah RFECV pastinya lebih cekap, berbanding dengan pendekatan perduaan, kerana ia menganggap ciri-ciri yang sangat berkorelasi dan ditala untuk mengoptimumkan ukuran penilaian (yang selalunya bukan Chi-square atau F-score). Sebagai proses tamak, ia menghendaki pengiraan dan mungkin hanya kira-kira set peramal terbaik.
Oleh kerana RFECV mempelajari kumpulan pembolehubah yang terbaik daripada data, pemilihan itu boleh menjadi lebih baik, iaitu apa yang berlaku dengan semua algoritma mesin pembelajaran yang lain. Mencuba RFECV pada sampel yang berlainan dalam data latihan boleh mengesahkan pemboleh ubah terbaik untuk digunakan.