k-fold Cross validasi pembelajaran ensemble

20

Saya bingung tentang bagaimana cara mempartisi data untuk validasi lintas k-fold pembelajaran ensemble.

Dengan asumsi saya memiliki kerangka kerja ensemble untuk klasifikasi. Lapisan pertama saya berisi model klasifikasi, misalnya svm, pohon keputusan.

Lapisan kedua saya berisi model pemungutan suara, yang menggabungkan prediksi dari lapisan pertama dan memberikan prediksi akhir.

Jika kita menggunakan validasi 5 lipatan silang, saya berpikir untuk menggunakan 5 lipatan sebagai berikut:

  • 3 lipatan untuk melatih lapisan pertama
  • 1 kali lipat untuk melatih lapisan kedua
  • 1 kali lipat untuk pengujian

Apakah ini cara yang benar? Haruskah data pelatihan untuk lapisan pertama dan kedua bersifat independen? Saya pikir mereka harus independen sehingga kerangka kerja ansambel akan kuat.

Teman saya menyarankan data pelatihan untuk lapisan pertama dan kedua harus sama, yaitu

  • 4 lipatan untuk pelatihan lapisan pertama dan kedua
  • 1 kali lipat untuk pengujian

Dengan cara ini, kita akan memiliki kesalahan yang lebih akurat dari kerangka kerja pembelajaran ensemble, dan penyempurnaan kerangka secara iteratif akan lebih akurat, karena didasarkan pada data pelatihan tunggal. Selain itu, lapisan kedua mungkin bias terhadap data pelatihan independen

Setiap saran sangat dihargai

Michael
sumber

Jawaban:

26

Pembelajaran ensemble mengacu pada beberapa metode yang berbeda. Meningkatkan dan mengantongi mungkin adalah dua yang paling umum. Tampaknya Anda mencoba menerapkan metode pembelajaran ensemble yang disebut susun . Stacking bertujuan untuk meningkatkan akurasi dengan menggabungkan prediksi dari beberapa algoritma pembelajaran. Ada beberapa cara untuk melakukan stacking dan tidak banyak teori yang ketat. Ini intuitif dan populer.

Pertimbangkan pendekatan teman Anda. Anda memasang model lapisan pertama pada empat dari lima lipatan dan kemudian memasang model lapisan kedua (pemungutan suara) menggunakan empat lipatan yang sama. Masalahnya adalah bahwa lapisan kedua akan mendukung model dengan kesalahan pelatihan terendah. Anda menggunakan data yang sama agar sesuai dengan model dan untuk merancang prosedur untuk mengagregasi model tersebut. Lapisan kedua harus menggabungkan model menggunakan prediksi out-of-sample . Metode Anda lebih baik, tetapi masih ada cara untuk melakukan lebih baik lagi.

Kami akan terus meninggalkan satu lipatan untuk tujuan pengujian. Ambil empat lipatan dan gunakan CV 4 kali lipat untuk mendapatkan prediksi contoh untuk masing-masing model lapisan pertama Anda pada keempat lipatan. Yaitu, tinggalkan satu dari empat lipatan dan sesuaikan model pada tiga lainnya dan kemudian prediksi pada data yang tersedia. Ulangi untuk keempat lipatan sehingga Anda keluar dari prediksi sampel pada keempat lipatan. Kemudian paskan model lapisan kedua pada prediksi out-of-sample ini. Kemudian pasang kembali model lapisan pertama pada keempat lipatan. Sekarang Anda bisa menuju lipatan kelima yang belum Anda sentuh. Gunakan model lapisan pertama yang cocok pada keempat lipatan bersama dengan model lapisan kedua untuk memperkirakan kesalahan pada data yang tertahan. Anda dapat mengulangi proses ini lagi dengan lipatan-lipatan lain yang tertahan pada pemasangan model lapisan pertama dan kedua.

Jika Anda puas dengan kinerjanya maka hasilkan prediksi out-of-sample untuk model lapisan pertama pada kelima lipatan dan kemudian pasangkan model lapisan kedua. Kemudian paskan model lapisan pertama untuk terakhir kalinya pada semua data Anda dan gunakan ini dengan model lapisan kedua pada data baru!

Akhirnya, beberapa saran umum. Anda akan mendapatkan lebih banyak manfaat jika model lapisan pertama Anda cukup berbeda satu sama lain. Anda berada di jalur yang benar di sini menggunakan SVM dan pohon keputusan, yang sangat berbeda satu sama lain. Karena ada efek rata-rata dari model lapisan kedua, Anda mungkin ingin mencoba melengkapi model lapisan pertama Anda secara bertahap, terutama jika Anda memiliki banyak dari mereka. Lapisan kedua umumnya adalah sesuatu yang sederhana dan kendala seperti non-negatif dari bobot dan monotonitas adalah hal biasa. Akhirnya, ingat bahwa penumpukan bergantung pada validasi silang, yang hanya merupakan perkiraan risiko sebenarnya. Jika Anda mendapatkan tingkat kesalahan yang sangat berbeda dan bobot model yang sangat berbeda di semua lipatan, ini menunjukkan bahwa perkiraan risiko Anda berdasarkan cv memiliki varian yang tinggi. Dalam hal ini, Anda mungkin ingin mempertimbangkan campuran sederhanamodel lapisan pertama Anda. Atau, Anda dapat berkompromi dengan menumpuk dengan kendala pada berat maks / menit yang ditempatkan pada setiap model lapisan pertama.

MichaelJ
sumber
Terima kasih atas saran Anda yang sangat membantu. Saya tidak mengerti paragraf keempat Anda. Tampaknya bagi saya bahwa pelatihan ulang lagi? Saya pikir paragraf ketiga Anda telah menyimpulkan metode yang Anda usulkan?
Michael
1
Seperti biasa dengan validasi silang, setelah kami puas dengan model kami melatih kembali menggunakan semua data. Model yang dijelaskan dalam paragraf tiga tidak cocok dengan data yang tersedia. Mengumpulkan data adalah alat untuk memandu evaluasi dan pemilihan model. Anda harus selalu cocok dengan model akhir pada semua data.
MichaelJ
Tampaknya bagi saya bahwa pendekatan ini mirip dengan jaringan saraf feedforward
Michael
Penjelasan yang bagus. Satu-satunya yang kurang adalah diagram;)
josh