Bagaimana cara membandingkan kinerja pengklasifikasi pembelajaran mesin secara statistik?


29

Berdasarkan estimasi akurasi klasifikasi, saya ingin menguji apakah satu classifier secara statistik lebih baik pada set dasar daripada classifier lain. Untuk setiap classifier, saya memilih pelatihan dan pengujian sampel secara acak dari set dasar, melatih model, dan menguji model. Saya melakukan ini sepuluh kali untuk setiap classifier. Karena itu saya memiliki sepuluh estimasi pengukuran akurasi klasifikasi untuk setiap classifier. Bagaimana saya menguji secara statistik apakah adalah classifier yang lebih baik daripada pada dataset dasar. Uji-t apa yang tepat untuk digunakan?classifier1classifier2


Apakah Anda menguji pengklasifikasi pada sampel yang sama? yaitu, sample1, c1 (sample1), c2 (sample1)? Atau apakah Anda menggunakan sampel berbeda untuk setiap classifier?
John Moeller

Paired t-test akan sesuai dalam skenario ini.
GEL

1
@lewellen: akurasi adalah proporsi: uji-t biasanya tidak tepat.
cbeleites mendukung Monica

3
@JohnMoeller: "perbedaan proporsi" akan menjadi istilah pencarian, independen atau dependen yang belum kita ketahui. Jika dipasangkan: Tes McNemar. Saya menduga bahwa uji-t berarti ukuran sampel yang agak kecil, jadi mungkin perkiraan normal bukan ide yang baik. Saya akan menggunakan Metode Statistik untuk Tarif dan Proporsi untuk mencari detail.
cbeleites mendukung Monica

2
@ JohnMoeller: Saya mengatakan bahwa setiap akurasi adalah proporsi. Jika Anda ingin membandingkannya, gunakan metode untuk "perbedaan proporsi". Saya memperluas ini menjadi jawaban untuk mencegah komentar tanpa akhir.
cbeleites mendukung Monica

Jawaban:


14

Dietterich mengatakan: "Distribusi binomial dapat diperkirakan dengan baik oleh distribusi normal untuk nilai masuk akal ." Sejauh ini, Anda tidak memberi tahu kami bahwa Anda memiliki masuk akal . @ JohnMoeller 30 kasus adalah IMHO agak sedikit untuk perkiraan normal (setidaknya tanpa pengetahuan tentang dan ). nnp1p2
cbeleites mendukung Monica

Saya memiliki setidaknya 4000 catatan per kelas yang tersedia di dataset dasar, oleh karena itu sampel yang saya pilih bisa kurang dari ini. Kelemahan terbesar dengan perbedaan tes proporsi adalah mereka mengabaikan "variasi internal dari algoritma pembelajaran". Saya pikir ini penting untuk classifier seperti jaringan saraf, yang saya gunakan.
entropi

Yah, itu adalah situasi yang sama sekali berbeda dari apa yang JohnMoeller ceritakan. Jika yang Anda maksud adalah ketidakstabilan model dengan "variasi internal": Anda dapat mengukurnya. Saya akan memperbarui jawaban saya.
cbeleites mendukung Monica

Untuk memperjelas, 30 adalah berapa kali saya memilih set partisi tes / kereta, bukan jumlah titik tes yang saya pilih.
John Moeller

@JohnMoeller: maaf, saya benar-benar salah paham bahwa (berasal dari bidang di mana "sampel" adalah spesimen fisik semacam).
cbeleites mendukung Monica

10

Saya tidak punya buku Fleiss di tangan, jadi semua ini adalah IIRC.

Menjawab pertanyaan JohnMoeller dalam komentar untuk saat ini: pertanyaan aslinya adalah IMHO tidak dapat dijawab.

Jadi anggaplah saya memiliki 30 sampel, dan saya menguji c1 dan c2 pada setiap sampel, dan mencatat akurasi untuk masing-masing pada setiap sampel.

melakukan ini, Anda berakhir dengan tabel kontingensi 2 x 2 memberikan classifier 1 benar / salah terhadap classifier 2 benar / salah. Yang merupakan titik awal untuk tes McNemar . Jadi ini untuk perbandingan berpasangan, yang lebih kuat daripada membandingkan proporsi "independen" (yang tidak sepenuhnya independen jika mereka berasal dari menggambar secara acak dari sampel terbatas yang sama).

Saya tidak bisa melihat "cetakan kecil" McNemar sekarang, tetapi 30 sampel tidak banyak. Jadi, Anda mungkin harus beralih dari tes McNemar ke Fisher's exact [atau sesuatu yang lain] yang menghitung probabilitas binomial.


Cara proporsi:
Tidak masalah apakah Anda menguji satu dan pengelompokan yang sama 10x dengan 10 kasus uji atau sekali dengan 100 kasus tersebut (tabel 2 x 2 hanya menghitung semua kasus uji).

Jika 10 perkiraan akurasi untuk setiap classifier dalam pertanyaan asli diperoleh dengan random hold out atau 10 kali lipat validasi silang atau 10x out-of-bootstrap, asumsi biasanya 10 model pengganti yang dihitung untuk masing-masing classifier adalah setara (= memiliki akurasi yang sama), sehingga hasil tes dapat dikumpulkan *. Untuk validasi silang 10 kali lipat Anda kemudian menganggap bahwa ukuran sampel uji sama dengan jumlah total sampel uji. Untuk metode lain saya tidak begitu yakin: Anda dapat menguji kasus yang sama lebih dari sekali. Bergantung pada data / masalah / aplikasi, ini tidak sebanyak informasi sebanyak pengujian kasus baru.

* Jika model pengganti tidak stabil, asumsi ini rusak. Tapi Anda bisa mengukur ini: Lakukan iterasi lipatan validasi silang. Setiap run lengkap memberikan satu prediksi untuk setiap kasus. Jadi jika Anda membandingkan prediksi untuk test case yang sama pada sejumlah model pengganti yang berbeda, Anda dapat mengukur varians yang disebabkan oleh pertukaran beberapa data pelatihan. Varians ini merupakan tambahan untuk varian karena ukuran sampel total yang terbatas.k

Masukkan hasil CV Anda yang di-iterasi ke dalam "matriks klasifikasi yang benar" dengan setiap baris sesuai dengan satu case dan setiap kolom ke salah satu model pengganti. Sekarang varian di sepanjang baris (menghapus semua elemen kosong) semata-mata karena ketidakstabilan dalam model pengganti. Varians dalam kolom disebabkan oleh jumlah kasus hingga yang Anda gunakan untuk menguji model pengganti ini. Katakanlah, Anda memiliki prediksi yang benar dari kasus yang diuji dalam sebuah kolom. Estimasi titik untuk keakuratan adalah , ini tergantung pada varians . Periksa apakah varians karena ketidakstabilan besar atau kecil dibandingkan dengan varians karena ukuran sampel uji yang terbatas.knp^=knσ2(p^)=σ2(kn)=p(1p)n


Ah, baiklah. Ini bagian terakhir yang membereskan, setidaknya bagi saya. Terima kasih.
John Moeller

Terima kasih atas tanggapannya. Hanya tidak jelas prosedur yang harus diikuti. Anda mengatakan preformasi 10 kali lipat validasi silang pada satu dataset. Ukur akurasi pada sampel tahan, yaitu hitung matriks kebingungan 2x2. Tambahkan sepuluh matriks kebingungan 2x2. Lakukan terlebih dahulu uji McNemar pada matriks kebingungan 2x2 teragregasi.
entropi

@entropy: 1. Tabel kontingensi 2x2 bukan matriks kebingungan. 2. sampel baru setiap kali vs. menguji kedua pengklasifikasi pada data pengujian yang sama: tes berpasangan lebih kuat (dan mungkin di sini). Lihat jawaban yang diperbarui.
cbeleites mendukung Monica

Maaf untuk itu, ya, tabel darurat. Apakah saya benar mengatakan bahwa tes McNemar menerjemahkan langsung ke masalah multi-kelas juga.
entropi

@cbeleites terima kasih banyak atas tanggapannya !!! Saya pikir Anda sekarang telah menjawab pertanyaan saya dengan tepat. Namun, saya masih tidak mengerti prosedur yang tepat untuk diikuti. Apakah Anda keberatan menguraikan paragraf terakhir.
entropi
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.