Mengapa prosedur validasi silang mengatasi masalah overfitting model?
Mengapa prosedur validasi silang mengatasi masalah overfitting model?
Jawaban:
Saya tidak bisa memikirkan penjelasan yang cukup jelas saat ini, jadi saya akan menyerahkannya kepada orang lain; Namun cross-validation tidak sepenuhnya mengatasi masalah over-fitting dalam pemilihan model, itu hanya menguranginya. Kesalahan cross-validation tidak memiliki varians yang dapat diabaikan, terutama jika ukuran dataset kecil; dengan kata lain Anda mendapatkan nilai yang sedikit berbeda tergantung pada sampel data tertentu yang Anda gunakan. Ini berarti bahwa jika Anda memiliki banyak derajat kebebasan dalam pemilihan model (mis. Banyak fitur untuk memilih subset kecil, banyak hiper-parameter untuk disetel, banyak model untuk memilih), Anda dapat menyesuaikan kriteria validasi silang secara berlebihan. karena model disetel dengan cara yang mengeksploitasi variasi acak ini daripada dengan cara yang benar-benar meningkatkan kinerja, dan Anda dapat berakhir dengan model yang berkinerja buruk. Untuk diskusi tentang ini, lihatCawley dan Talbot "Pada Over-fitting dalam Pemilihan Model dan Bias Seleksi Selanjutnya dalam Evaluasi Kinerja", JMLR, vol. 11, hlm. 2079−2107, 2010
Sayangnya, validasi silang kemungkinan besar mengecewakan Anda ketika Anda memiliki dataset kecil, tepatnya saat Anda paling membutuhkan validasi silang. Perhatikan bahwa validasi silang k-fold umumnya lebih dapat diandalkan daripada validasi silang leave-one-out karena memiliki varian yang lebih rendah, tetapi mungkin lebih mahal untuk dihitung untuk beberapa model (itulah sebabnya mengapa LOOCV kadang-kadang digunakan untuk pemilihan model, meskipun memiliki varian yang tinggi).
Jawaban saya lebih intuitif daripada keras, tetapi mungkin itu akan membantu ...
Seperti yang saya pahami, overfitting adalah hasil pemilihan model berdasarkan pelatihan dan pengujian menggunakan data yang sama, di mana Anda memiliki mekanisme pemasangan yang fleksibel: Anda menyesuaikan sampel data Anda sedemikian rupa sehingga Anda menyesuaikan kebisingan, outlier, dan semua varian lainnya.
Memisahkan data ke dalam set pelatihan dan pengujian membuat Anda tidak melakukan hal ini. Tetapi pemisahan statis tidak menggunakan data Anda secara efisien dan perpecahan Anda sendiri bisa menjadi masalah. Cross-validation menjaga keuntungan jangan-imbalan-an-tepat-untuk-pelatihan-data dari pemisahan pengujian-pelatihan, sambil juga menggunakan data yang Anda miliki seefisien mungkin (yaitu semua data Anda digunakan sebagai data pelatihan dan pengujian, tidak dalam jangka yang sama).
Jika Anda memiliki mekanisme pemasangan yang fleksibel, Anda perlu membatasi pemilihan model Anda sehingga tidak mendukung "sempurna" tetapi rumit entah bagaimana. Anda dapat melakukannya dengan AIC, BIC, atau metode hukuman lain yang secara langsung menghukum kompleksitas yang sesuai, atau Anda dapat melakukannya dengan CV. (Atau Anda dapat melakukannya dengan menggunakan metode pemasangan yang tidak terlalu fleksibel, yang merupakan salah satu alasan model linear bagus.)
Cara lain untuk melihatnya adalah bahwa belajar adalah tentang generalisasi, dan kecocokan yang terlalu ketat dalam beberapa hal tidak generalisasi. Dengan memvariasikan apa yang Anda pelajari dan apa yang Anda uji, Anda menggeneralisasi lebih baik daripada jika Anda hanya mempelajari jawaban untuk serangkaian pertanyaan tertentu.
Dari perspektif Bayesian, saya tidak begitu yakin bahwa validasi silang melakukan apa pun yang tidak dilakukan analisis Bayesian yang tepat untuk membandingkan model. Tetapi saya tidak 100% yakin akan hal itu.
Yang disebut distribusi prediktif sebelumnya . Itu pada dasarnya mengatakan seberapa baik model memprediksi data yang sebenarnya diamati, yang persis apa yang dilakukan validasi silang, dengan "prior" digantikan oleh model "training" yang dipasang, dan "data" diganti oleh "testing" data. Jadi jika model B meramalkan data lebih baik daripada model A, probabilitas posteriornya meningkat relatif terhadap model A. Tampaknya dari ini bahwa teorema Bayes akan benar-benar melakukan validasi silang menggunakan semua data, bukan subset. Namun, saya tidak sepenuhnya yakin akan hal ini - sepertinya kita mendapatkan sesuatu tanpa hasil.
Fitur lain yang rapi dari metode ini adalah bahwa ia memiliki "pisau cukur" yang dibangun, yang diberikan oleh rasio konstanta normalisasi dari distribusi sebelumnya untuk masing-masing model.
Namun validasi silang tampaknya berharga untuk "sesuatu yang lain" lama yang ditakuti atau apa yang kadang-kadang disebut "model salah spesifikasi". Saya terus-menerus terkoyak oleh apakah "sesuatu yang lain" ini penting atau tidak, karena sepertinya itu memang penting - tetapi membuat Anda lumpuh tanpa solusi sama sekali ketika itu penting. Hanya sesuatu yang membuat Anda sakit kepala, tetapi tidak ada yang dapat Anda lakukan - kecuali memikirkan apa itu "sesuatu yang lain", dan mencobanya dalam model Anda (sehingga tidak lagi menjadi bagian dari "sesuatu yang lain") .
Dan selanjutnya, validasi silang adalah cara untuk benar-benar melakukan analisis Bayes ketika integral di atas sangat sulit. Dan validasi silang "masuk akal" kepada hampir semua orang - ini "mekanis" daripada "matematika". Jadi mudah untuk memahami apa yang sedang terjadi. Dan itu juga membuat kepala Anda fokus pada bagian penting dari model - membuat prediksi yang baik.