Langkah Pembelajaran Mesin

9

Manakah dari set pilihan langkah di bawah ini yang benar ketika membuat model prediksi?

Pilihan 1:

Pertama, hilangkan prediktor yang paling buruk, dan siapkan yang tersisa jika perlu, kemudian latih berbagai model dengan validasi silang, pilih beberapa yang terbaik, identifikasi prediktor teratas yang digunakan masing-masing, kemudian latih kembali model-model tersebut dengan hanya prediktor tersebut dan evaluasi keakuratannya. lagi dengan cross-validation, lalu pilih yang terbaik dan latihlah pada set pelatihan lengkap menggunakan prediktor utamanya dan kemudian gunakan untuk memprediksi set tes.

Pilihan 2:

Pertama menghilangkan prediktor yang paling buruk, kemudian memproses sisanya jika diperlukan, kemudian menggunakan teknik pemilihan fitur seperti pemilihan fitur rekursif (mis. RFE dengan rf) dengan validasi silang misalnya untuk mengidentifikasi jumlah ideal dari prediktor kunci dan apa yang diprediksi oleh para prediktor ini. adalah, kemudian latih tipe model yang berbeda dengan validasi silang dan lihat mana yang memberikan akurasi terbaik dengan prediktor top yang diidentifikasi sebelumnya. Kemudian latih salah satu model terbaik lagi dengan prediktor tersebut pada set pelatihan penuh dan kemudian gunakan untuk memprediksi set tes.

AK
sumber
1
Apa yang Anda maksud saat itu memproses sisanya jika diperlukan ? Apakah ini pembersihan data?
Dawny33
1
Saya bermaksud memproses kembali fitur-fitur yang tersisa yang menurut Anda berguna. Maksud saya dengan preprocessing, melakukan penskalaan, atau transformasi seperti log, atau lainnya jika dan sesuai kebutuhan.
AK
Ahh, seperti yang saya harapkan :) Omong-omong, saya telah menulis jawaban dengan alur kerja yang saya dan tim saya ikuti secara umum!
Dawny33

Jawaban:

16

Saya menemukan kedua opsi Anda sedikit salah. Jadi, ini umumnya (sangat luas) bagaimana alur kerja pemodelan prediktif terlihat seperti:

  • Pembersihan Data : Memakan waktu terbanyak, tetapi setiap detik yang dihabiskan di sini sepadan. Semakin bersih data Anda melalui langkah ini, semakin sedikit total waktu yang Anda habiskan.
  • Memisahkan set data : Set data akan dibagi menjadi set pelatihan dan pengujian, yang akan digunakan untuk tujuan pemodelan dan prediksi masing-masing. Selain itu, pemisahan tambahan sebagai set validasi silang juga perlu dilakukan.
  • Transformasi dan Reduksi: Melibatkan proses seperti transformasi, penskalaan rata-rata dan median, dll.
  • Pemilihan Fitur: Ini dapat dilakukan dalam banyak cara seperti pemilihan ambang, pemilihan bagian, dll.
  • Merancang model prediktif: Merancang model prediktif pada data pelatihan tergantung pada fitur yang Anda miliki.
  • Validasi silang:
  • Prediksi Akhir, Validasi
Dawny33
sumber
Saya pikir langkah Anda cocok dengan opsi saya 2. Pemahaman saya adalah bahwa sebagai bagian dari langkah Pemilihan Fitur, kita dapat menjalankan fungsi penghapusan fitur rekursif (RFE) menggunakan hutan acak misalnya dengan validasi silang untuk menentukan jumlah prediktor terbaik dan apa mereka kemudian menggunakan prediktor tersebut untuk melatih beberapa algoritma dengan validasi silang dan membandingkan akurasi untuk mendapatkan model terbaik yang menggunakan prediktor terbaik itu. Bagaimana menurut anda?
AK
@AndrewKostandy Ya, algoritma pemilihan subset untuk pemilihan fitur hampir bekerja dengan cara yang sama :)
Dawny33
Sama-sama. Saat ini saya sedang belajar untuk ujian di mana salah satu pertanyaan standar profesor adalah "apa yang Anda pikirkan pertama kali setelah mendapatkan dan membersihkan data?" :-)
Martin Thoma
@ Dawny33 Tidakkah Anda ingin melakukan transformasi, penskalaan dll sebelum memisahkan dataset Anda menjadi pelatihan dan pengujian?
Minu
1
Adakah alasan mengapa Anda melakukan transformasi variabel dan penskalaan hanya untuk data pelatihan? Lalu bagaimana Anda menyesuaikan data uji agar cocok? Hanya penasaran.
Minu
3

Di mana pemilihan fitur menemukan tempat di saluran pipa Anda tergantung pada masalahnya. Jika Anda tahu data Anda dengan baik, Anda dapat memilih fitur berdasarkan pengetahuan ini secara manual. Jika tidak - percobaan dengan model menggunakan validasi silang mungkin yang terbaik. Mengurangi sejumlah fitur priorat dengan beberapa teknik tambahan seperti chi2 atau PCA sebenarnya dapat mengurangi akurasi model.

Dalam pengalaman saya dengan klasifikasi teks dengan SGD classifier misalnya meninggalkan semua seratus ribu kata dikodekan sebagai fitur biner membawa hasil yang lebih baik dibandingkan dengan mengurangi menjadi beberapa ribu atau ratusan. Waktu pelatihan sebenarnya lebih cepat dengan semua fitur karena pemilihan fitur agak lambat dengan toolset saya (sklearn) karena tidak stokastik seperti SGD.

Multikolinearitas adalah sesuatu yang harus diwaspadai, tetapi penafsiran fitur mungkin sama pentingnya.

Kemudian orang-orang melaporkan mendapatkan hasil terbaik dengan ansambel model. Setiap model menangkap bagian tertentu dari ruang informasi yang lebih baik daripada yang lain. Itu juga akan menghalangi Anda untuk memilih fitur sebelum mencocokkan semua model yang akan Anda masukkan ke dalam ansambel Anda.

Diego
sumber