Saya ingin melatih classifier, katakanlah SVM, atau forest acak, atau classifier lainnya. Salah satu fitur dalam dataset adalah variabel kategori dengan 1000 level. Apa cara terbaik untuk mengurangi jumlah level dalam variabel ini. Dalam R ada fungsi yang disebut combine.levels()
dalam paket Hmisc , yang menggabungkan tingkat jarang, tetapi saya mencari saran lain.
classification
svm
random-forest
many-categories
sabunime
sumber
sumber
Jawaban:
Cara terbaik untuk melakukan ini akan sangat bervariasi tergantung pada tugas yang Anda lakukan, jadi tidak mungkin untuk mengatakan apa yang terbaik dalam cara yang mandiri.
Ada dua hal mudah untuk dicoba jika level Anda adalah ordinal:
Jika level tidak ordinal, Anda dapat mengelompokkan level berdasarkan fitur / variabel lain dalam dataset Anda dan mengganti id cluster untuk level sebelumnya. Ada banyak cara untuk melakukan ini karena ada algoritma pengelompokan, sehingga bidang ini terbuka lebar. Ketika saya membacanya, inilah yang
combine.levels()
sedang dilakukan. Anda dapat melakukan hal yang sama menggunakankmeans()
atauprcomp()
. (Anda bisa / selanjutnya harus melatih classifier untuk memprediksi cluster untuk titik data baru.)sumber