Interval kepercayaan untuk akurasi klasifikasi yang divalidasi silang

11

Saya sedang mengerjakan masalah klasifikasi yang menghitung metrik kesamaan antara dua gambar input x-ray. Jika gambar berasal dari orang yang sama (label 'kanan'), metrik yang lebih tinggi akan dihitung; masukan gambar dari dua orang yang berbeda (label 'salah') akan menghasilkan metrik yang lebih rendah.

Saya menggunakan 10 kali lipat validasi silang bertingkat untuk menghitung probabilitas kesalahan klasifikasi. Ukuran sampel saya saat ini adalah sekitar 40 pasangan benar dan 80 pasangan salah, di mana setiap titik data adalah metrik yang dihitung. Saya mendapatkan probabilitas kesalahan klasifikasi 0,00, tetapi saya perlu semacam interval kepercayaan / analisis kesalahan tentang ini.

Saya sedang mencari menggunakan interval kepercayaan proporsi binomial (di mana saya akan menggunakan hasil validasi silang sebagai pelabelan yang benar atau pelabelan yang salah untuk jumlah keberhasilan saya). Namun, salah satu asumsi di balik analisis binomial adalah probabilitas keberhasilan yang sama untuk setiap percobaan, dan saya tidak yakin apakah metode di balik klasifikasi 'benar' atau 'salah' dalam cross-validation dapat dianggap memiliki probabilitas keberhasilan yang sama.

Satu-satunya analisis lain yang dapat saya pikirkan adalah mengulangi cross-validasi X kali dan menghitung mean / standar deviasi dari kesalahan klasifikasi, tetapi saya tidak yakin apakah ini bahkan sesuai karena saya akan menggunakan kembali data dari saya ukuran sampel yang relatif kecil beberapa kali.

Adakah pikiran? Saya menggunakan MATLAB untuk semua analisis saya, dan saya memiliki kotak alat Statistik. Akan menghargai setiap dan semua bantuan!

Sean
sumber
Peluang kesalahan klasifikasi 0,00 berarti Anda mendapatkan akurasi klasifikasi 100% pada masing-masing dari 10 lipatan validasi silang?
Amuba kata Reinstate Monica
Ya ini benar. Masing-masing lipatan tidak menghasilkan kesalahan klasifikasi; 0,00 I yang dilaporkan mewakili jumlah total kesalahan klasifikasi (0) dari total jumlah kasus uji (120).
Sean
BTW, apa sebenarnya yang Anda maksud dengan validasi silang "bertingkat"? Pada setiap lipatan CV Anda memiliki 120/10 = 12 sampel uji, dengan selalu 4 pertandingan dan 8 tidak cocok?
Amuba mengatakan Reinstate Monica
Yap, hanya itu - setidaknya itulah cara saya memahami bagaimana hal itu dilakukan dalam MATLAB. Setiap lipatan harus berisi proporsi yang sama dari label kelas 'benar' / 'salah', yaitu 1: 2.
Sean

Jawaban:

7

Pengaruh ketidakstabilan dalam prediksi model pengganti yang berbeda

Namun, salah satu asumsi di balik analisis binomial adalah probabilitas keberhasilan yang sama untuk setiap percobaan, dan saya tidak yakin apakah metode di balik klasifikasi 'benar' atau 'salah' dalam cross-validation dapat dianggap memiliki probabilitas keberhasilan yang sama.

Nah, biasanya bahwa ekivalensi adalah asumsi yang juga diperlukan untuk memungkinkan Anda mengumpulkan hasil dari model pengganti yang berbeda.

Dalam praktiknya, intuisi Anda bahwa anggapan ini mungkin dilanggar seringkali benar. Tetapi Anda dapat mengukur apakah ini masalahnya. Di situlah saya menemukan validasi silang berulang membantu: Kestabilan prediksi untuk kasus yang sama oleh model pengganti yang berbeda memungkinkan Anda menilai apakah model tersebut setara (prediksi stabil) atau tidak.

Berikut skema validasi -fold cross iterated (alias diulang) :k
iterasi k-fold cross validation

Kelasnya merah dan biru. Lingkaran di sebelah kanan melambangkan prediksi. Dalam setiap iterasi, setiap sampel diprediksi tepat satu kali. Biasanya, mean rata-rata digunakan sebagai estimasi kinerja, secara implisit mengasumsikan bahwa kinerja model pengganti adalah sama. Jika Anda mencari setiap sampel pada prediksi yang dibuat oleh model pengganti yang berbeda (yaitu di seluruh kolom), Anda dapat melihat seberapa stabil prediksi tersebut untuk sampel ini.ik

Anda juga dapat menghitung kinerja untuk setiap iterasi (blok 3 baris dalam gambar). Setiap perbedaan antara ini berarti bahwa asumsi bahwa model pengganti adalah setara (satu sama lain dan lebih jauh ke "model besar" yang dibangun pada semua kasus) tidak terpenuhi. Tetapi ini juga memberi tahu Anda berapa banyak ketidakstabilan yang Anda miliki. Untuk proporsi binomial saya pikir selama kinerja sebenarnya adalah sama (yaitu independen apakah selalu kasus yang sama diprediksi secara salah atau apakah jumlah yang sama tetapi kasus yang berbeda diprediksi secara salah). Saya tidak tahu apakah orang bisa menganggap distribusi tertentu untuk kinerja model pengganti. Tapi saya pikir ini merupakan keuntungan atas pelaporan kesalahan klasifikasi yang umum saat ini jika Anda melaporkan ketidakstabilan itu sama sekali.kk model pengganti sudah dikumpulkan untuk masing-masing iterasi, varians ketidakstabilan kira-kira kali varian yang diamati antara iterasi.k

Saya biasanya harus bekerja dengan kurang dari 120 kasus independen, jadi saya menempatkan regularisasi yang sangat kuat pada model saya. Saya kemudian biasanya dapat menunjukkan bahwa varians ketidakstabilan adalah daripada varians ukuran sampel hingga. (Dan saya pikir ini masuk akal untuk pemodelan karena manusia bias mendeteksi pola dan dengan demikian tertarik untuk membangun model yang terlalu kompleks dan dengan demikian overfitting). Saya biasanya melaporkan persentil dari variabilitas ketidakstabilan yang diamati di atas iterasi (dan , dan ) dan interval kepercayaan binomial pada kinerja rata-rata yang diamati untuk ukuran sampel uji yang terbatas.n k i
nki

Gambar adalah versi terbaru dari ara. 5 dalam makalah ini: Beleites, C. & Salzer, R .: Menilai dan meningkatkan stabilitas model kemometrik dalam situasi ukuran sampel kecil, Anal Bioanal Chem, 390, 1261-1271 (2008). DOI: 10.1007 / s00216-007-1818-6
Perhatikan bahwa ketika kami menulis makalah saya belum sepenuhnya menyadari berbagai sumber ragam yang saya jelaskan di sini - ingatlah itu. Karena itu saya berpikir bahwa argumentasiuntuk estimasi ukuran sampel efektif yang diberikan tidak ada yang benar, meskipun kesimpulan aplikasi bahwa jenis jaringan yang berbeda dalam setiap pasien berkontribusi sebanyak informasi keseluruhan sebagai pasien baru dengan jenis jaringan yang diberikan mungkin masih valid (saya memiliki jenis yang sama sekali berbeda dari bukti yang juga menunjukkan hal itu). Namun, saya belum sepenuhnya yakin tentang ini (atau bagaimana melakukannya dengan lebih baik dan dengan demikian dapat memeriksa), dan masalah ini tidak terkait dengan pertanyaan Anda.


Kinerja mana yang digunakan untuk interval kepercayaan binomial?

Sejauh ini, saya telah menggunakan kinerja rata-rata yang diamati. Anda juga bisa menggunakan kinerja yang paling buruk diamati: semakin dekat kinerja yang diamati adalah 0,5, semakin besar varians dan dengan demikian interval kepercayaan. Dengan demikian, interval kepercayaan dari kinerja yang diamati terdekat dengan 0,5 memberi Anda "margin keselamatan" yang konservatif.

Perhatikan bahwa beberapa metode untuk menghitung interval kepercayaan binomial juga berfungsi jika jumlah keberhasilan yang diamati bukan bilangan bulat. Saya menggunakan "integrasi probabilitas posterior Bayesian" seperti yang dijelaskan dalam
Ross, TD: Interval kepercayaan yang akurat untuk proporsi binomial dan estimasi tingkat Poisson, Comput Biol Med, 33, 509-531 (2003). DOI: 10.1016 / S0010-4825 (03) 00019-2

(Saya tidak tahu untuk Matlab, tetapi dalam R Anda dapat menggunakan binom::binom.bayesdengan kedua parameter bentuk diatur ke 1).


Pikiran-pikiran ini berlaku untuk model prediksi yang dibangun di atas data pelatihan ini menghasilkan hasil untuk kasus-kasus baru yang tidak diketahui. Jika Anda perlu menyamaratakan ke set data pelatihan lain yang diambil dari populasi kasus yang sama, Anda perlu memperkirakan berapa banyak model yang dilatih pada sampel pelatihan baru dengan ukuran beragam. (Saya tidak tahu bagaimana melakukannya selain dengan mendapatkan set data pelatihan baru "secara fisik")n

Lihat juga: Bengio, Y. dan Grandvalet, Y .: Tidak Ada Penaksir Tidak Bervariasi dari Variansi Validasi Silang K-Fold, Jurnal Penelitian Pembelajaran Mesin, 2004, 5, 1089-1105 .

(Berpikir lebih banyak tentang hal-hal ini ada dalam daftar todo penelitian saya ..., tetapi karena saya berasal dari ilmu pengetahuan eksperimental, saya ingin melengkapi kesimpulan teoretis dan simulasi dengan data eksperimental - yang sulit di sini karena saya memerlukan banyak set kasus independen untuk pengujian referensi)


Pembaruan: apakah dibenarkan untuk menganggap distribusi biomial?

Saya melihat k-fold CV seperti percobaan melempar koin berikut: alih-alih melempar satu koin berkali-kali, koin yang dihasilkan oleh mesin yang sama dilemparkan dalam jumlah yang lebih kecil. Dalam gambar ini, saya pikir @Tal menunjukkan bahwa koin tidak sama. Yang jelas benar. Saya pikir apa yang harus dan apa yang bisa dilakukan tergantung pada asumsi kesetaraan untuk model pengganti.k

Jika sebenarnya ada perbedaan kinerja antara model pengganti (koin), asumsi "tradisional" bahwa model pengganti setara tidak berlaku. Dalam hal ini, distribusi tidak hanya binomial (seperti yang saya katakan di atas, saya tidak tahu distribusi apa yang digunakan: itu harus merupakan jumlah binomial untuk setiap model pengganti / setiap koin). Namun perlu dicatat, bahwa ini berarti bahwa pengumpulan hasil model pengganti tidak diperbolehkan. Jadi tidak ada binomial untuk menguji perkiraan yang baik (saya mencoba untuk meningkatkan perkiraan dengan mengatakan kami memiliki sumber variasi tambahan: ketidakstabilan) atau kinerja rata-rata dapat digunakan sebagai estimasi titik tanpa pembenaran lebih lanjut.n

Jika di sisi lain kinerja (sebenarnya) pengganti adalah sama, saat itulah yang saya maksudkan dengan "model-modelnya ekuivalen" (satu gejala adalah bahwa prediksinya stabil). Saya pikir dalam hal ini hasil dari semua model pengganti dapat dikumpulkan, dan distribusi binomial untuk semua tes harus OK penggunaan: Saya pikir dalam kasus kita dibenarkan untuk mendekati benar s model pengganti harus sama , dan dengan demikian menggambarkan pengujian tersebut setara dengan melempar satu koin kali.p nnpn

cbeleites tidak senang dengan SX
sumber
Hai @cbeleites, saya hanya berkomentar bahwa analisis CV saya menghasilkan 2 nilai unik untuk dataset tertentu (beberapa dataset lain memiliki nilai unik N, dengan N biasanya kurang dari 5), seperti halnya amuba yang dijelaskan di atas. Dengan ini, bagaimana saya bisa menunjukkan bahwa prediksi saya stabil hanya dengan menggunakan dataset tunggal dan CV saya? Mengenai distribusi binomial, saya sedang mempertimbangkan interval Agresti-Coull (dapat bekerja untuk tingkat keberhasilan tinggi / tingkat keberhasilan 100% tanpa mengalami gangguan). Sepertinya Anda mengatakan saya bisa menggunakan distribusi binomial, tapi saya masih tidak jelas bagaimana saya bisa membenarkan asumsi bahwa keberhasilan yang sama.
Sean
@cbeleites: [Saya menghapus komentar saya sebelumnya untuk jawaban Anda dan salin di sini satu bagian dari itu.] Tapi apa artinya menunjukkan bahwa "ramalannya stabil"? CV berulang tidak akan memberikan hasil yang benar-benar identik. Sebagai contoh, katakanlah OP menjalankan 1000 pengulangan CV dan mendapat tingkat kesalahan dari 0/120 hingga 2/120 dengan distribusi tertentu. Apakah ada cara untuk menggabungkan varian ini dengan varian binomial? Dan untuk apakah satu menghitung interval binomial? p
Amuba mengatakan Reinstate Monica
1
@amoeba: Saya tidak tahu bagaimana menggabungkan distribusi binomial dengan distribusi yang tidak diketahui karena ketidakstabilan menjadi satu interval kepercayaan. Jadi saya melaporkan persentil yang diamati untuk stabilitas (dalam) dan binomial ci untuk ukuran sampel uji hingga. Bagaimana menggabungkan mereka adalah salah satu pertanyaan penelitian yang saya ingat, tetapi sejauh ini saya belum menemukan solusi atau bertemu dengan siapa pun yang memiliki. Saya kira kami tiba di garis depan penelitian ...
cbeleites tidak senang dengan SX
1
@Sean: Pernahkah Anda melihat pertanyaan terakhir saya tentang masalah terkait? Ada diskusi yang sangat menarik (bagi saya) yang sedang berlangsung di komentar, dan saya sendiri saat ini sedang mengerjakan beberapa simulasi. Saya menjadi percaya bahwa asumsi binomial sangat salah! Anda mungkin juga tertarik pada beberapa referensi asalkan ada yang mengklaim hal yang sama.
Amuba kata Reinstate Monica
1
@Sean: Saya akan mencoba untuk memperbarui kedua utas ini, yang berarti bahwa setelah (dan jika) masalah ini diklarifikasi lebih lanjut, saya akan mencoba merangkum situasi di sana dan juga untuk memberikan jawaban baru di sini. Untuk saat ini, apakah Anda memperhatikan makalah ini tertaut di utas lainnya? Penulis membahas dengan tepat pertanyaan Anda, dan memberikan prosedur bootstrap yang mereka klaim berfungsi dengan baik. Jika saya menulis balasan untuk pertanyaan Anda sekarang, saya akan merekomendasikan prosedur mereka. Tapi masuk akal dulu untuk memeriksa 24 makalah yang mengutip makalah itu.
Amoeba berkata Reinstate Monica
3

Saya pikir ide Anda untuk mengulangi validasi silang berkali-kali sudah tepat.

Ulangi CV Anda katakanlah 1000 kali, setiap kali membelah data Anda ke dalam 10 bagian (untuk CV 10 kali lipat) dengan cara yang berbeda (jangan tidak mengocok label). Anda akan mendapatkan 1000 estimasi akurasi klasifikasi. Tentu saja Anda akan menggunakan kembali data yang sama, sehingga 1000 estimasi ini tidak akan independen. Tapi ini mirip dengan prosedur bootstrap: Anda dapat mengambil standar deviasi atas akurasi ini sebagai kesalahan standar rata-rata dari penduga akurasi keseluruhan Anda. Atau interval persentil 95% sebagai interval kepercayaan 95%.

Atau, Anda dapat menggabungkan loop validasi silang dan loop bootstrap, dan cukup pilih secara acak (mungkin stratifikasi acak) 10% dari data Anda sebagai set tes, dan lakukan ini sebanyak 1000 kali. Alasan yang sama seperti di atas juga berlaku di sini. Namun, ini akan menghasilkan varians yang lebih tinggi daripada pengulangan, jadi saya pikir prosedur di atas lebih baik.

Jika tingkat kesalahan klasifikasi Anda adalah 0,00, classifier Anda membuat nol kesalahan dan jika ini terjadi pada setiap iterasi bootstrap, Anda akan mendapatkan interval kepercayaan lebar nol. Tetapi ini hanya berarti bahwa classifier Anda cukup sempurna, sangat bagus untuk Anda.

amuba kata Reinstate Monica
sumber
Hai @amoeba, terima kasih atas tanggapan Anda. Maukah Anda menjelaskan sedikit lebih banyak tentang saran pertama Anda dalam mengulangi CV 1000 kali dengan secara acak mengubah sampel? Haruskah ada proporsi yang ditetapkan sebelumnya dari set tes: set pelatihan (misalnya 10:90 untuk validasi silang 10 kali lipat)? Saya kira saya sedikit tidak jelas bagaimana mengulang validasi 10 kali lipat akan meningkatkan varians dari waktu ke waktu.
Sean
1
Saya khawatir prosedur kedua yang disarankan @amoeba terlalu optimis: pengklasifikasi yang tidak sempurna dapat memiliki kinerja yang sempurna pada dataset yang diberikan (misalnya, anggap Anda hanya memiliki 4 sampel - ini adalah 1: 8 untuk mengklasifikasikan semuanya benar secara kebetulan). Seperti yang dicatat oleh amuba, mengukur varians atas alokasi lipatan uji kereta yang berbeda akan menghasilkan interval kepercayaan 0 lebar, yang jelas salah dalam hal ini.
Trisoloriansunscreen
1
Saya pikir pada akhirnya, masalah ini berujung pada menemukan probabilitas mengamati data yang berbeda dari apa yang belum saya amati. Mendapatkan interval kepercayaan untuk sampel saya adalah apa yang disarankan @amoeba untuk pertanyaan asli saya (saya menggunakan lipatan acak untuk setiap iterasi CV), dan hasilnya terlihat lebih realistis (95% CI: [0,0028, 0,0033]). Namun, saya tidak tahu apakah ada teknik lain yang akan lebih baik untuk prediksi data masa depan. Mungkin semacam pendekatan berbasis model di mana saya memasukkan kurva ke data saya dan menghitung tumpang tindih mereka?
Sean
3
@amoeba: Terima kasih atas klarifikasi, saya kira saya tidak cukup membaca jawaban Anda. Namun, saya masih bermasalah dengan bias optimis dari pendekatan ini (kedua prosedur). Dengan mengukur akurasi saat mencoba perbedaan CV, Anda memperkirakan variabilitas yang disebabkan oleh pemisahan acak. Namun, Anda mengabaikan fakta bahwa seluruh data Anda adalah sampel acak dari populasi pengamatan yang lebih besar (yang tidak Anda kumpulkan). Jika Anda memiliki dataset kecil yang secara kebetulan mencapai kinerja sempurna (terlepas dari pemisahan CV), interval kepercayaan Anda nol dan ini salah.
Trisoloriansunscreen
1
@amoeba: Ini rumit, karena Anda tidak dapat melakukan bootstrap pengamatan sendiri (pertimbangkan penggolong tetangga terdekat dalam kasus seperti itu). Saya sendiri berjuang dengan masalah itu, mari kita lihat apakah ada orang lain yang punya ide.
Trisoloriansunscreen
2

Kesalahan klasifikasi adalah diskontinuitas dan aturan penilaian yang tidak tepat. Ini memiliki presisi rendah, dan mengoptimalkannya memilih pada fitur yang salah dan memberi mereka bobot yang salah.

Frank Harrell
sumber
Ini hampir tidak bisa menjadi masalah bagi OP jika ia mendapatkan akurasi klasifikasi lintas-validasi 99-100%.
Amuba kata Reinstate Monica
1
@amoeba: Ini bisa menjadi masalah juga jika proporsi yang benar mendekati 100 atau 0% diamati: berbeda dengan ukuran kinerja yang bergantung pada skor kontinu, segala jenis kinerja yang diukur setelah dikotomisasi (pengerasan) skor klasifikasi kontinu tidak dapat menunjukkan prediksi mendekati perbatasan keputusan selama mereka masih di sisi yang benar. Namun, IMHO ada alasan yang sah untuk melaporkan ukuran kinerja jenis proporsi (mis. Jika pembaca / kolaborator Anda memahaminya, tetapi tidak mengerti misalnya skor Brier). Saya tidak ingin membuka itu ...
cbeleites tidak senang dengan SX
... jalur diskusi karena tidak ada indikasi pengoptimalan dalam pertanyaan (di mana ini menjadi sangat penting).
cbeleites tidak senang dengan SX
Jika Anda menghitung proporsi yang diklasifikasikan "dengan benar" Anda harus melakukannya karena suatu alasan, misalnya, untuk membuat penilaian atau mengambil tindakan. Proporsi menyesatkan untuk tujuan ini.
Frank Harrell
1
@ FrankHarrell: Yah, alasan saya kira adalah untuk melaporkannya di koran. Apakah Anda pikir orang harus berhenti melaporkan akurasi klasifikasi sama sekali?
Amuba kata Reinstate Monica