Rasgele orman sınıflandırması için kategorik veri türlerine nasıl uyabilirim?


12

Random Forest Algorithm uygulayarak bir eğitim veri kümesinin doğruluğunu bulmam gerekiyor. Ama benim veri setimin türü hem kategorik hem de sayısal. Bu verileri sığdırmaya çalıştığımda bir hata alıyorum.

'Girdi NaN, sonsuzluk veya dtype (' float32 ') için çok büyük bir değer içeriyor'.

Sorun nesne veri türleri için olabilir. RF uygulamak için dönüştürmeden kategorik verileri nasıl ekleyebilirim?

İşte kodum.

ekran görüntüsü

ekran görüntüsü

ekran görüntüsü


Bir ağaç modeli kullanıyorsanız, one_hot gerçekleştirmeniz gerekmez, çünkü diğer yöntem gibi mesafeyi ölçmez.
Jun Yang

1
@ JunYang, scikit-learn şu anda kodlama kategorileri gerektiriyor.
Ben Reiniger

Yanıtlar:


11

Kategorik özellikleri sayısal özelliklere dönüştürmeniz gerekir. Ortak bir yaklaşım, tek-sıcak kodlama kullanmaktır, ancak bu kesinlikle tek seçenek değildir. Çok sayıda kategorik seviyeye sahip bir değişkeniniz varsa, seviyeleri birleştirmeyi veya karma hile kullanmayı düşünmelisiniz. Sklearn çeşitli yaklaşımlarla donatılmıştır ("ayrıca bakınız" bölümünü kontrol edin): Bir Hot Encoder ve Hashing Trick

Sklearn konusunda kararlı değilseniz, h2o rastgele orman uygulaması kategorik özellikleri doğrudan işler.


0

Bildiğim kadarıyla bu tür hataları almak için bazı problemler var. Birincisi, veri kümelerimde hata gösterilmesinin neden fazladan alan var, 'Girdi NAN değeri içeriyor; İkincisi, python herhangi bir nesne değeri türüyle çalışamaz. Bu nesne değerini sayısal değere dönüştürmemiz gerekiyor. Nesneyi sayısal hale dönüştürmek için iki tür kodlama işlemi vardır: Etiket kodlayıcı ve Bir sıcak kodlayıcı. Etiket kodlayıcı 0 ile n_classes-1 arasında nesne değerini kodlar ve Bir sıcak kodlayıcı 0 ile 1 arasında değer kodlar. Çalışmamda, verilerimi herhangi bir sınıflandırma yöntemi için yerleştirmeden önce, değeri dönüştürmek için Etiket kodlayıcı kullanıyorum ve dönüştürmeden önce veri kümemde boş alan yok.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.