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?
machine-learning
classification
t-test
entropi
sumber
sumber
Jawaban:
Tinjauan dan kritik terhadap beberapa pendekatan uji-t diberikan dalam Memilih antara dua algoritma pembelajaran berdasarkan pada tes yang dikalibrasi , Perkiraan Uji Statistik untuk Membandingkan Algoritma Pembelajaran Klasifikasi yang Dibimbing , dan Pada Membandingkan Pengklasifikasi: Kesalahan dalam Menghindari dan Pendekatan yang Dianjurkan
sumber
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.
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.k n p^=kn σ2(p^)=σ2(kn)=p(1−p)n
sumber