Bagaimana cara menghadapi faktor dengan level langka dalam validasi silang?

9

Misalkan dalam analisis regresi dalam R, saya memiliki jenis variabel variabel independen dengan 3 level dalam dataset kereta saya. Tetapi dalam data uji mengatur bahwa variabel faktor yang sama memiliki 5 level. Oleh karena itu saya tidak dapat memprediksi nilai respons untuk dataset uji. Apa yang harus dilakukan dalam kasus ini?

JRK
sumber
1
Ini bukan terutama tentang bagaimana menggunakan R. & jika itu hanya tentang bagaimana menggunakan R, itu akan menjadi off-topic di sini. Ada pertanyaan statistik yang bagus di sini.
gung - Reinstate Monica
1
Bisakah Anda menambahkan beberapa data sampel? Akan lebih mudah untuk mengatasi hal ini.
Andrew Owens

Jawaban:

8

Sebagai pemikiran pertama, ini berarti bahwa set pelatihan Anda setidaknya tidak mewakili untuk data aplikasi. Apakah set tes representatif atau tidak adalah pertanyaan yang harus dipikirkan IMHO dengan hati-hati. Dalam konteks ini, penting juga untuk mengetahui apakah kelas-kelas yang hilang ini merupakan masalah dari set pelatihan yang terlalu kecil, atau apakah ini merupakan karakteristik umum dari masalah / tugas / aplikasi. Yaitu, apakah kelas baru yang belum pernah ditemui sebelumnya akan muncul sepanjang waktu.

Pada prinsipnya, saya melihat dua kemungkinan berurusan dengan situasi ini:

  • Katakan bahwa set pelatihan pasti tidak representatif dan meminta lebih banyak data, terutama untuk data kelas yang hilang. Ini masuk akal jika Anda sampai pada kesimpulan bahwa masalahnya terletak pada set pelatihan tertentu, bukan dengan karakteristik umum aplikasi.

  • Dalam hal apapun, mengetahui bahwa data pelatihan melewatkan kelas, saya akan mempertimbangkan menggunakan classifer satu kelas. Yaitu classifier yang memperlakukan setiap kelas secara independen dari setiap kelas lain yang mungkin. Idealnya, classifier satu kelas harus mengembalikan "kelas tidak dikenal" untuk kasus uji kelas yang belum tersedia untuk pelatihan. Untuk pengklasifikasi satu kelas, menguji "penolakan" kasus-kasus milik kelas yang benar-benar tidak dikenal ini benar-benar masuk akal.


sunting komentar wrt @ gung: Saya berasumsi bahwa split kereta / tes diperbaiki untuk beberapa alasan semoga bagus .

cbeleites tidak senang dengan SX
sumber
Apakah masuk akal untuk mempartisi data Anda dengan setiap tingkat & kemudian menggabungkannya ke dalam lipatan? Misalnya, X1 memiliki 2 level w / 90 & 10 data; Anda dapat mempartisi 10 menjadi 10 lajang & 90 menjadi 10 set 9, maka Anda akan menggabungkan satu set dari masing-masing untuk membentuk masing-masing 10 lipatan Anda untuk CV. Inilah yang terlintas dalam pikiran ketika saya membaca Q, tetapi sepertinya Anda tidak menyarankan itu. Apakah ini solusi yang valid? (Saya bisa bertanya sebagai Q baru, jika Anda mau.)
gung - Reinstate Monica
@ungung: Saya pikir secara logis itu adalah pertanyaan yang terpisah, ya. Saya juga melihat perbedaan besar antara set pelatihan yang tidak mencakup semua kelas dan memastikan semua kelas dari set data kecil yang diberikan muncul dalam pelatihan dan pemisahan tes (= stratifikasi).
cbeleites tidak senang dengan SX