Apa metode pengambilan sampel yang paling tepat untuk mengevaluasi kinerja classifier pada set data tertentu dan membandingkannya dengan classifier lain? Cross-validasi tampaknya menjadi praktik standar, tetapi saya telah membaca bahwa metode seperti .632 bootstrap adalah pilihan yang lebih baik.
Sebagai tindak lanjut: Apakah pilihan metrik kinerja memengaruhi jawaban (jika saya menggunakan AUC alih-alih keakuratan)?
Tujuan utama saya adalah untuk dapat mengatakan dengan yakin bahwa satu metode pembelajaran mesin lebih unggul daripada yang lain untuk dataset tertentu.
Jawaban:
Satu perbedaan penting dalam cara validasi silang biasa dan metode out-of-bootstrap diterapkan adalah bahwa kebanyakan orang menerapkan validasi silang hanya sekali (yaitu setiap kasus diuji tepat sekali), sedangkan validasi out-of-bootstrap dilakukan dengan sejumlah besar pengulangan / iterasi. Dalam situasi itu, validasi silang dikenakan varians yang lebih tinggi karena ketidakstabilan model. Namun, itu dapat dihindari dengan menggunakan misalnya iterated / repeat- cross validation. Jika itu dilakukan, setidaknya untuk set data spektroskopi yang telah saya kerjakan, kesalahan total dari kedua skema resampling tampaknya sama dalam praktiknya.k
Validasi silang tinggalkan satu tidak disarankan, karena tidak ada kemungkinan untuk mengurangi varians tipe ketidakstabilan model dan ada beberapa pengklasifikasi dan masalah di mana ia menunjukkan bias pesimistis yang sangat besar.
.632 bootstrap melakukan pekerjaan yang wajar selama kesalahan resampling yang bercampur tidak terlalu optimis. (Misalnya untuk data yang saya kerjakan, matriks yang sangat luas dengan banyak variasi, itu tidak berfungsi dengan baik karena model cenderung overfitting yang serius). Ini juga berarti bahwa saya akan menghindari menggunakan bootstrap .632 untuk membandingkan model dengan kompleksitas yang berbeda-beda. Dengan .632+ bootstrap, saya tidak punya pengalaman: jika overfitting terjadi dan terdeteksi dengan benar, itu akan sama dengan perkiraan out-of-bootstrap yang asli, jadi saya tetap menggunakan oob biasa atau validasi silang berulang / berulang untuk data saya.
Literatur:
(klasik )
Dougherty dan Braga-Neto memiliki sejumlah publikasi tentang topik tersebut , misalnya
Dougherty, ER et al. : Kinerja Pengukur Kesalahan untuk Klasifikasi Bioinformatika Terkini, 2010, 5, 53-67
Beleites, C. et al. : Pengurangan varians dalam mengestimasi kesalahan klasifikasi menggunakan dataset sparse Chemom Intell Lab Syst, 2005, 79, 91 - 100.
Kami memiliki perbandingan melakukan validasi silang hanya sekali atau mengulang / mengulangi, dan membandingkannya dengan out-of-bootstrap dan .632 bootstrap juga untuk data yang sangat luas dengan multi-collinearities.
Kim, J.-H .: Memperkirakan tingkat kesalahan klasifikasi: Validasi silang berulang, hold-out berulang dan bootstrap, Statistik Komputasi & Analisis Data, 2009, 53, 3735 - 374k
Juga menemukan bahwa validasi lipatan lipat berulang dan berulang out-of-bootstrap memiliki kinerja yang sama (tidak hanya melakukan validasi silang satu kali).
Pilihan metrik:
akurasi (yang @FrankHarrell akan memberi tahu Anda bahwa itu adalah pilihan yang buruk karena itu bukan aturan penilaian yang tepat ) tunduk pada varians tinggi karena ia menghitung setiap kasus baik benar-benar benar atau sepenuhnya salah, bahkan jika classifier diprediksi misalnya hanya 60 % probabilitas posterior untuk kasus uji milik kelas yang bersangkutan. Aturan penilaian yang tepat adalah misalnya skor Brier, yang terkait erat dengan rata-rata kesalahan kuadrat dalam regresi.
Analoga error kuadrat rata-rata tersedia untuk proporsi seperti akurasi, sensitivitas, spesifisitas, nilai prediktif: Beleites, C. et al. : Validasi model klasifikasi lunak menggunakan keanggotaan kelas parsial: Konsep sensitivitas & Co yang diperluas yang diterapkan untuk penilaian jaringan astrositoma, Chemom Intell Lab Syst, 2013, 122, 12 - 22; DOI: 10.1016 / j.chemolab.2012.12.003 (halaman ringkasan memberikan tautan ke pracetak juga)
Gunakan tes berpasangan untuk mengevaluasi itu. Untuk membandingkan proporsi, lihatlah tes McNemar.
Jawabannya akan dipengaruhi oleh pilihan metrik. Karena langkah-langkah kesalahan tipe regresi tidak memiliki langkah "pengerasan" dalam memotong keputusan dengan ambang batas, mereka sering memiliki varian yang lebih sedikit daripada rekan-rekan klasifikasi mereka. Metrik seperti akurasi yang pada dasarnya adalah proporsi akan membutuhkan sejumlah besar kasus uji untuk menetapkan keunggulan satu classifier atas yang lain.
Fleiss: "Metode statistik untuk tarif dan proporsi" memberikan contoh (dan tabel) untuk perbandingan proporsi yang tidak berpasangan . Untuk memberi Anda kesan tentang apa yang saya maksud dengan "ukuran sampel besar", lihat gambar dalam jawaban saya untuk pertanyaan lain ini . Tes berpasangan seperti McNemar membutuhkan lebih sedikit kasus uji, tetapi IIRC masih dalam kasus setengah terbaik (?) Dari ukuran sampel yang dibutuhkan untuk tes tidak berpasangan.
Untuk mengkarakterisasi kinerja classifier (mengeras), Anda biasanya memerlukan kurva kerja setidaknya dua nilai seperti ROC (sensitivitas vs spesifisitas) atau sejenisnya.
Saya jarang menggunakan akurasi keseluruhan atau AUC, karena aplikasi saya biasanya memiliki batasan misalnya sensitivitas lebih penting daripada spesifisitas, atau batasan tertentu pada langkah-langkah ini harus dipenuhi. Jika Anda memilih karakteristik penjumlahan "angka tunggal", pastikan titik kerja model yang Anda lihat sebenarnya dalam kisaran yang masuk akal.
Untuk akurasi dan ukuran kinerja lain yang meringkas kinerja untuk beberapa kelas sesuai dengan label referensi, pastikan Anda memperhitungkan frekuensi relatif dari kelas yang akan Anda temui dalam aplikasi - yang belum tentu sama dengan di Anda pelatihan atau data uji.
Provost, F. et al. : Kasus Terhadap Estimasi Akurasi untuk Membandingkan Algoritma Induksi Dalam Proses Konferensi Internasional Kelima Belas tentang Pembelajaran Mesin, 1998
sunting: membandingkan beberapa pengklasifikasi
Saya sudah memikirkan masalah ini untuk sementara waktu, tetapi belum menemukan solusi (saya juga belum bertemu siapa pun yang memiliki solusi).
Inilah yang saya dapatkan sejauh ini:
Masalahnya adalah Anda berlari dengan sangat cepat ke dalam situasi perbandingan ganda yang masif.
Namun, Anda dapat mengatakan bahwa untuk aplikasi yang saya miliki, beberapa perbandingan tidak benar-benar memperburuk keadaan, karena saya jarang memiliki cukup kasus uji untuk memungkinkan bahkan satu perbandingan ...
Saya pikir penyetelan model hyperparameters adalah versi khusus dari masalah perbandingan model umum, yang mungkin lebih mudah ditangani untuk permulaan. Namun, ada rumor bahwa kualitas model sangat tergantung pada keahlian orang yang membangunnya, bahkan mungkin lebih daripada pilihan jenis model.
Untuk saat ini, saya memutuskan bahwa "optimisasi adalah akar dari semua kejahatan", dan mengambil pendekatan yang sangat berbeda:
Saya memutuskan sebanyak mungkin dengan pengetahuan para ahli tentang masalah yang dihadapi. Itu sebenarnya memungkinkan untuk mempersempit hal-hal sedikit, sehingga saya sering dapat menghindari perbandingan model. Ketika saya harus membandingkan model, saya mencoba untuk menjadi sangat terbuka dan jelas mengingatkan orang tentang ketidakpastian estimasi kinerja dan bahwa beberapa perbandingan model adalah AFAIK masih merupakan masalah yang belum terpecahkan.
Sunting 2: tes berpasangan
sumber
Anda memerlukan modifikasi pada bootstrap (.632, .632+) hanya karena penelitian asli menggunakan aturan penilaian yang tidak tepat yang terputus-putus (proporsi diklasifikasikan dengan benar). Untuk skor akurasi lainnya, bootstrap optimisme biasa cenderung berfungsi dengan baik. Untuk informasi lebih lanjut, lihat http://biostat.mc.vanderbilt.edu/RmS#Studies_of_Methods_Used_in_the_T
Aturan penilaian yang tidak tepat menyesatkan Anda pada pilihan fitur dan bobotnya. Dengan kata lain, semua yang bisa salah akan salah.
sumber
Dari 'Applied Predictive Modelling., Khun. Johnson . hal.78
"Tidak ada metode resampling yang lebih baik daripada yang lain; pilihan harus dibuat dengan mempertimbangkan beberapa faktor. Jika ukuran sampel kecil, kami sarankan untuk menggunakan validasi silang 10 kali lipat karena beberapa alasan; sifat bias dan varians baik, dan diberikan ukuran sampel, biaya komputasi tidak besar. Jika tujuannya adalah untuk memilih antara model, bukan untuk mendapatkan indikator kinerja terbaik, kasus yang kuat dapat dibuat untuk menggunakan salah satu prosedur bootstrap karena ini memiliki varian yang sangat rendah. Untuk ukuran sampel besar, perbedaan antara metode resampling menjadi kurang jelas, dan efisiensi komputasi meningkat dalam kinerja. " hal. 78
Selain itu, mengingat pilihan dua hasil yang serupa, model yang lebih dapat ditafsirkan umumnya disukai. Sebagai contoh (dari teks yang sama), menggunakan CV 10 kali lipat, klasifikasi SVM memiliki estimasi akurasi 75% dengan hasil resample antara 66 dan 82%. Parameter yang sama digunakan pada klasifikasi regresi logistik dengan akurasi 74,9%, dan rentang sampel ulang yang sama. Model regresi logistik sederhana mungkin lebih disukai karena lebih mudah untuk menafsirkan hasil.
sumber