SVM (Destek Vektör Makineleri) için kategorik ve sürekli verileri karıştırmak uygun mudur?


14

Benim gibi bir veri setim var

+--------+------+-------------------+
| income | year |        use        |
+--------+------+-------------------+
|  46328 | 1989 | COMMERCIAL EXEMPT |
|  75469 | 1998 | CONDOMINIUM       |
|  49250 | 1950 | SINGLE FAMILY     |
|  82354 | 2001 | SINGLE FAMILY     |
|  88281 | 1985 | SHOP & HOUSE      |
+--------+------+-------------------+

Bunu bir LIBSVM formatı vektör alanına gömdüm

+1 1:46328 2:1989 3:1
-1 1:75469 2:1998 4:1
+1 1:49250 2:1950 5:1
-1 1:82354 2:2001 5:1
+1 1:88281 2:1985 6:1

Özellik endeksleri:

  • 1 "gelir" dir
  • 2 "yıl" dır
  • 3 "kullanım / TİCARİ MUAFİYET" tir
  • 4 "kullan / CONDOMINIUM" dur
  • 5 "kullan / TEK AİLE" dir
  • 6 "kullanım / MAĞAZA & EV"

Bunun gibi sürekli (yıl, gelir) ve kategorik (kullanım) verilerden oluşan bir destek vektör makinesi (SVM) eğitmek uygun mudur?


3
"SVM" yi en az bir kez hecelemelisiniz.
Peter Flom - Monica'yı eski durumuna döndürün

1
Bu verileri ölçeklendirdiğinizden emin olun!
Patrick Caldon

Yanıtlar:


7

Evet! Ama belki demek istediğin şekilde değil. Araştırmamda sürekli olarak değerli olanlardan özyinelemeli bölümleme gibi bir algoritma kullanarak kategorik özellikler oluşturuyorum . Bu yaklaşımı genellikle destek vektör makinelerinin SVMLight uygulamasıyla kullanıyorum, ancak LibSVM ile de kullandım. Bölümlenmiş kategorik özelliklerinizi eğitim ve sınıflandırma sırasında özellik vektörünüzdeki belirli bir yere atadığınızdan emin olmanız gerekir, aksi takdirde modeliniz son olarak sona erer.

Düzenleme: Yani, bunu yaptığımda, özyinelemeli bölümleme çıkışı ile ilişkili ikili değerlere vektörün ilk n öğelerini atar. İkili özellik modellemesinde, 0 ve 1'lerden oluşan dev bir vektörünüz vardır, bu nedenle farklı özelliklerin nerede olduğunu açıkça belirtmediğiniz sürece her şey modele aynı görünür. Çoğu SVM uygulamasının bunu kendi başlarına yapacağını hayal ettiğimden, bu muhtemelen aşırı derecede spesifiktir, ancak, kendiniz programlamak isterseniz, düşünülmesi gereken bir şey olabilir!


1
teşekkürler Kyle, biraz daha spesifik olabilir misin? "Bölümlenmiş kategorik özelliklerinizi belirli bir yere atama" ne demek?
Seamus Abshere

@SeamusAbshere Sorun değil! Buna cevap vermek için cevabımı düzenledim!
Kyle.

Libsvm'nin bahsettiğiniz şeyi otomatik olarak yaptığını duydum - herhangi bir düşünce?
Seamus Abshere

Haklı olduğunuzu hayal ediyorum, ama kesin olarak bilmiyorum. Şimdi düşündüğüme göre, bunun nasıl çalışabileceğinden emin değilim.
Kyle.

@ Kyle'ın cevabına göre, kategorik (Murmur32 karmalarını kullanarak) ve sürekli veriler için bu dönüşümü (gömme) otomatik olarak yapan bir Ruby kütüphanesi ( VectorEmbed ) yazdım . Libsvm biçimli dosyalar verir.
Seamus Abshere
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.