Tampaknya kesalahan validasi silang k-fold sangat sensitif terhadap jenis ukuran kinerja. Itu juga memiliki kesalahan dalam dirinya sendiri karena set pelatihan dan validasi dipilih secara acak.
Saya pikir Anda telah menemukan varians tinggi ukuran kinerja yang sebanding dengan jumlah kasus seperti # correct predictions# test cases. Anda mencoba mengestimasi misalnya, kemungkinan bahwa classifier Anda mengembalikan jawaban yang benar. Dari sudut pandang statistik, itu digambarkan sebagai uji coba Bernoulli, yang mengarah ke distribusi binomial. Anda dapat menghitung interval kepercayaan untuk distribusi binomial dan akan menemukan bahwa mereka sangat luas. Ini tentu saja membatasi kemampuan Anda untuk melakukan perbandingan model.
Dengan melakukan resampling skema validasi seperti validasi silang, Anda memiliki sumber variasi tambahan: ketidakstabilan model Anda (saat Anda membuat k model pengganti selama setiap menjalankan CV)
Selain itu, mengubah jumlah lipatan memberi saya nilai parameter optimal berbeda.
Itu yang diharapkan karena varians. Anda mungkin memiliki efek tambahan di sini: libSVM membagi data hanya sekali jika Anda menggunakan validasi silang bawaan untuk penyetelan. Karena sifat SVM, jika Anda membangun SVM dengan data pelatihan yang identik dan perlahan-lahan mengubah parameter, Anda akan menemukan bahwa vektor dukungan (dan konsekuensinya akurasi) melonjak: selama parameter SVM tidak terlalu berbeda, itu akan tetap pilih vektor dukungan yang sama. Hanya ketika paraters diubah cukup, tiba-tiba vektor dukungan yang berbeda akan dihasilkan. Jadi mengevaluasi kisi-kisi parameter SVM dengan pemisahan validasi silang yang persis sama dapat menyembunyikan variabilitas, yang Anda lihat di antara berbagai proses.
IMHO masalah dasarnya adalah Anda melakukan pencarian kisi, yang merupakan pengoptimalan yang mengandalkan perilaku fungsional target Anda yang cukup lancar (akurasi atau apa pun yang Anda gunakan). Karena varians yang tinggi dari pengukuran kinerja Anda, asumsi ini dilanggar. Ketergantungan "gelisah" dari model SVM juga melanggar asumsi ini.
Metrik akurasi untuk validasi silang mungkin terlalu optimis. Biasanya apapun lebih dari 2 kali lipat validasi silang memberi saya akurasi 100%. Juga, tingkat kesalahan diskritisasi karena ukuran sampel yang kecil. Pemilihan model akan sering memberi saya tingkat kesalahan yang sama di semua atau sebagian besar nilai parameter.
Itu yang diharapkan mengingat masalah umum dari pendekatan tersebut.
Namun, biasanya dimungkinkan untuk memilih nilai parameter yang benar-benar ekstrem di mana classifier rusak. IMHO rentang parameter di mana SVM bekerja dengan baik adalah informasi penting.
Dalam kasus apa pun Anda benar-benar membutuhkan validasi eksternal (ganda / bersarang) dari kinerja model yang Anda pilih sebagai 'terbaik'.
Saya mungkin akan melakukan sejumlah run / repetitions / iterasi dari validasi cross luar atau validasi out-of-bootstrap luar dan memberikan distribusi
- hyperparameters untuk model "terbaik"
- melaporkan kinerja penyetelan
- mengamati kinerja validasi luar
Perbedaan antara dua yang terakhir adalah indikator overfitting (misalnya karena "skimming" varians).
Saat menulis laporan, bagaimana saya tahu bahwa klasifikasi itu 'baik' atau 'dapat diterima'? Di lapangan, sepertinya kita tidak memiliki sesuatu seperti goodness of fit atau ambang batas p-value yang umum diterima. Karena saya menambahkan ke data iteratif, saya ingin tahu kapan harus berhenti - apa yang baik N di mana model tidak meningkat secara signifikan?
(Apa yang Anda tambahkan? Kasing atau variasi / fitur?)
Pertama-tama, jika Anda melakukan pemodelan iteratif, Anda juga perlu melaporkan bahwa karena prosedur pemasangan yang tepat, kinerja Anda tidak dianggap serius karena tunduk pada bias optimis. Alternatif yang lebih baik adalah melakukan validasi model akhir. Namun, data uji yang harus independen dari semua data yang pernah masuk ke pelatihan atau proses keputusan Anda untuk pemodelan (sehingga Anda mungkin tidak memiliki data yang tersisa).