Kami memiliki kumpulan data kecil (sekitar 250 sampel * 100 fitur) yang kami inginkan untuk membangun klasifikasi biner setelah memilih subset fitur terbaik. Katakanlah bahwa kita mempartisi data menjadi:
Pelatihan, Validasi dan Pengujian
Untuk pemilihan fitur, kami menerapkan model pembungkus berdasarkan pada pemilihan fitur yang mengoptimalkan kinerja pengklasifikasi X, Y dan Z, secara terpisah. Dalam langkah pra-pemrosesan ini, kami menggunakan data pelatihan untuk melatih pengklasifikasi dan data validasi untuk mengevaluasi setiap subset fitur kandidat.
Pada akhirnya, kami ingin membandingkan berbagai pengklasifikasi (X, Y dan Z). Tentu saja, kita dapat menggunakan bagian pengujian data untuk memiliki perbandingan dan evaluasi yang adil. Namun dalam kasus saya, data pengujian akan sangat kecil (sekitar 10 hingga 20 sampel) dan dengan demikian, saya ingin menerapkan cross-validation untuk mengevaluasi model.
Distribusi contoh positif dan negatif sangat tidak seimbang (sekitar 8: 2). Jadi, validasi silang dapat salah mengarahkan kami dalam mengevaluasi kinerja. Untuk mengatasi ini, kami berencana untuk memiliki bagian pengujian (10-20 sampel) sebagai metode perbandingan kedua dan untuk memvalidasi cross-validasi.
Singkatnya, kami mempartisi data menjadi pelatihan, validasi, dan pengujian. Bagian pelatihan dan validasi akan digunakan untuk pemilihan fitur. Kemudian, validasi silang atas data yang sama akan diterapkan untuk memperkirakan model. Akhirnya, pengujian digunakan untuk memvalidasi cross-validasi mengingat ketidakseimbangan data.
Pertanyaannya adalah: Jika kita menggunakan data yang sama (pelatihan + validasi) yang digunakan dalam memilih fitur yang mengoptimalkan kinerja pengklasifikasi X, Y dan Z, dapatkah kita menerapkan validasi silang atas data yang sama (pelatihan + validasi) yang digunakan untuk pemilihan fitur untuk mengukur kinerja akhir dan membandingkan pengklasifikasi?
Saya tidak tahu apakah pengaturan ini dapat mengarah pada ukuran validasi silang yang bias dan menghasilkan perbandingan yang tidak dapat dibenarkan atau tidak.
Jawaban:
saya pikir itu bias. Bagaimana dengan menerapkan FS pada partisi N-1 dan menguji pada partisi terakhir. dan menggabungkan fitur-fitur dari semua lipatan dengan cara tertentu (gabungan / persimpangan / atau cara tertentu yang bermasalah).
sumber
Jawaban sederhananya adalah Anda harus melakukan pemilihan fitur pada dataset berbeda dari yang Anda latih (Anda sudah melakukan ini, jadi jangan ubah ini) --- efek dari tidak melakukan ini adalah Anda akan menyesuaikan data pelatihan Anda. Anda juga tidak boleh melakukan pemilihan fitur pada set pengujian Anda, karena ini akan meningkatkan perkiraan kinerja model Anda (saya pikir Anda sudah menyadari hal ini juga, tetapi saya merasa agak sulit untuk memahami pertanyaannya dengan tepat).
Jika Anda telah membagi set tes Anda menjadi pelatihan, validasi dan pengujian, maka tidak ada alasan khusus untuk melakukan validasi silang kecuali Anda memiliki sedikit data sehingga set tes Anda terlalu kecil untuk menarik kesimpulan yang kuat. Banyak peneliti tidak menyukai validasi silang karena jika digunakan untuk mendorong pengembangan model (maksud saya, Anda men-tweak hal-hal, kemudian menjalankan validasi silang untuk melihat bagaimana mereka melakukannya, kemudian men-tweak mereka lagi dll.) Anda secara efektif memiliki akses ke tes Anda data dan ini dapat membuat Anda melebih-lebihkan kinerja Anda pada data yang benar-benar tak terlihat. Jika data Anda sangat kecil sehingga Anda tidak punya pilihan selain melakukan validasi silang, cara yang benar untuk melakukan ini dengan pelatihan, dev, dan set tes adalah dengan secara eksplisit membagi data Anda menjadi tiga bagian untuk setiap lipatan --- mayoritas harus digunakan untuk latihan, beberapa untuk pengembangan (pemilihan fitur dalam kasus Anda, ditambah parameter gratis lainnya yang perlu pas) dan akhirnya Anda harus menguji pada bagian tes. Anda kemudian dapat skor rata-rata di seluruh bagian tes ini untuk mendapatkan perkiraan kinerja model: namun, seperti yang saya katakan, berhati-hatilah bahwa jika skor ini digunakan untuk memandu Anda ke pendekatan yang ingin Anda gunakan untuk masalah Anda, Anda seharusnya tidak mengharapkan untuk mendapatkan skor yang sama pada data tak terlihat yang Anda lakukan dari validasi silang Anda.
sumber
finally you should test on the test portion. You can then average scores across these test portions to get an estimate of model performance
Untuk memahami kinerja pengklasifikasi, ini harus digunakan pada data uji yang belum pernah dilihat atau digunakan sebelumnya. Cara saya melihatnya jika Anda membuat keputusan berdasarkan kinerja algoritma pada beberapa set data maka set data ini adalah pelatihan atau validasi silang, dalam keadaan apa pun itu tidak boleh disebut set data uji.Apakah Anda mencoba LOOCV? Saya pikir itu tepat untuk melatih, ketika Anda memiliki data pelatihan yang sangat sedikit. Untuk menjawab pertanyaan Anda, itu tidak akan memberi Anda hasil terbaik hanya karena itu bisa sesuai dan memberi Anda hasil yang menyesatkan, sehingga pengklasifikasi Anda tidak akan bekerja dengan baik pada data lain, yang belum terlihat.
sumber
Anda dapat melakukan hal berikut untuk membandingkan kinerja pengklasifikasi
Ambil set pelatihan Anda dan latihlah pada setiap set fitur yang memungkinkan. Untuk setiap set fitur, meminimalkan parameter dan membangun model sehingga sesuai dengan set pelatihan dengan baik. Sekarang, setelah model dibangun untuk semua set fitur, yaitu Anda memiliki model untuk setiap set fitur, validasi model (dibangun di atas set fitur yang berbeda) pada set validasi dan pilih model itu (dibangun untuk subset set fitur tertentu ) yang memberikan kesalahan minimum pada set validasi. Dengan cara ini, Anda memastikan bahwa model yang dibangun telah cocok tidak hanya dengan perangkat pelatihan tetapi juga perangkat validasi.
Sekarang, ambil model buatan ini dan ujilah pada set pengujian. Ini akan memberi tahu Anda seberapa baik kinerja pengklasifikasi setelah dijalankan pada kumpulan data yang tidak digunakan untuk pelatihan atau untuk validasi. Juga, Anda telah memilih set fitur yang sesuai dengan set pelatihan dan juga set validasi dengan baik.
sumber
Jika mungkin yang terbaik adalah menahan beberapa data untuk validasi silang tambahan. Misalnya Anda dapat menggunakannya untuk memvalidasi algoritma Anda dengan membangun kurva belajar. Kurva ini harus dibangun di atas kumpulan data yang belum pernah digunakan sebelumnya.
Bahkan jika Anda hanya ingin memilih algoritma yang memberi Anda skor F1 tertinggi, Anda harus menggunakan set data validasi silang tambahan untuk melakukannya. Kumpulan uji harus disediakan untuk melaporkan keakuratan akhir solusi Anda (kinerja yang diharapkan dari pengklasifikasi yang dipilih pada data yang tidak terlihat).
sumber
Ini dapat menjadi sangat berat sebelah, merujuk ke bab validasi model dalam "Elemen Pembelajaran Statistik", Hal ini dapat membuat akurasi model cv di atas 70% sedangkan tingkat kesalahan sebenarnya dari setiap model harus 50% (fitur independen dari kelas ).
sumber