Mengapa taksiran CV dari Uji Kesalahan Meremehkan Kesalahan Tes Aktual?

10

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?

Rachel Kogan
sumber
1
Di mana Anda melihat ini dinyatakan? Bisakah Anda memberikan beberapa referensi?
horaceT
1
(+1) Saya melihat pernyataan yang sama dan saya percaya itu benar tetapi saya juga tidak mengerti logikanya
KevinKim

Jawaban:

9

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.

geekoverdosis
sumber
Sekali lagi, masalah di sini adalah melaporkan kesalahan pelatihan (pelatihan seperti dalam: estimasi ini digunakan dalam proses mendapatkan satu model akhir) estimasi untuk kesalahan generalisasi - terlepas dari apakah kesalahan ini dihitung melalui validasi silang, bertahan, atau apa pun metode estimasi kesalahan lainnya.
cbeleites tidak senang dengan SX
1
@cbeleites Sekali lagi, true point - Saya biasanya berasumsi bahwa hasil CV entah bagaimana akan digunakan untuk pemilihan model (yang untuk beberapa alasan menggunakan CV di tempat pertama) - karena itu tunjukkan ini. Saya telah memperbarui jawaban saya sesuai dengan itu.
geekoverdose
9

k

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:

  • Jawaban @ geekoverdose memberikan contoh dengan terang-terangan menggunakan estimasi kesalahan pelatihan internal (!) sebagai kesalahan tes.
    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.
  • Variabel perancu tidak diperhitungkan untuk pemisahan.
    Satu baris dalam matriks data tidak harus merupakan kasus independen, misalnya
    • Memperlakukan pengukuran berulang pada kasus / subjek / pasien yang sama dengan "independen"
    • secara umum menghadap / mengabaikan pengelompokan yang kuat dalam data
    • tidak menyadari penyimpangan yang sedang berlangsung dalam proses menghasilkan data (kasus yang tidak diketahui di masa depan vs hanya kasus yang tidak diketahui), ...

cbeleites tidak senang dengan SX
sumber
0

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.

Ben2018
sumber