Anda tidak perlu pengetahuan domain (pengetahuan tentang apa artinya data Anda ) untuk melakukan rekayasa fitur (menemukan cara yang lebih ekspresif dalam membingkai data Anda).
Seperti yang dijelaskan Tu N. , Anda dapat menemukan kombinasi fitur "cepat dan kotor" yang dapat membantu dengan cukup mudah. Diberikan keluaran dan fitur individual , Anda dapat mengambil transformasi berikut, . Pemeriksaan cepat kegunaan transformasi adalah jika korelasi antara lebih tinggi dari korelasi antara .x x ′ ∈ { e x , log ( x ) , x 2 , x 3 , tanh ( x ) } { y , x ′ } { y , x }yxx′∈{ex,log(x),x2,x3,tanh(x)}{y,x′}{y,x}
Peringatan pada korelasi: Korelasi tidak menunjukkan segalanya dan tergantung pada model yang Anda gunakan (sangat non-linear seperti NN atau RF) dan interaksi dengan variabel lain, perubahan dalam korelasi dapat berarti apa-apa.
Namun, jika Anda menggunakan model linier sederhana seperti regresi logistik, itu adalah indikator kinerja yang OK. Namun, cara terbaik untuk mengevaluasi transformasi seperti itu, sebagaimana dicatat oleh Fokhruz Zaman , adalah membangun sebuah model dengan dan tanpa fitur yang diubah, dan melihat bagaimana kesalahan validasi (pada lipatan Validasi Lintas Anda) berkembang.
Agak mudah untuk melihat transformasi fitur tunggal dengan cara ini. Itu berlaku untuk banyak data, di mana hubungan yang lebih ekspresif antara input dan output Anda bisa pada skala yang berbeda. Sebagai contoh, hubungan antara Penghasilan dan "Kebahagiaan" tampaknya bersifat logaritmik, tetapi Anda tidak akan pernah mencatat log penghasilan peserta secara langsung.
Menemukan kombinasi fitur lebih sulit. Sebagai permulaan, jika Anda ingin menguji setiap penambahan 2 fitur, dan Anda memiliki fitur , Anda memiliki urutan transformasi untuk diuji. Untuk menemukan transformasi seperti itu, Anda dapat menerapkan model nonlinear (seperti NN atau RF) untuk masalah dan mencoba melihat apa yang sedang dipelajari. Jika Anda dapat mengidentifikasi apa yang dilakukan lapisan menengah dalam NN, Anda dapat melakukan pra-komputasi hasilnya dan menambahkannya sebagai fitur baru. Tidak perlu menghitungnya lagi, dan mungkin akan mencoba mempelajari sesuatu yang baru.D 2DD2
Mungkin sulit untuk menafsirkan representasi internal NN, atau bahkan menafsirkan pentingnya fitur di Hutan Acak. Metode yang lebih mudah, dan mungkin lebih cocok untuk tujuan ini, model akan Meningkatkan dengan pohon keputusan. Ada banyak perpustakaan yang menerapkan Boosting, dan jika Anda masuk ke dalam persaingan Kaggle seperti yang tampaknya disiratkan oleh pos Anda, XGBoost tampaknya digunakan oleh banyak peserta, sehingga Anda mungkin menemukan beberapa bantuan / tutorial tentang apa yang akan saya uraikan.
Pertama, jalankan algoritme peningkatan Anda menggunakan hanya tunggul , pohon keputusan 1 tingkat. Tunggul sangat lemah, tetapi Meningkatkan membuatnya menjadi model yang masuk akal. Ini akan bertindak sebagai garis dasar Anda. Bergantung pada pustaka yang Anda gunakan, Anda harus dapat menampilkan dengan mudah fitur mana yang paling banyak digunakan, dan Anda harus memplotnya terhadap respons (atau melakukan histogram jika responsnya kategorikal) untuk mengidentifikasi beberapa pola. Ini mungkin memberi Anda intuisi tentang apa yang akan menjadi transformasi fitur tunggal yang baik.
Selanjutnya, jalankan algoritma Boosting dengan pohon keputusan 2-tingkat. Model ini jauh lebih kompleks daripada yang sebelumnya; jika dua variabel yang diambil bersama-sama memiliki kekuatan lebih dari yang diambil secara individual, model ini harus mengungguli yang sebelumnya (sekali lagi, tidak dalam hal kesalahan pelatihan, tetapi pada kesalahan validasi!). Berdasarkan ini, Anda harus dapat mengekstraksi variabel mana yang sering digunakan bersama, dan ini akan mengarahkan Anda ke transformasi multi-fitur yang potensial.
Pada materi terkait, saya akan menyarankan video berikut karena mudah diikuti