Bagaimana kesesuaian k-fold cross sesuai dengan konteks pelatihan / validasi / pengujian set?


14

Pertanyaan utama saya adalah tentang mencoba memahami bagaimana k-fold cross-validation cocok dalam konteks memiliki pelatihan / validasi / pengujian set (jika cocok sama sekali dalam konteks seperti itu).

Biasanya, orang berbicara tentang memecah data menjadi set pelatihan, validasi dan pengujian - katakan dengan rasio 60/20/20 per kursus Andrew Ng - di mana set validasi digunakan untuk mengidentifikasi parameter optimal untuk pelatihan model.

Namun, jika seseorang ingin menggunakan validasi silang k-fold dengan harapan mendapatkan ukuran akurasi yang lebih representatif ketika jumlah data relatif kecil, apa yang melakukan validasi silang k-fold memerlukan tepat dalam pemisahan 60/20/20 ini. skenario?

Misalnya, apakah itu berarti bahwa kami benar-benar akan menggabungkan set pelatihan dan pengujian (80% dari data) dan melakukan validasi k-fold pada mereka untuk mendapatkan ukuran akurasi kami (secara efektif membuang dengan memiliki 'set pengujian' yang eksplisit? Jika demikian, model terlatih mana yang kami gunakan a) dalam produksi, dan b) untuk digunakan terhadap set validasi dan mengidentifikasi parameter pelatihan yang optimal? Misalnya, satu jawaban yang mungkin untuk a dan b mungkin adalah menggunakan model lipatan terbaik.

Jawaban:


12

Validasi silang biasanya membantu menghindari kebutuhan set validasi.

Ide dasar dengan set data pelatihan / validasi / tes adalah sebagai berikut:

  1. Pelatihan: Anda mencoba berbagai jenis model dengan pilihan hyperparameter yang berbeda pada data pelatihan (misalnya model linier dengan pilihan fitur yang berbeda, jaring saraf dengan pilihan lapisan yang berbeda, hutan acak dengan nilai mtry yang berbeda).

  2. Validasi: Anda membandingkan kinerja model pada Langkah 1 berdasarkan set validasi dan memilih pemenang. Ini membantu untuk menghindari keputusan yang salah yang diambil dengan melengkapi set data pelatihan.

  3. Uji: Anda mencoba model pemenang pada data uji hanya untuk merasakan seberapa baik kinerjanya dalam kenyataan. Ini overfitting terurai diperkenalkan pada Langkah 2. Di sini, Anda tidak akan mengambil keputusan lebih lanjut. Ini hanya informasi biasa.

Sekarang, dalam kasus di mana Anda mengganti langkah validasi dengan cross-validasi, serangan terhadap data dilakukan hampir identik, tetapi Anda hanya memiliki pelatihan dan set data uji. Tidak perlu untuk set data validasi.

  1. Pelatihan: Lihat di atas.

  2. Validasi: Anda melakukan validasi silang pada data pelatihan untuk memilih model terbaik Langkah 1 sehubungan dengan kinerja validasi silang (di sini, data pelatihan asli berulang kali dipecah menjadi pelatihan sementara dan set validasi). Model yang dihitung dalam validasi silang hanya digunakan untuk memilih model terbaik Langkah 1, yang semuanya dihitung pada set pelatihan penuh.

  3. Tes: Lihat di atas.


1
Terima kasih! Untuk mengkonfirmasi, dalam konteks CV, seseorang mungkin memiliki 80% kereta vs 20% ujian. Maka orang dapat membangun model di atas 80% dari data dan menguji terhadap 20% untuk mendapatkan akurasi. Untuk mencoba variasi model yang berbeda, seseorang dapat melakukan 10 kali lipat CV pada set data pelatihan (80% data) - secara efektif melatih 8% dari total data dan menguji terhadap 72% dari total data di setiap lipatan. Berdasarkan hasil CV, seseorang dapat mengidentifikasi nilai-nilai hiperparameter optimal dan menggunakannya untuk membangun model baru yang dilatih pada semua data pelatihan (80% dari dataset lengkap) dan menguji terhadap 20% dataset tes yang tersisa. Benar?
blu

3
Ya, kecuali bahwa dalam setiap CV run, Anda akan menggunakan 72% untuk pelatihan dan 8% untuk validasi ;-)
Michael M

Respon luar biasa @MichaelM. Saya membaca tentang nested cross-validation (NCV) , dan saya kesulitan menentukan apakah saya harus menggunakannya, atau hanya melakukan apa yang Anda uraikan untuk CV. Dan supaya saya memahaminya, NCV akan diterapkan ke step3. Alih-alih mendapatkan skor 1 pemenang, Anda mendapatkan skor K pemenang (mengalikan total berjalan dengan K, langkah 1-2 diulang K kali dengan beda 80% data kereta), yang kemudian Anda bisa rata-rata. Jadi pertanyaan: 1) apakah pemahaman saya benar? 2) apakah disarankan untuk menggunakan NCV?
Aziz Javed

Anda benar sekali. Nested CV akan membantu untuk mendapatkan estimasi yang lebih andal daripada pendekatan "sederhana" yang diuraikan di atas. Jika waktu memungkinkan, ini merupakan opsi. Apakah Anda tahu di set data mana model akhir dihitung dalam CV bersarang? Sepenuhnya?
Michael M

3

K

Membagi menjadi pelatihan / validasi / pengujian juga merupakan strategi pengambilan sampel.

K

K-1

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.