Sinir Ağları: Bir sıcak değişken ezici sürekli?


13

Yaklaşık 20 sütun (20 özellik) olan ham veri var. Bunlardan on tanesi sürekli veridir ve 10 tanesi kategoriktir. Kategorik verilerin bazıları 50 farklı değere sahip olabilir (ABD Devletleri). Verileri önceden işledikten sonra 10 sürekli sütun 10 hazırlanmış sütun haline gelir ve 10 kategorik değer 200 tek etkin kodlanmış değişken gibi olur. Bu 200 + 10 = 210 özelliklerinin tümünü sinir ağına koyarsam, 200-sıcak özelliklerin (10 kategorik sütun) 10-sürekli özelliklere tamamen hakim olacağından endişe ediyorum.

Belki bir yöntem, sütunları bir arada "gruplandırmak" olabilir. Bu geçerli bir sorun mu ve bu sorunla başa çıkmanın standart bir yolu var mı?

(Çok önemli olduğunu düşünmeme rağmen Keras kullanıyorum.)


İki (veya daha fazla) sıralı model kullanmayı ve bunları birleştirmeyi düşündünüz mü? Her model, geldiği gibi verilerle daha iyi eşleşen girdilere sahiptir (bir sosis gibi ezilmesinin aksine) Hedefler aynıdır, ancak iki takım eğitim verisi yaparsınız, her biri takma sırasında bağımsız olarak beslenir. Birleştirme işleminden hemen sonra son çıktı katmanınız gelir, böylece son katman belirli örnekler için hangi modelin en iyi olduğuna karar verir. Gönderen keras.io: keras.io/getting-started/sequential-model-guide
photox

Tam da aradığım şey. Katkınız için teşekkürler.
user1367204

Bunu denedim ve topluluğun val_loss'u (model_1, model_2) model_1 val_loss'tan daha yüksek ve model_2 val_loss'dan daha yüksekti.
user1367204

bunu gerçekten denediniz mi ve bu sorunun gerçekten oluştuğunu belirlediniz mi? bu noktayı kontrol etmek için hangi testleri yaptınız? sonuçlar neydi?
Hugh Perkins

Yanıtlar:


5

Kategorik değişkenleri, bir etkin moddan farklı bir yöntemle kodlayabilirsiniz. Bu durum için ikili veya karma kodlayıcılar uygun olabilir. Özellikle karma yapmak iyidir çünkü tüm kategorileri özellik vektörü başına tek bir temsilde kodlarsınız, böylece hiç kimse diğerine hakim olmaz. Son gösterimin boyutunu da belirtebilirsiniz, böylece tüm kategorik değişkenleri 10 özelliğe ayırabilir ve 20 sayısal özelliğe (yarı sürekli, yarı kategorik) sahip olabilirsiniz.

Her ikisi de https://github.com/scikit-learn-contrib/categorical-encoding veya kendiniz uygulamak için oldukça basit bir şekilde uygulanır.


4

Çok sayıda kategorik değişkeni tek bir vektöre dönüştürmek için yerleştirmeyi kullanabilirsiniz . Bu sıkıştırılmış vektör, kategorik özelliklerin dağıtılmış bir temsili olacaktır. Kategorik girdiler, bir şekilde tüm girdileri tanımlayan N gizli özellikleri temsil eden N gerçek sayıları olan nispeten küçük bir uzunluk N vektörüne dönüştürülecektir.

İngilizce sözlükteki çok sayıda kelimeyi düşünün. Bu sayı N ise, her sözcüğü N uzunluğunda bir sıcak kodlu vektör olarak gösterebiliriz. Bununla birlikte, kelime-vec , neredeyse tüm bu bilgileri 200-300 arasındaki bir uzunluk vektöründe yakalayabilir.

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.