Apakah validasi silang merupakan pengganti yang tepat untuk set validasi?

27

Dalam klasifikasi teks, saya memiliki satu set pelatihan dengan sekitar 800 sampel, dan satu set tes dengan sekitar 150 sampel. Set tes belum pernah digunakan, dan menunggu untuk digunakan sampai akhir.

Saya menggunakan seluruh rangkaian pelatihan sampel 800, dengan cross 10 kali lipat memvalidasi sambil menyetel dan mengubah pengelompokan dan fitur. Ini berarti saya tidak memiliki set validasi terpisah, tetapi masing-masing kehabisan 10 kali lipat, set validasi dipilih secara otomatis.

Setelah saya puas dengan semuanya dan ingin memasuki tahap akhir evaluasi, saya akan melatih pengklasifikasi saya pada 800 sampel secara keseluruhan. Dan tes pada 150 set tes sampel.

Apakah pemahaman saya tentang penggunaan validasi silang dalam klasifikasi teks itu benar? Apakah praktik ini valid?

Pertanyaan lain validasi cross wrt adalah:

alih-alih 10 kali lipat, saya juga mencoba mengabaikannya sebagai indikator umum untuk kinerja. Karena untuk meninggalkan satu, tidak mungkin untuk memiliki info tentang f1 / precision / recall, saya bertanya-tanya apa hubungan antara akurasi dari meninggalkan-satu-keluar dan metrik dari 10 kali lipat?

Wawasan apa pun akan sangat dihargai.


Edit:

Ini adalah pengantar cross-validasi yang cukup bagus. Ini juga merujuk pada makalah penelitian lain.

Mengelupas
sumber
3
Estimasi tidak ada yang keluar tidak bias, sementara 10 kali validasi silang akan cenderung memberi Anda bias (terhadap kesalahan yang lebih rendah). Namun, ketidakberpihakan datang dengan harga varian yang tinggi.
blubb
@Simon, saya pikir ini tergantung pada kompleksitas masalah. Bukan?
Biostat
@blubb: LOO dalam situasi tertentu dapat memiliki bias pesimistis yang besar. Varian LOO dan CV 10 kali lipat biasanya sangat mirip. Bias optimis (perkiraan kesalahan terlalu rendah) di sini tidak berasal dari pilihan pengubahan sampel, tetapi dari kenyataan bahwa validasi lintas sudah digunakan untuk pengoptimalan yang didorong oleh data. Setelah itu, validasi independen lain diperlukan. Itu bisa menjadi loop "luar" validasi silang juga (tanpa bias optimis!)
cbeleites mendukung Monica

Jawaban:

15

Anda memang menggambarkan dengan benar cara bekerja dengan crossvalidation. Bahkan, Anda 'beruntung' memiliki set validasi yang masuk akal pada akhirnya, karena seringkali, crossvalidation digunakan untuk mengoptimalkan model, tetapi tidak ada validasi "nyata" yang dilakukan.

Seperti yang dikatakan @Simon Stelling dalam komentarnya, crossvalidation akan menyebabkan kesalahan estimasi yang lebih rendah (yang masuk akal karena Anda terus-menerus menggunakan kembali data), tetapi untungnya ini adalah kasus untuk semua model, jadi, cegah malapetaka (yaitu: kesalahan hanya berkurang sedikit untuk model "buruk", dan lebih banyak untuk model "baik"), memilih model yang berkinerja terbaik pada kriteria yang divalidasi silang, biasanya juga akan menjadi yang terbaik "untuk nyata".

Metode yang kadang-kadang digunakan untuk mengoreksi kesalahan yang lebih rendah, terutama jika Anda mencari model parsimoneous, adalah memilih model terkecil / metode paling sederhana yang kesalahannya divalidasi silang dalam satu SD dari optimal (crossvalidated). Sebagai crossvalidation itu sendiri, ini adalah heuristik, jadi harus digunakan dengan hati-hati (jika ini pilihan: buat plot kesalahan Anda terhadap parameter tuning Anda: ini akan memberi Anda beberapa gagasan apakah Anda memiliki hasil yang dapat diterima)

Mengingat bias kesalahan yang menurun, penting untuk tidak mempublikasikan kesalahan atau ukuran kinerja lainnya dari crossvalidation tanpa menyebutkan bahwa ini berasal dari crossvalidation (walaupun, jujur ​​saja: Saya telah melihat terlalu banyak publikasi yang tidak menyebutkan bahwa ukuran kinerja diperoleh dari memeriksa kinerja pada dataset asli juga --- jadi menyebutkan crossvalidation sebenarnya membuat hasil Anda lebih berharga ). Bagi Anda, ini tidak akan menjadi masalah, karena Anda memiliki set validasi.

Sebuah peringatan terakhir: jika model Anda pas hasil dalam beberapa pesaing dekat, itu adalah ide yang baik untuk melihat penampilan mereka di set validasi Anda setelah itu, tetapi tidak mendasarkan pemilihan model akhir Anda bahwa: Anda dapat di gunakan terbaik ini untuk menenangkan Anda hati nurani, tetapi model "final" Anda harus sudah dipilih sebelum Anda melihat set validasi.

Wrt pertanyaan kedua Anda: Saya percaya Simon telah memberikan semua jawaban yang Anda butuhkan dalam komentarnya, tetapi untuk melengkapi gambarannya: seperti seringnya, trade-off bias-varians yang ikut bermain. Jika Anda tahu bahwa, secara rata-rata, Anda akan mencapai hasil yang benar (tidak memihak), harganya biasanya bahwa setiap perhitungan individual Anda mungkin terletak sangat jauh dari itu (varians tinggi). Di masa lalu, ketidakberpihakan adalah nec plus ultra, di hari-hari saat ini, seseorang telah menerima di kali bias (kecil) (sehingga Anda bahkan tidak tahu bahwa rata-rata perhitungan Anda akan menghasilkan hasil yang benar), jika menghasilkan varian yang lebih rendah. Pengalaman menunjukkan bahwa keseimbangan dapat diterima dengan validasi silang 10 kali lipat. Bagi Anda, bias hanya akan menjadi masalah bagi optimasi model Anda, karena Anda dapat memperkirakan kriteria setelahnya (tidak memihak) pada set validasi. Karena itu, ada sedikit alasan untuk tidak menggunakan crossvalidation.

Nick Sabbe
sumber
"tetapi model" final "Anda harus sudah dipilih sebelum Anda pernah melihat set validasi." Bagus.
Mooncrater