Saat Anda mencoba menyesuaikan model dengan set data besar, saran umum adalah untuk membagi data menjadi tiga bagian: pelatihan, validasi, dan set data uji.
Ini karena model biasanya memiliki tiga "level" parameter: "parameter" pertama adalah kelas model (misalnya SVM, jaringan saraf, hutan acak), set parameter kedua adalah parameter "regularisasi" atau "hyperparameters" ( misalnya koefisien penalti laso, pilihan kernel, struktur jaringan saraf) dan set ketiga adalah apa yang biasanya dianggap sebagai "parameter" (misalnya koefisien untuk kovariat.)
Diberikan kelas model dan pilihan hiperparameter, seseorang memilih parameter dengan memilih parameter yang meminimalkan kesalahan pada set pelatihan. Diberikan kelas model, satu menyetel hyperparameters dengan meminimalkan kesalahan pada set validasi. Seseorang memilih kelas model berdasarkan kinerja pada set tes.
Tetapi mengapa tidak lebih banyak partisi? Seringkali seseorang dapat membagi hyperparameter menjadi dua kelompok, dan menggunakan "validasi 1" agar sesuai dengan yang pertama dan "validasi 2" agar sesuai dengan yang kedua. Atau seseorang bahkan bisa memperlakukan ukuran data pelatihan / validasi data sebagai hyperparameter yang akan disetel.
Apakah ini sudah menjadi praktik yang umum di beberapa aplikasi? Apakah ada pekerjaan teoretis tentang pembagian data yang optimal?
sumber
Ini adalah pertanyaan yang menarik, dan saya merasa terbantu dengan jawaban dari @Wayne.
Dari pemahaman saya, membagi dataset menjadi partisi yang berbeda tergantung pada tujuan penulis, dan persyaratan model dalam aplikasi dunia nyata.
Biasanya kami memiliki dua lembar data: pelatihan dan pengujian. Pelatihan yang digunakan untuk menemukan parameter model, atau agar sesuai dengan model. Pengujian satu digunakan untuk mengevaluasi kinerja model dalam data yang tidak terlihat (atau data dunia nyata).
Jika kita hanya melakukan satu langkah dalam pelatihan, jelas bahwa ada proses pelatihan dan pengujian (atau validasi).
Namun, dengan cara ini, ini dapat meningkatkan masalah pemasangan berlebihan ketika model dilatih dengan satu dataset, sekali pakai. Ini dapat menyebabkan ketidakstabilan model dalam masalah dunia nyata. Salah satu cara untuk mengatasi masalah ini adalah dengan cross-validate (CV) model dalam dataset pelatihan. Itu artinya, kami membagi pelatihan datset menjadi lipatan yang berbeda, menyimpan satu lipatan untuk menguji model yang dilatih dengan lipatan lainnya. Pemenang sekarang adalah yang memberikan kerugian minimum (berdasarkan fungsi objektif kami sendiri) dalam keseluruhan proses CV. Dengan melakukan cara ini, kami dapat memastikan bahwa kami meminimalkan kemungkinan over fitting dalam proses pelatihan, dan memilih pemenang yang tepat. Set tes lagi digunakan untuk mengevaluasi pemenang dalam data yang tidak terlihat.
sumber