Ini adalah pemahaman saya bahwa estimasi validasi silang k-fold dari kesalahan tes biasanya meremehkan kesalahan tes yang sebenarnya. Saya bingung mengapa ini masalahnya. Saya mengerti mengapa kesalahan pelatihan biasanya lebih rendah dari kesalahan pengujian - karena Anda melatih model pada data yang sama dengan yang Anda perkirakan kesalahannya! Tapi itu bukan kasus untuk validasi silang - lipatan yang Anda ukur kesalahan secara khusus ditinggalkan selama proses pelatihan.
Juga, apakah benar untuk mengatakan bahwa estimasi validasi silang dari kesalahan tes bias ke bawah?
cross-validation
bias
Rachel Kogan
sumber
sumber
Jawaban:
Untuk memberikan contoh: melaporkan hanya kesalahan CV dari suatu model yang bermasalah jika Anda awalnya memiliki banyak model (masing-masing memiliki kesalahan CV dan varian kesalahan tertentu), kemudian gunakan kesalahan ini untuk memilih model yang paling cocok untuk aplikasi Anda. Ini bermasalah karena dengan masing-masing model Anda masih memiliki peluang tertentu bahwa Anda beruntung / tidak beruntung (dan memperoleh hasil yang lebih baik / lebih buruk) - dan dengan memilih model, Anda kemungkinan juga memilih yang mana Anda lebih beruntung. Karenanya, melaporkan kesalahan ini sebagai perkiraan kesalahan akhir cenderung terlalu optimis.
Jika Anda ingin menggali lebih dalam ke detail: jawaban ini menaut ke beberapa makalah yang mudah dibaca tentang masalah ini: Penyalahgunaan validasi silang (melaporkan kinerja untuk nilai hyperparameter terbaik)
Seperti yang ditunjukkan oleh @cbeleites: ini bermasalah jika seseorang menggunakan kesalahan CV k-fold yang diperoleh untuk misalnya a) memilih model terbaik dari beberapa model untuk menggunakan mis. Hiperparameter yang berbeda, yang merupakan bagian dari proses pelatihan, dan b) melaporkan kesalahan yang sama dengan kesalahan pengujian alih-alih menggunakan perangkat tes terpisah yang ditahan. Jika Anda sebaliknya bermaksud meminta kesalahan CV murni itu sendiri - tanpa menggunakannya untuk memilih model apa pun - jawaban oleh @cbeleites kemungkinan besar adalah apa yang Anda cari.
sumber
Dilakukan dengan benar secara kasar berarti bahwa pemisahan ke dalam set tes dan pelatihan dalam validasi silang sebenarnya mengarah pada kasus uji yang benar-benar independen dari model.
Namun, ada sejumlah jebakan yang membahayakan independensi ini . Bergantung pada seberapa parah data uji dikompromikan dan seberapa banyak model tersebut sesuai, kurangnya independensi ini berarti kesalahan validasi silang menjadi fakta kesalahan pelatihan. Yaitu, secara keseluruhan, Anda mungkin berakhir dengan bias optimis yang parah (meremehkan kesalahan generalisasi yang sebenarnya).
IMHO, penting untuk memahami bahwa sebagian besar jebakan ini tidak unik untuk lintas validasi tetapi lebih baik ditandai sebagai pemisahan yang salah ke dalam rangkaian kereta dan uji : mereka dapat (dan memang) terjadi sama dengan skema validasi lainnya seperti bertahan atau independen set tes yang notabene tidak independen seperti yang diduga.
Berikut adalah contoh kesalahan paling umum dalam pemisahan yang saya lihat:
Lebih umum, segala jenis estimasi kesalahan yang digunakan untuk optimisasi model berbasis data adalah kesalahan pelatihan karena masih ada pelatihan yang menggunakan estimasi kesalahan ini.
Satu baris dalam matriks data tidak harus merupakan kasus independen, misalnya
sumber
Pertama, biarkan saya menjelaskan istilah yang digunakan dalam pertanyaan seperti yang saya mengerti. Kami biasanya mulai dengan satu dataset pelatihan, menggunakan validasi k-fold cross untuk menguji model yang berbeda (atau set hyperparameters), dan pilih model terbaik dengan kesalahan CV terendah. Jadi 'estimasi cross-validasi dari kesalahan pengujian' berarti menggunakan kesalahan CV terendah sebagai kesalahan pengujian, bukan hanya kesalahan CV model acak (yang kasusnya dibahas oleh cbeleites, tetapi bukan apa yang biasanya kita lakukan.). 'Kesalahan pengujian aktual' yang dipermasalahkan adalah kesalahan yang kita dapatkan ketika menerapkan model CV terbaik untuk kumpulan data uji tak terbatas, dengan asumsi kita bisa mendapatkannya. Kesalahan CV tergantung pada dataset tertentu yang kita miliki, dan kesalahan tes yang sebenarnya tergantung pada model CV terbaik yang dipilih, yang juga tergantung pada dataset pelatihan. Jadi perbedaan antara kesalahan CV dan kesalahan tes tergantung pada dataset pelatihan yang berbeda. Maka pertanyaannya menjadi, jika kita mengulangi proses di atas berkali-kali dengan dataset pelatihan yang berbeda dan rata-rata dua kesalahan masing-masing, mengapa kesalahan CV rata-rata lebih rendah dari kesalahan pengujian rata-rata, yaitu kesalahan CV bias ke bawah? Tetapi sebelum itu, apakah ini selalu terjadi?
Biasanya tidak mungkin mendapatkan banyak set data pelatihan dan set data uji yang berisi baris tak terbatas. Tetapi dimungkinkan untuk melakukannya dengan menggunakan data yang dihasilkan oleh simulasi. Dalam "Bab 7 Model Penilaian dan Seleksi" buku "Unsur-unsur Pembelajaran Statistik" oleh Trevor Hastie, et al. , itu termasuk eksperimen simulasi tersebut.
Kesimpulannya adalah bahwa, menggunakan CV atau bootstrap, "... estimasi kesalahan tes untuk set pelatihan tertentu secara umum tidak mudah, hanya dengan data dari set pelatihan yang sama". Dengan 'tidak mudah', itu berarti kesalahan CV bisa jadi meremehkan atau melebih-lebihkan kesalahan tes yang sebenarnya tergantung pada set data pelatihan yang berbeda, yaitu varians yang disebabkan oleh dataset pelatihan yang berbeda cukup besar. Bagaimana dengan bias? Model kNN dan linier yang mereka uji hampir tidak bias: kesalahan CV melebih-lebihkan kesalahan pengujian yang sebenarnya sebesar 0-4%, tetapi beberapa model "seperti pohon, validasi silang dan boot-strap dapat meremehkan kesalahan sebenarnya sebesar 10%, karena mencari pohon terbaik sangat dipengaruhi oleh set validasi ".
Singkatnya, untuk dataset pelatihan tertentu, kesalahan CV bisa lebih tinggi atau lebih rendah dari kesalahan tes yang sebenarnya. Untuk bias, rata-rata kesalahan CV bisa berkisar dari sedikit lebih tinggi hingga jauh lebih rendah daripada rata-rata kesalahan pengujian tergantung pada metode pemodelan.
Alasan meremehkan, seperti yang disebutkan di atas, adalah bahwa pemilihan hiperparameter untuk model terbaik pada akhirnya tergantung pada dataset pelatihan tertentu yang kita dapatkan. Sedikit detail, Biarkan hyperparameters terbaik menjadi M1 dalam dataset pelatihan khusus ini. Tetapi, M1 mungkin bukan hiperparameter terbaik pada dataset pelatihan lainnya, yang berarti kesalahan CV minimum lebih kecil dari kesalahan CV dari M1. Dengan demikian diharapkan kesalahan CV yang kita dapatkan dari proses pelatihan sangat mungkin kurang dari kesalahan CV yang diharapkan dari M1. Satu-satunya waktu kesalahan CV minimum dari dataset pelatihan tertentu tidak bias adalah ketika model terbaik selalu yang terbaik independen dari dataset pelatihan. Di sisi lain, kesalahan CV juga bisa sedikit melebih-lebihkan kesalahan tes yang sebenarnya, seperti yang dibahas oleh cbeleites. Ini karena k fold error CV diperoleh dengan menggunakan sedikit data training untuk melatih model (untuk 10 fold cv, gunakan 90% data), itu bias ke atas terhadap true error, tapi tidak banyak. Jadi ada dua bias menuju arah yang berbeda. Untuk metode pemodelan cenderung overfit, menggunakan CV lebih sedikit, misalnya 5 kali lipat vs 10 kali lipat, mungkin menghasilkan bias yang lebih sedikit.
Semua dikatakan, itu tidak banyak membantu dalam praktik: kami biasanya hanya mendapatkan satu dataset 'khusus'. jika kita menahan 15% hingga 30% sebagai data uji, dan memilih model terbaik oleh CV sebagai data pelatihan, kemungkinan kesalahan CV akan berbeda dari kesalahan pengujian karena keduanya berbeda dari kesalahan pengujian yang diharapkan. Kami mungkin curiga jika kesalahan CV jauh lebih rendah dari kesalahan pengujian, tetapi kami tidak akan tahu mana yang lebih dekat dengan kesalahan pengujian yang sebenarnya. Praktik terbaik mungkin hanya menyajikan kedua metrik.
sumber