Bagaimana perbedaan validasi silang dengan pengintaian data?

13

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.

Heisenberg
sumber
Saya sangat senang menemukan ini ... memiliki TC besok dengan beberapa peneliti yang telah menerbitkan sesuatu .... sayangnya menderita masalah ini. Pertanyaan bagus!
pallevillesen

Jawaban:

12

Saya bertanya-tanya apakah menggunakan cross-validation untuk menemukan parameter tuning terbaik untuk berbagai teknik pembelajaran mesin berbeda dari pengintaian data?

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:

Jadi jika model saya (yaitu parameter tuning saya dalam kasus ini) gagal validasi luar, apa yang harus saya lakukan?

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.

Cbeleites mendukung Monica
sumber
1
Saya setuju, kereta terminologi / tes / validasi tidak terlalu intuitif
M. Berk
3

k validasi silang kali lipat, yang melibatkan pemasangan model berulang, dapat menjadi asal dari kebingungan Anda.

λλ memberikan BIC terbaik dan spidol yang dipilih dalam model akhir dipilih sebagai kandidat protein untuk selanjutnya penyelidikan. Ini adalah contoh pemilihan fitur.

"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.

k

AdamO
sumber
λλ
1
@ Anh: penyetelan λ melalui cross validation tidak dengan sendirinya buruk. Tetapi dengan melakukan itu Anda "menggunakan" validasi silang untuk penyetelan λ dan Anda memerlukan validasi lain yang tidak tergantung pada pemodelan termasuk proses penyetelan λ. Tidak melakukan validasi luar ini BURUK. Jika λ tertentu tidak berfungsi "lagi" (mis. Pada pemisahan data lainnya), pengoptimalan Anda tidak berfungsi. Dalam situasi itu, Anda biasanya juga akan melihat perbedaan besar antara hasil validasi luar dan kinerja "terbaik" yang diamati selama penyetelan.
cbeleites mendukung Monica
@cbeleites Jadi jika model saya (yaitu parameter tuning saya dalam kasus ini) gagal validasi luar, apa yang harus saya lakukan? Saya tidak bisa kembali dan menemukan parameter tuning lain, karena pada dasarnya itu akan mengubah validasi luar ke set uji tuning. Jadi, apa yang harus dilakukan?
Heisenberg
λ
λkvalidasi lipat untuk menilai berapa banyak fitur yang dipilih (jika jumlah fitur bervariasi dari tidak ada sampai 20, maka ada bukti spesifisitas rendah untuk 3 fitur dalam model pelatihan). Parameter penyetelan aktual, seperti kemungkinan, memiliki makna yang sangat spesifik data. Saya tidak akan pernah melaporkannya, tetapi fokus pada sensitivitas hasil sebagai konsekuensi dari mengubahnya.
AdamO
1

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).

Jerorx
sumber
Jika set validasi dan set tes berbeda maka masuk akal bagi saya. Namun, dalam buku yang saya baca (oleh Hastie et al. Tidak kurang), mereka berpendapat bahwa menggunakan uji hold-out mahal (kami tidak menggunakan banyak data untuk melatih), sehingga mereka merekomendasikan validasi k-fold cross, di mana saya tidak berpikir ada set tes terpisah.
Heisenberg
1
@ Anh: kedua pemisahan dapat dilakukan dengan resampling (mis. Validasi silang berulang) alih-alih menyisihkan hanya satu set data kecil.
cbeleites mendukung Monica
@Anh: Dalam validasi silang k-fold, Anda membagi k kali pelatihan asli menjadi set pelatihan yang lebih kecil dan set validasi. Set tes asli tidak terlibat dan hanya digunakan di akhir.
Jerorx
0

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.glmnetsatu trainset, yang dibagi oleh cv.glmnetpaket menjadi pasangan uji kereta. Validasi model dilakukan pada testset validasi (" "), sehingga validasi independen.

Dima Lituiev
sumber