Dalam studi psikologi saya belajar bahwa kita harus menggunakan metode Bonferroni untuk menyesuaikan tingkat signifikansi ketika menguji beberapa hipotesis pada satu dataset.
Saat ini saya sedang bekerja dengan metode pembelajaran mesin seperti Support Vector Machines atau Random Forest untuk klasifikasi. Di sini saya memiliki satu set data yang digunakan dalam crossvalidation untuk menemukan parameter terbaik (seperti parameter kernel untuk SVM) menghasilkan akurasi terbaik.
Intuisi saya mengatakan (dan mungkin benar-benar mati) bahwa itu adalah masalah yang serupa. Jika saya menguji terlalu banyak kemungkinan kombinasi parameter, kemungkinan besar saya menemukan satu yang menghasilkan hasil yang bagus. Namun ini bisa jadi hanya kebetulan.
Singkatnya pertanyaan saya:
Dalam pembelajaran mesin kami menggunakan crossvalidation untuk menemukan parameter yang tepat dari classifier. Semakin banyak kombinasi parameter yang kami gunakan, semakin tinggi peluang untuk menemukan yang hebat secara tidak sengaja (overfitting?). Apakah konsep yang ada di balik koreksi bonferroni juga berlaku di sini? Apakah ini masalah yang berbeda? Jika demikian, mengapa?
sumber
Jawaban:
Ada tingkat di mana apa yang Anda bicarakan dengan koreksi p-value terkait, tetapi ada beberapa detail yang membuat kedua kasus tersebut sangat berbeda. Yang besar adalah bahwa dalam pemilihan parameter tidak ada independensi dalam parameter yang Anda evaluasi atau dalam data yang Anda evaluasi. Untuk memudahkan diskusi, saya akan memilih k dalam model regresi K-Nearest-Neighbors sebagai contoh, tetapi konsepnya juga digeneralisasikan ke model lain.
Katakanlah kita memiliki contoh validasi V yang kami prediksi untuk mendapatkan akurasi model dalam untuk berbagai nilai k dalam sampel kami. Untuk melakukan ini kita temukan k = 1, ..., n nilai terdekat dalam set pelatihan yang akan kita definisikan sebagai T 1 , ..., T n . Untuk nilai pertama kami k = 1 kami prediksi P1 1 akan sama T 1 , untuk k = 2 , prediksi P 2 akan (T 1 + T 2 ) / 2 atau P 1 /2 + T 2 /2 , untukk = 3 akan (T 1 + T 2 + T 3 ) / 3 atau P 2 * 2/3 + T 3 /3 . Bahkan untuk nilai k apa pun kita dapat mendefinisikan prediksi P k = P k-1 (k-1) / k + T k / k . Kami melihat bahwa prediksi tersebut tidak independen satu sama lain sehingga oleh karena itu akurasi prediksi juga tidak. Faktanya, kita melihat bahwa nilai prediksi mendekati rata-rata sampel. Akibatnya, dalam kebanyakan kasus menguji nilai k = 1:20 akan memilih nilai k yang sama seperti pengujian k = 1: 10.000 kecuali kecocokan terbaik yang bisa Anda peroleh dari model Anda hanyalah rata-rata dari data tersebut.
Inilah sebabnya mengapa boleh menguji sekelompok parameter berbeda pada data Anda tanpa terlalu khawatir tentang pengujian hipotesis berganda. Karena dampak dari parameter pada prediksi tidak acak, akurasi prediksi Anda jauh lebih kecil kemungkinannya untuk mendapatkan kecocokan yang baik hanya karena kebetulan. Anda memang masih perlu khawatir tentang terlalu pas, tetapi itu adalah masalah yang terpisah dari pengujian hipotesis berganda.
Untuk memperjelas perbedaan antara pengujian hipotesis berganda dan over fitting, kali ini kita akan membayangkan membuat model linier. Jika kita berulang kali menguji ulang data untuk membuat model linier kami (beberapa garis di bawah) dan mengevaluasinya, pada pengujian data (titik-titik gelap), secara kebetulan salah satu garis akan membuat model yang baik (garis merah). Ini bukan karena itu benar-benar menjadi model yang hebat, tetapi bahwa jika Anda cukup sampel data, beberapa bagian akan bekerja. Yang penting untuk dicatat di sini adalah bahwa akurasi terlihat bagus pada data pengujian yang diulurkan karena semua model yang diuji. Faktanya karena kita memilih model "terbaik" berdasarkan data pengujian, model tersebut mungkin benar-benar cocok dengan data pengujian lebih baik daripada data pelatihan.
Sebaliknya pemasangan yang berlebihan adalah ketika Anda membangun model tunggal, tetapi memutarbalikkan parameter untuk memungkinkan model agar sesuai dengan data pelatihan di luar apa yang dapat digeneralisasi. Pada contoh di bawah ini model (garis) sangat cocok dengan data pelatihan (lingkaran kosong) tetapi ketika dievaluasi pada data pengujian (lingkaran diisi) kesesuaiannya jauh lebih buruk.
sumber
Saya setuju dengan Barker untuk beberapa perluasan, namun pemilihan model tidak hanya kNN . Anda harus menggunakan skema validasi silang, dengan validasi dan set tes. Anda menggunakan set validasi untuk pemilihan model dan set tes untuk estimasi akhir kesalahan model. Ini bisa berupa k-fold CV atau split sederhana dari data pelatihan. Kinerja yang diukur oleh set validasi model berkinerja terbaik akan menjadi bias, karena Anda memilih model yang berkinerja terbaik. Performa terukur dari set tes tidak bias, karena Anda jujur hanya menguji satu model. Kapan pun Anda ragu, bungkus seluruh pemrosesan data dan pemodelan dalam validasi silang luar untuk mendapatkan estimasi bias yang paling tidak akurat di masa mendatang.
Seperti yang saya ketahui, tidak ada koreksi matematika sederhana yang dapat diandalkan yang akan cocok dengan semua pilihan antara beberapa model non-linear. Kami cenderung mengandalkan bootstrap brute force untuk mensimulasikan, apa yang akan menjadi akurasi model masa depan. Ngomong-ngomong ketika memperkirakan kesalahan prediksi di masa depan, kami menganggap set pelatihan diambil secara acak dari suatu populasi, dan bahwa prediksi tes di masa depan diambil sampelnya dari populasi yang sama. Jika tidak, yah siapa yang tahu ...
Jika Anda misalnya menggunakan CV 5-lipat bagian dalam untuk memilih model dan 10-CV bagian luar diulang 10 kali untuk memperkirakan kesalahan, maka Anda tidak mungkin membodohi diri sendiri dengan perkiraan akurasi model yang terlalu percaya diri.
sumber