SVM veya Sinir Ağı kullanılırken kategorik değişkeni sayısal değişkene yeniden kodlama


19

SVM veya Sinir Ağını kullanmak için, kategorik değişkenleri sayısal değişkenlere dönüştürmesi (kodlaması) gerekir, bu durumda normal yöntem 0-1 ikili değerleri, k. Kategorik değeri (0,0, .. olarak dönüştürülür) kullanmaktır. ., 1,0, ... 0) (1, k-th konumundadır). Bunu yapmak için başka yöntemler var mı, özellikle de 0-1 gösteriminin Sinir Ağı'nda oldukça istenen veya beklenmeyen çok sayıda ek boyut (giriş birimi) sunacağı şekilde çok sayıda kategorik değer olduğunda (örn. 10000) ?

Genel stratejileri soruyorum.


Genel stratejileri mi yoksa belirli bir problemi mi soruyorsunuz?
Denis Tarasov

Yanıtlar:


11

Kelimelerin tipik olarak 1-k-olarak kodlandığı NLP'de, kelime düğünlerinin kullanımı son zamanlarda ortaya çıkmıştır. Wikipedia sayfası referansları ile iyi bir başlangıçtır.

Genel fikir vektörel bir temsili öğrenmek xbenR,nin

Belki bu fikri ortamınıza aktarabilirsiniz.


10

'Standart' yöntemler şunlardır: bir sıcak kodlama (soruda bahsettiğiniz). Çok fazla olası kategori varsa, ancak 0-1 kodlamaya ihtiyacınız varsa, karma hile kullanabilirsiniz .

Diğer sık ​​kullanılan yöntem kategoriye göre cevabın ortalamasını almaktır : kaggle'daki yorumdan resme bakın .


1

Pakette dummyVarsR olarak kullanabilirsiniz caret. Seviye sayısına göre otomatik olarak farklı sütunlar oluşturur. Daha sonra cbindorijinal verilerinizi kullanabilir ve ona ekleyebilirsiniz. Diğer seçenekler arasında model.matrixvesparse.model.matrix .


0

Daha kompakt olan ve bazen bir sıcaktan daha iyi performans gösteren ikili kodlamayı deneyebilirsiniz. Örneğin, Keras'ta kategorik gömme uygulayabilirsiniz.


0

k-1

"Kategorik Değişkenlerin Varlık Gömmeleri " Cheng Guo, Felix Berkhahn

Bir fonksiyon yaklaşımı problemindeki kategorik değişkenleri, kategorik değişkenlerin varlık düğünleri olan Öklid uzaylarına eşleriz. Haritalama, standart denetimli eğitim sürecinde bir sinir ağı tarafından öğrenilir. Varlık gömme, bellek kullanımını azaltır ve tek-sıcak kodlamaya kıyasla sinir ağlarını hızlandırmaz, daha da önemlisi, gömme alanında birbirine yakın benzer değerleri eşleyerek kategorik değişkenlerin içsel özelliklerini ortaya çıkarır. Son zamanlarda Kaggle yarışmasında başarıyla uyguladık ve göreceli basit özelliklerle üçüncü sıraya gelebildik. Bu makalede ayrıca, veri gömme işleminin veri seyrek olduğunda ve istatistikler bilinmediğinde sinir ağının daha iyi genelleşmesine yardımcı olduğunu göstermektedir. Bu nedenle, diğer yöntemlerin gereğinden fazla eğilim gösterdiği yüksek kardinalite özelliklerine sahip veri kümeleri için özellikle yararlıdır. Ayrıca eğitimli sinir ağından elde edilen düğünlerin, girdi özellikleri olarak kullanıldığında test edilen tüm makine öğrenme yöntemlerinin performansını önemli ölçüde artırdığını gösteriyoruz. Varlık gömme, kategorik değişkenler için bir mesafe ölçüsü tanımladığından, kategorik verileri görselleştirmek ve veri kümelemek için kullanılabilir.

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.