Scikit-Learn ialah perpustakaan pembelajaran mesin Python yang biasa digunakan yang menyediakan banyak alatan untuk tugasan pembelajaran mesin seperti prapemprosesan data, pemilihan ciri, pemilihan model dan penilaian. Pemilihan ciri ialah salah satu langkah utama dalam pembelajaran mesin Ia boleh mengurangkan kerumitan model dan meningkatkan keupayaan generalisasi model, dengan itu meningkatkan prestasi model. Pemilihan ciri adalah sangat mudah dengan Scikit-Learn. Pertama, kita boleh menggunakan pelbagai kaedah statistik (seperti varians, pekali korelasi, dll.) untuk menilai kepentingan ciri. Kedua, Scikit-Learn menyediakan satu siri algoritma pemilihan ciri, seperti penghapusan ciri rekursif (RFE), pemilihan ciri berasaskan pokok, dsb. Algoritma ini boleh membantu kami memilih ciri yang paling berkaitan secara automatik. Akhir sekali, kita boleh melatih model menggunakan ciri yang dipilih dan menilainya. Dengan menggunakan Scikit-Learn untuk pemilihan ciri, kami boleh memperoleh model pembelajaran mesin yang lebih tepat dan cekap.
Dalam pembelajaran mesin, pemilihan ciri adalah untuk memilih beberapa ciri yang paling relevan daripada data asal untuk mengurangkan kerumitan model dan meningkatkan prestasi model. Matlamatnya adalah untuk mencari bilangan minimum ciri sambil mengekalkan kebolehpisahan dan prestasi ramalan set data. Pemilihan ciri membantu menyelesaikan masalah berikut:
1 Meningkatkan keupayaan generalisasi model: Pemilihan ciri boleh mengurangkan hingar dan ciri berlebihan, dengan itu meningkatkan keupayaan generalisasi model.
2. Kurangkan masa latihan: Pemilihan ciri boleh mengurangkan masa latihan model kerana model hanya perlu mempelajari ciri yang paling penting.
3 Meningkatkan kebolehtafsiran model: Pemilihan ciri boleh membantu kami memahami ciri yang paling penting untuk ramalan model.
Kaedah pemilihan ciri boleh dibahagikan kepada tiga kategori:
1 Kaedah penapisan: Kaedah ini menggunakan kaedah statistik atau teori maklumat untuk menilai perkaitan setiap ciri dan memilih ciri yang paling relevan. Kaedah penapisan selalunya pantas tetapi mungkin mengabaikan interaksi antara ciri.
2. Kaedah pembalut: Kaedah ini menggunakan prestasi model sebagai penunjuk pemilihan ciri dan cuba mencari subset ciri yang optimum. Kaedah pembungkusan secara amnya lebih tepat tetapi lebih memakan masa daripada kaedah penapisan.
3 Kaedah benam: Kaedah ini menggunakan pemilihan ciri sebagai sebahagian daripada model dan pilih subset ciri optimum semasa proses pembelajaran. Kaedah benam secara amnya lebih tepat daripada kaedah penapisan, tetapi secara pengiraan lebih mahal.
Dalam Scikit-Learn, kita boleh menggunakan pelbagai kaedah pemilihan ciri untuk memilih subset ciri yang optimum.
Scikit-Learn menyediakan banyak kaedah pemilihan ciri, termasuk kaedah penapisan, kaedah pembungkusan dan kaedah benam. Beberapa kaedah pemilihan ciri yang biasa digunakan akan diperkenalkan di bawah.
1. Kaedah pemilihan varians
Kaedah pemilihan varians ialah kaedah penapisan yang menilai varians setiap ciri dan memilih ciri dengan varians yang tinggi. Kaedah pemilihan varians berfungsi dengan baik untuk ciri binari atau angka, tetapi bukan untuk ciri kategori.
Dalam Scikit-Learn, kita boleh menggunakan kelas VarianceThreshold untuk melaksanakan kaedah pemilihan varians. Kelas ini boleh menetapkan ambang varians dan hanya mengekalkan ciri yang variansnya lebih besar daripada ambang. Contohnya, kod berikut akan mengalih keluar ciri dengan varians kurang daripada 0.01:
from sklearn.feature_selection import VarianceThreshold # 创建方差选择器对象 selector = VarianceThreshold(threshold=0.01) # 训练方差选择器并应用于数据 X_train_selected = selector.fit_transform(X_train)
2. Kaedah maklumat bersama
Kaedah maklumat bersama ialah kaedah penapisan yang menilai maklumat bersama antara setiap ciri dan pembolehubah sasaran dan memilihnya dengan Ciri-ciri maklumat bersama yang tinggi. Kaedah maklumat bersama sesuai untuk ciri kategori atau ciri berangka.
Dalam Scikit-Learn, kita boleh menggunakan fungsi mutual_info_classif dan mutual_info_regression untuk mengira maklumat bersama ciri kategori dan ciri berangka, seperti:
rreeeKita boleh memilih ciri dengan maklumat bersama yang tinggi, seperti:
Kod di atas 10 ciri dengan maklumat bersama tertinggi akan dipilih. 3. Kaedah penyingkiran ciri rekursifKaedah penyingkiran ciri rekursif ialah kaedah pembalut yang menggunakan prestasi model sebagai penunjuk pemilihan ciri dan cuba mencari subset ciri yang optimum. Penghapusan ciri rekursif bermula dengan set ciri awal, menggunakan model untuk menentukan kedudukan ciri dan mengalih keluar ciri yang paling kurang penting sehingga bilangan ciri yang dikehendaki dicapai. Dalam Scikit-Learn, kita boleh menggunakan kelas RFECV untuk melaksanakan kaedah penyingkiran ciri rekursif. Kelas ini boleh menyediakan model dan kaedah pengesahan silang, dan menggunakan penghapusan ciri rekursif untuk memilih subset ciri optimum. Contohnya:from sklearn.feature_selection import mutual_info_classif,mutual_info_regression # 计算数值特征的互信息 mi = mutual_info_regression(X_train, y_train) # 计算分类特征的互信息 mi = mutual_info_classif(X_train, y_train)
from sklearn.feature_selection import SelectKBest # 创建互信息选择器对象 selector = SelectKBest(mutual_info_classif, k=10) # 训练互信息选择器并应用于数据 X_train_selected = selector.fit_transform(X_train, y_train)
Scikit-Learn menyediakan banyak kaedah pemilihan ciri, termasuk kaedah penapisan, kaedah pembalut dan kaedah benam. Setiap kaedah mempunyai kelebihan dan kekurangannya, dan kita boleh memilih kaedah yang sesuai berdasarkan ciri-ciri set data dan keperluan masalah. Dalam amalan, pemilihan ciri boleh membantu kami mengurangkan kerumitan model, meningkatkan keupayaan generalisasi model, mengurangkan masa latihan dan meningkatkan kebolehtafsiran model.
Atas ialah kandungan terperinci Kaedah dan langkah pemilihan ciri Scikit-Learn. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!