Nested cross-validation - apa bedanya dengan pemilihan model melalui kfold CV pada set pelatihan?


10

Saya sering melihat orang-orang membicarakan validasi silang 5x2 sebagai kasus khusus validasi silang bersarang .

Saya berasumsi angka pertama (di sini: 5) mengacu pada jumlah lipatan di loop dalam dan nomor kedua (di sini: 2) mengacu pada jumlah lipatan di loop luar? Jadi, bagaimana hal ini berbeda dari pemilihan model dan pendekatan evaluasi "tradisional"? Dengan "tradisional", maksud saya

  • pisahkan dataset menjadi pelatihan terpisah (mis., 80%) dan set tes
  • gunakan k-fold cross-validation (mis. k = 10) untuk penyetelan hyperparameter dan pemilihan model pada set pelatihan
  • mengevaluasi kinerja generalisasi dari model yang dipilih menggunakan set tes

Bukankah 5x2 persis sama kecuali bahwa set tes dan pelatihan memiliki ukuran yang sama jika k = 2?


1
Anda benar, dalam hal ini sama, kecuali bahwa ia menggunakan split 50/50 di loop luar daripada yang 80/20. Secara umum, ini memberikan perkiraan yang lebih baik dari kinerja generalisasi dan harus lebih disukai, terutama dengan ukuran sampel yang relatif kecil. Dari pengalaman saya, bahkan untuk CV bersarang, estimasi kinerja sangat bervariasi. Seringkali lebih baik untuk melakukan CV bersarang beberapa kali untuk mendapatkan perkiraan kinerja generalisasi yang baik.
George

Terima kasih, masuk akal! Namun, untuk set latihan kecil, saya mungkin akan menambah jumlah lipatan di loop dalam dan luar; mungkin mengurangi varians tetapi juga meningkatkan bias

Secara umum, alih-alih melakukan CV bersarang 5x2, saya biasanya melakukan (k-1) xk, dengan k = 5 atau 10. Dalam kasus beberapa sampel, alih-alih menambah jumlah lipatan saya akan memilih nilai k yang lebih kecil .
George

1
Saya pikir Anda sudah mundur daripada benar-benar salah, tetapi jawaban yang diterima mungkin tidak setuju dengan sumber yang akan saya rujuk. Dalam Python Machine Learning oleh Raschka, ia merujuk pada, "tipe tertentu validasi silang bersarang juga dikenal sebagai 5x2 validasi silang." Ada grafik yang disertakan di mana ia menunjukkan bahwa 2 mengacu pada loop dalam untuk penyetelan parameter hyper dan 5 mengacu pada loop luar untuk estimasi kinerja model yang tidak bias. Salinan berwarna dari grafis dapat ditemukan di bawah Skenario 3 di sini: sebastianraschka.com/faq/docs/evaluate-a-model.html
Austin

Jawaban:


13

5x2cv sejauh yang saya lihat dalam literatur, selalu merujuk pada 5 pengulangan 2 kali lipat. Tidak ada sarang sama sekali. lakukan 2 kali lipat (50/50 split antara kereta dan tes), ulangi 4 kali lagi. 5x2cv dipopulerkan oleh makalah. Perkiraan tes statistik untuk membandingkan algoritma pembelajaran klasifikasi terawasi oleh Dietterich sebagai cara untuk mendapatkan tidak hanya estimasi kesalahan generalisasi yang baik tetapi juga estimasi varians kesalahan yang baik (untuk melakukan tes statistik) )


Terima kasih! Apakah Anda tahu apa yang biasanya dilakukan orang jika loop dalam memilih model yang berbeda, misalnya, jika parameter regularisasi "optimal" adalah lambda = 100 selama satu pemilihan model dan lambda = 1000 untuk yang lain? Dalam hal ini menghitung kinerja model rata-rata akan sedikit aneh, kan !? Apakah Anda akan membuang model sebagai "tidak stabil"?

3
Lingkaran dalam sangat mungkin menghasilkan pemilihan hiperparameter yang berbeda. Anda tidak menggunakan validasi silang bersarang untuk memilih hyperparameters, hanya untuk mendapatkan perkiraan yang baik dari kesalahan generalisasi (dengan kemungkinan hyperparameter terbaik). Nested cv digunakan untuk memutuskan antara satu atau lainnya algoritma. Lihat stats.stackexchange.com/questions/136296/… atau stats.stackexchange.com/questions/65128/… (antara lain)
Jacques Wainer

Oh, begitu, itu masuk akal! Saya pikir orang menggunakannya secara berbeda. Saya pikir kita saya bisa menutup pertanyaan itu.

2

2 pengulangan di loop luar berarti Anda mengulangi 5 kali lipat CV Anda 2 kali pada seluruh rangkaian kereta. Setiap pembagian waktu menjadi lipatan akan berbeda.

Ini terutama digunakan untuk estimasi yang lebih baik dari kinerja model, seperti menjalankan uji statistik pada apakah satu model melakukan secara statistik lebih baik secara signifikan daripada yang lain.

Nested CV tidak penting jika set data Anda besar dan tanpa outlier. Jika data Anda memiliki outlier, maka kinerja validasi silang mungkin berbeda secara drastis tergantung pada lipat / lipat apa outlier ini. Oleh karena itu, Anda mengulangi CV beberapa kali.


Poin yang bagus. Dalam pendekatan tradisional (tes / kereta split dan kemudian k-fold CV pada set pelatihan) Anda hanya memiliki 1 kali lipat untuk mengevaluasi model sedangkan dalam 5x2 CV kinerja rata-rata dapat dihitung dari 2 lipatan yang berbeda.
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.