Bagaimana metode validasi silang berbeda dibandingkan dalam hal varian model dan bias?
Pertanyaan saya sebagian dimotivasi oleh utas ini: Jumlah lipatan yang optimal dalam validasi silang lipat: apakah CV cuti-keluar-selalu merupakan pilihan terbaik? K. Jawaban di sana menunjukkan bahwa model yang dipelajari dengan validasi silang tinggalkan-keluar-satu memiliki varians yang lebih tinggi daripada yang dipelajari dengan validasi silang kali lipat, menjadikan CV tinggalkan-satu-keluar menjadi pilihan yang lebih buruk.
Namun, intuisi saya memberi tahu saya bahwa dalam CV cuti-keluar-satu orang akan melihat varians yang relatif lebih rendah di antara model daripada CV - , karena kami hanya menggeser satu titik data melintasi lipatan dan oleh karena itu pelatihan mengatur antara lipatan tumpang tindih secara substansial.
Atau pergi ke arah lain, jika rendah di -lipatan CV, set pelatihan akan sangat berbeda di seluruh lipatan, dan model yang dihasilkan lebih mungkin berbeda (maka varians yang lebih tinggi).K
Jika argumen di atas benar, mengapa model yang dipelajari dengan CV cuti-out memiliki varian yang lebih tinggi?
sumber
Jawaban:
[TL: DR] Ringkasan pos dan debat terbaru (Juli 2018)
Topik ini telah banyak dibahas baik di situs ini, dan dalam literatur ilmiah, dengan pandangan yang bertentangan, intuisi dan kesimpulan. Kembali pada tahun 2013 ketika pertanyaan ini pertama kali bertanya, pandangan dominan adalah bahwa LOOCV mengarah ke varians lebih besar dari kesalahan generalisasi diharapkan dari algoritma pelatihan memproduksi model dari sampel ukuran .n(K−1)/K
Pandangan ini, bagaimanapun, tampaknya merupakan generalisasi yang tidak benar dari kasus khusus dan saya berpendapat bahwa jawaban yang benar adalah: "itu tergantung ..."
Mengutip Yves Grandvalet penulis makalah 2004 tentang topik saya akan meringkas argumen intuitif sebagai berikut:
Simulasi eksperimental dari saya dan orang lain di situs ini, serta orang-orang peneliti di makalah yang ditautkan di bawah ini akan menunjukkan kepada Anda bahwa tidak ada kebenaran universal tentang topik tersebut. Sebagian besar percobaan telah monoton menurun atau varians konstan dengan , tetapi beberapa kasus khusus menunjukkan peningkatan bertentangan dengan .KK K
Sisa dari jawaban ini mengusulkan simulasi pada contoh mainan dan tinjauan literatur informal.
[Perbarui] Anda dapat menemukan di sini simulasi alternatif untuk model yang tidak stabil dengan adanya outlier.
Simulasi dari contoh mainan menunjukkan varians menurun / konstan
Pertimbangkan contoh mainan berikut ini di mana kita memasang polinomial derajat 4 ke kurva sinus yang bising. Kami berharap model ini tidak sesuai untuk dataset kecil karena overfitting, seperti yang ditunjukkan oleh kurva pembelajaran.
Perhatikan bahwa kami merencanakan 1 - MSE di sini untuk mereproduksi ilustrasi dari ESLII halaman 243
Metodologi
Anda dapat menemukan kode untuk simulasi ini di sini . Pendekatannya adalah sebagai berikut:
Dampak pada Bias dan Variasi MSE di seluruh dataset .iK i
Sisi Kiri : Kfold untuk 200 titik data, Sisi Kanan : Kfold untuk 40 titik data
Standar Deviasi MSE (antar set data i) vs Kfolds
Dari simulasi ini, tampaknya:
Tinjauan literatur informal
Tiga makalah berikut menyelidiki bias dan varian validasi silang
Kohavi 1995
Makalah ini sering disebut sebagai sumber untuk argumen bahwa LOOC memiliki varian yang lebih tinggi. Di bagian 1:
Pernyataan ini merupakan sumber banyak kebingungan, karena tampaknya berasal dari Efron pada tahun 1983, bukan Kohavi. Argumentasi teoritis dan hasil eksperimen Kohavi bertentangan dengan pernyataan ini:
Konsekuensi 2 (Varian dalam CV)
Eksperimen Dalam eksperimennya, Kohavi membandingkan dua algoritma: pohon keputusan C4.5 dan classifier Naif Bayes di beberapa dataset dari repositori UC Irvine. Hasilnya adalah di bawah ini: LHS adalah akurasi vs lipatan (yaitu bias) dan RHS adalah standar deviasi vs lipatan
Pada kenyataannya, hanya pohon keputusan pada tiga set data yang jelas memiliki varians lebih tinggi untuk meningkatkan K. Hasil lainnya menunjukkan varians menurun atau konstan.
Akhirnya, meskipun kesimpulannya bisa lebih kuat, tidak ada argumen untuk LOO memiliki varian yang lebih tinggi, justru sebaliknya. Dari bagian 6. Ringkasan
Zhang dan Yang
Para penulis mengambil pandangan yang kuat tentang topik ini dan dengan jelas menyatakan di Bagian 7.1
Hasil Eksperimen Demikian pula, percobaan Zhang menunjuk ke arah penurunan varians dengan K, seperti yang ditunjukkan di bawah ini untuk model True dan model yang salah untuk Gambar 3 dan Gambar 5.
Satu-satunya percobaan yang variansnya meningkat dengan adalah untuk model Lasso dan SCAD. Ini dijelaskan sebagai berikut pada halaman 31:K
sumber
Dalam -fold cross-validation, kami mempartisi dataset menjadi dengan subset non-overlapping berukuran sama . Untuk setiap lipatan , model dilatih pada , yang kemudian dievaluasi pada . Penduga validasi silang, misalnya kesalahan prediksi, didefinisikan sebagai rata-rata kesalahan prediksi yang diperoleh pada setiap lipatan.k k S Si S∖Si Si
Meskipun tidak ada tumpang tindih antara set tes di mana model dievaluasi, ada tumpang tindih antara set pelatihan untuk semua . Tumpang tindih adalah yang terbesar untuk validasi silang tinggalkan satu. Ini berarti bahwa model yang dipelajari berkorelasi, yaitu dependen, dan varians dari jumlah variabel berkorelasi meningkat dengan jumlah kovarians ( lihat wikipedia ):k>2
Oleh karena itu, validasi silang tinggalkan satu memiliki varian yang besar dibandingkan dengan CV dengan lebih kecil .k
Namun, perhatikan bahwa sementara validasi silang dua kali lipat tidak memiliki masalah tumpang tindih set pelatihan, sering juga memiliki varians yang besar karena set pelatihan hanya setengah dari sampel asli. Kompromi yang baik adalah sepuluh kali lipat validasi silang.
Beberapa makalah menarik yang menyentuh subjek ini (dari banyak lagi):
sumber
Saya pikir intuisi Anda masuk akal jika Anda berpikir tentang prediksi yang dibuat oleh model pada setiap lipatan cuti. Mereka didasarkan pada data yang berkorelasi / sangat mirip (dataset lengkap minus satu titik data) dan karenanya akan membuat prediksi yang sama - yaitu, variabilitas rendah.
Sumber kebingungan adalah bahwa ketika orang berbicara tentang LOOCV yang mengarah ke variabilitas tinggi, mereka tidak berbicara tentang prediksi yang dibuat oleh banyak model yang dibangun selama loop validasi silang pada set ketidaksepakatan. Alih-alih, mereka berbicara tentang seberapa besar variabilitas yang akan dimiliki model akhir Anda (yang dipilih melalui LOOCV) jika Anda melatih model / parameter yang tepat itu pada set pelatihan baru - set pelatihan model yang belum pernah Anda lihat sebelumnya. Dalam hal ini, variabilitas akan tinggi.
Mengapa variabilitas tinggi? Mari sederhanakan ini sedikit. Bayangkan bahwa alih-alih menggunakan LOOCV untuk memilih model, Anda hanya memiliki satu set pelatihan dan kemudian Anda menguji model yang dibangun menggunakan data pelatihan itu, katakanlah, 100 kali pada 100 titik data uji tunggal (titik data bukan bagian dari rangkaian pelatihan) . Jika Anda memilih model dan set parameter yang melakukan yang terbaik di antara 100 tes, maka Anda akan memilih satu yang memungkinkan set pelatihan khusus ini benar-benar bagus dalam memprediksi data uji. Anda dapat berpotensi memilih model yang menangkap 100% asosiasi antara set data pelatihan tertentu dan data ketidaksepakatan. Sayangnya, beberapa bagian dari asosiasi antara set data pelatihan dan tes akan menjadi asosiasi noise atau palsu karena, meskipun set tes berubah dan Anda dapat mengidentifikasi noise di sisi ini, dataset pelatihan tidak dan Anda tidak dapat menentukan varians yang dijelaskan disebabkan oleh noise. Dengan kata lain, apa artinya ini adalah bahwa Anda telah melampaui prediksi Anda terhadap dataset pelatihan khusus ini.
Sekarang, jika Anda melatih ulang model ini dengan parameter yang sama beberapa kali pada set pelatihan baru, apa yang akan terjadi? Nah, sebuah model yang sesuai dengan set data pelatihan tertentu akan menyebabkan variabilitas dalam prediksinya ketika set pelatihan berubah (mis. Ubah set pelatihan sedikit dan model akan mengubah prediksi secara substansial).
Karena semua lipatan dalam LOOCV sangat berkorelasi, itu mirip dengan kasus di atas (set pelatihan yang sama; titik tes yang berbeda). Dengan kata lain, jika set pelatihan tertentu memiliki beberapa korelasi palsu dengan titik-titik tes tersebut, model Anda akan mengalami kesulitan menentukan korelasi mana yang nyata dan mana yang palsu, karena meskipun set tes berubah, set pelatihan tidak.
Sebaliknya, lipatan pelatihan yang kurang berkorelasi berarti bahwa model tersebut akan sesuai dengan beberapa dataset unik. Jadi, dalam situasi ini, jika Anda melatih ulang model pada kumpulan data baru lainnya, itu akan mengarah pada prediksi yang sama (yaitu, variabilitas kecil).
sumber
Meskipun pertanyaan ini agak lama, saya ingin menambahkan jawaban tambahan karena saya pikir lebih baik untuk mengklarifikasi ini.
Jawaban itu tidak menyarankan itu, dan seharusnya tidak. Mari kita tinjau jawaban yang disediakan di sana:
Ini berbicara tentang kinerja . Di sini kinerja harus dipahami sebagai kinerja penduga kesalahan model . Apa yang Anda perkirakan dengan k-fold atau LOOCV adalah kinerja model, baik saat menggunakan teknik-teknik ini untuk memilih model dan untuk menyediakan estimasi kesalahan itu sendiri. Ini BUKAN varians model, ini adalah varians dari estimator kesalahan (model). Lihat contoh (*) di bawah ini.
Memang, ada varian yang lebih rendah antara model, Mereka dilatih dengan dataset yang memiliki pengamatan ! Ketika meningkat, mereka menjadi model yang hampir sama (Dengan asumsi tidak ada stokastik).n−2 n
Justru varians yang lebih rendah ini dan korelasi yang lebih tinggi antara model yang membuat estimator yang saya bicarakan di atas memiliki lebih banyak varians, karena estimator itu adalah rata-rata dari jumlah-jumlah yang berkorelasi ini, dan varians dari rata-rata data berkorelasi lebih tinggi daripada data tidak berkorelasi . Di sini ditunjukkan alasannya: varians dari rata-rata data yang berkorelasi dan tidak berkorelasi .
Memang.
Argumen di atas benar. Sekarang, pertanyaannya salah. Varian model adalah topik yang sama sekali berbeda. Ada varian di mana ada variabel acak. Dalam pembelajaran mesin Anda berurusan dengan banyak variabel acak, khususnya dan tidak terbatas pada: setiap pengamatan adalah variabel acak; sampel adalah variabel acak; model, karena dilatih dari variabel acak, adalah variabel acak; penaksir kesalahan yang akan dihasilkan model Anda ketika dihadapkan pada populasi adalah variabel acak; dan last but not least, kesalahan model adalah variabel acak, karena ada kemungkinan kebisingan dalam populasi (ini disebut kesalahan tak tereduksi). Akan ada lebih banyak keacakan jika ada stokastik yang terlibat dalam proses pembelajaran model. Sangat penting untuk membedakan antara semua variabel ini.
(*) Contoh : Misalkan Anda memiliki model dengan kesalahan nyata , di mana Anda harus memahami sebagai kesalahan yang dihasilkan oleh model atas seluruh populasi. Karena Anda memiliki sampel yang diambil dari populasi ini, Anda menggunakan teknik validasi silang atas sampel tersebut untuk menghitung estimasi , yang dapat kami nama . Seperti setiap penaksir, adalah variabel acak, artinya ia memiliki variansnya sendiri, , dan biasnya sendiri, . adalah persis apa yang lebih tinggi ketika menggunakan LOOCV. Sementara LOOCV adalah estimator yang kurang bias dibandingkan dengan witherr err E err~ err~ var(err~) E(err~−err) var(err~) k−fold k<n , ia memiliki lebih banyak varian. Untuk lebih memahami mengapa kompromi antara bias dan varians diinginkan , misalkan , dan Anda memiliki dua penduga: dan . Yang pertama menghasilkan output inierr=10 err~1 err~2
Yang terakhir, meskipun memiliki lebih banyak bias, harus lebih disukai, karena memiliki varians jauh lebih sedikit dan bias yang dapat diterima , yaitu kompromi ( trade-off bias-varians ). Harap dicatat bahwa Anda tidak ingin varians sangat rendah jika itu memerlukan bias tinggi!
Catatan tambahan : Dalam jawaban ini saya mencoba untuk mengklarifikasi (apa yang saya pikir) kesalahpahaman yang mengelilingi topik ini dan, khususnya, mencoba untuk menjawab poin demi poin dan tepatnya keraguan yang dimiliki si penanya. Secara khusus, saya mencoba memperjelas perbedaan yang sedang kita bicarakan , yang pada dasarnya ditanyakan di sini. Yaitu saya jelaskan jawaban yang dihubungkan oleh OP.
Walaupun begitu, sementara saya memberikan alasan teoretis di balik klaim tersebut, kami belum menemukan bukti empiris konklusif yang mendukungnya. Jadi tolong berhati-hatilah.
Idealnya, Anda harus membaca posting ini terlebih dahulu dan kemudian merujuk ke jawaban oleh Xavier Bourret Sicotte, yang menyediakan diskusi mendalam tentang aspek empiris.
Last but not least, sesuatu yang lain harus dipertimbangkan: Bahkan jika varians ketika Anda meningkatkan tetap datar (karena kami belum membuktikan secara empiris sebaliknya), dengan cukup kecil memungkinkan untuk pengulangan ( k-lipat berulang ), yang pasti harus dilakukan, misalnya . Ini secara efektif mengurangi varians, dan bukan pilihan ketika melakukan LOOCV.k k−fold k 10 × 10 - f o l d10 × 10−fold
sumber
Masalahnya memang halus. Tetapi jelas tidak benar bahwa LOOCV memiliki varian yang lebih besar secara umum. Makalah baru-baru ini membahas beberapa aspek utama dan membahas beberapa kesalahpahaman yang tampaknya tersebar luas tentang validasi silang.
Yongli Zhang dan Yuhong Yang (2015). Validasi silang untuk memilih prosedur pemilihan model. Jurnal Ekonometrika, vol. 187, 95-112.
Lebih detail:
sumber
Sebelum membahas tentang bias dan varians, pertanyaan pertama adalah:
sumber
Saya pikir ada jawaban yang lebih langsung. Jika Anda menambah k, set tes menjadi lebih kecil dan lebih kecil. Karena lipatan diambil secara acak, ini dapat terjadi pada set uji kecil, tetapi tidak seperti pada set yang lebih besar, bahwa lipatan tersebut tidak mewakili pengocokan acak. Satu set tes bisa berisi semua catatan yang sulit diprediksi dan yang lainnya semua yang mudah. Oleh karena itu, varians tinggi ketika Anda memprediksi set tes yang sangat kecil per lipatan.
sumber