Saya baru saja menyelesaikan "Pengantar Pembelajaran Statistik" . Saya bertanya-tanya apakah menggunakan cross-validation untuk menemukan parameter tuning terbaik untuk berbagai teknik pembelajaran mesin berbeda dari pengintaian data?
Kami berulang kali memeriksa nilai parameter tuning mana yang menghasilkan hasil prediksi terbaik di set uji. Bagaimana jika parameter penyetelan yang kami tiba kebetulan cocok dengan set tes khusus ini secara kebetulan, dan tidak akan berkinerja baik pada beberapa set tes mendatang?
Permisi pemahaman pemula saya tentang pembelajaran mesin, dan saya ingin sekali dididik.
EDIT: Silakan lihat jawaban @AdamO pada definisi "pengintai data". Saya menggunakan istilah ini dengan sangat tidak akurat dalam pertanyaan saya.
sumber
Jawaban:
Kekhawatiran Anda tepat, dan ada banyak literatur tentang topik ini, misalnya
Masalahnya adalah bahwa penyetelan hyperparameter dengan validasi silang adalah proses optimasi yang digerakkan oleh data, dan masih akan cenderung untuk menyesuaikan dengan set data (kurang dari penyetelan oleh kesalahan penggantian, tetapi masih). Mencoba menggunakan hasil validasi tala lintas sebagai ukuran kinerja "independen" adalah dengan cara seperti memakan pai (= penyetelan) dan menjaga (= mengukur kinerja model akhir) itu.
Ini tidak berarti bahwa Anda tidak harus menggunakan validasi silang untuk penyetelan hyperparameter. Itu hanya berarti bahwa Anda dapat menggunakannya hanya untuk satu tujuan. Mengoptimalkan atau mengukur kinerja model untuk keperluan validasi.
Solusinya adalah Anda perlu melakukan validasi independen untuk mengukur kualitas model yang diperoleh dengan hiperparameter yang disetel. Ini disebut validasi bertingkat atau ganda. Anda akan menemukan sejumlah pertanyaan dan jawaban di sini tentang topik-topik ini
Secara konseptual, saya suka mengatakan bahwa pelatihan mencakup semua jenis langkah-langkah mewah agar tidak hanya sesuai dengan parameter model "biasa" tetapi juga agar sesuai (auto-tune) dengan hyperparameter. Jadi optimasi data-driven λ jelas merupakan bagian dari pelatihan model.
Sebagai pedoman praktis, Anda juga dapat mengatakan bahwa pelatihan model adalah segalanya yang perlu dilakukan sebelum Anda memiliki fungsi kotak hitam final yang siap digunakan yang dapat menghasilkan prediksi untuk kasus baru.
PS: Saya menemukan terminologi pengujian vs validasi sangat membingungkan karena dalam bidang saya "validasi" berarti membuktikan bahwa model akhir cocok untuk tujuan, dan oleh karena itu apa yang orang lain sebut pengujian daripada validasi. Saya lebih suka menyebut set uji dalam "set uji tuning" dan set "tes validasi akhir" luar atau sejenisnya.
Memperbarui:
Biasanya, ini bukan apa-apa yang terjadi begitu saja: ada situasi khas yang dapat menyebabkan kegagalan seperti itu. Dan semua situasi yang saya sadari adalah situasi overfitting. Anda perlu menyadari bahwa walaupun regularisasi membantu mengurangi jumlah kasus pelatihan yang diperlukan, pengoptimalan berbasis data membutuhkan data dalam jumlah besar.
Rekomendasi saya:
Biasanya, Anda (harus) sudah memiliki ekspektasi kasar, mis. Kinerja apa yang harus dicapai, kinerja apa yang Anda anggap tampan dan mencurigakan. Atau miliki spesifikasi kinerja apa yang perlu Anda capai dan kinerja dasar. Dari itu dan jumlah kasus pelatihan yang tersedia (untuk skema pemisahan yang Anda putuskan), hitung ketidakpastian yang diharapkan untuk tes dalam (penyetelan). Jika ketidakpastian itu menunjukkan bahwa Anda tidak akan bisa mendapatkan perbandingan yang berarti, jangan lakukan optimasi yang didorong data.
Anda harus memeriksa seberapa stabil prediksi yang diperoleh dengan λ yang dipilih dan λ optimal yang ditemukan oleh prosedur pencarian otomatis. Jika λ tidak cukup stabil sehubungan dengan perbedaan data Anda, pengoptimalan tidak berfungsi.
Jika ternyata Anda tidak dapat melakukan optimasi berdasarkan data atau tidak berhasil, Anda dapat memilih λ berdasarkan pengetahuan ahli Anda, misalnya dari pengalaman dengan data yang serupa. Atau dengan pengetahuan bahwa jika Anda menemukan bahwa optimasi gagal, Anda akan membutuhkan regularisasi yang lebih kuat: overfitting yang mengarah pada kegagalan bekerja menuju model yang terlalu kompleks.
sumber
"Pengintai data" atau, seperti yang saya sebut, "Analisis data eksplorasi" tidak berurusan dengan pertanyaan yang ditentukan sebelumnya. Anda semacam menghitung sejumlah hasil yang mungkin, sangat menarik dan mengevaluasinya secara individual. Anda dapat melakukan sejumlah analisis eksplorasi dan, biasanya, Anda tidak khawatir tentang beberapa pengujian. Anda dapat menilai setiap analisis eksplorasi secara individual menggunakan validasi silang, tetapi itu tidak secara inheren menjelaskan beberapa pengujian ketika Anda memiliki lebih dari 1 analisis eksplorasi. Hipotesis dalam pengaturan ini bisa sangat luas dan jauh menjangkau, "faktor-faktor apa yang terkait dengan kanker prostat?" (dari mana minum kopi, penggunaan vasektomi, dll. diukur dalam kelompok). Hasil yang signifikan dilihat sebagai "menghasilkan hipotesis" dan tidak memberikan bukti konfirmasi.
sumber
Sebenarnya, selama CV Anda mencoba menemukan parameter terbaik pada set validasi , yang berbeda dari set tes. Anda membagi seluruh data Anda menjadi tiga set: set pelatihan, set validasi, dan set tes. Ketika Anda melakukan validasi silang dengan benar, Anda tidak akan pernah melihat akhir tes sampai akhir, sehingga tidak ada pengintaian sama sekali. Melakukan validasi silang pada set tes adalah kesalahan metodologi yang serius (namun sering).
sumber
Jika Anda mencari contoh di halaman 225 dari "Pengantar Pembelajaran Statistik" dengan contoh Lasso, Anda melihat bahwa mereka benar-benar melakukan validasi silang bersarang. Yaitu pemilihan model dilakukan dalam
cv.glmnet
satutrain
set, yang dibagi olehcv.glmnet
paket menjadi pasangan uji kereta. Validasi model dilakukan padatest
set validasi (" "), sehingga validasi independen.sumber