Destek Vektör Makineleri için özellik seçimi


9

Sorum üç kat

"Çekirdekleştirilmiş" destek vektör makineleri bağlamında

  1. Değişken / özellik seçimi istenir mi - özellikle aşırı sığmayı önlemek için C parametresini düzenli hale getirdiğimizden ve çekirdekleri bir SVM'ye sokmanın arkasındaki ana sebep sorunun boyutsallığını arttırmak olduğu için, bu durumda boyutları parametre küçültme ile azaltmak karşı sezgisel görünüyor
  2. İlk sorunun cevabı "HAYIR" ise, o zaman cevap hangi şartlarda akılda tutulmalıdır?
  3. Python scikit-öğrenim kütüphanesinde SVM'ler için özellik azaltma getirmeye çalışılan iyi yöntemler var mı - SelectFpr yöntemini denedim ve farklı yöntemlere sahip deneyimleri olan insanları arıyorum.

1
Başlangıç ​​özellikleriniz başlangıçta süper yüksek kaliteye ulaşmadıkça özellik seçimi her zaman yardımcı olacaktır. Sklearn birçok farklı özellik seçim kütüphanesi sunuyor ( scikit-learn.org/stable/modules/feature_selection.html ) Kendimi RFE'nin bir parçasıyım .
David

1
Bağlamınızdan bahsetmediniz - bir iş bağlamındaysa, modelde kalan her özelliğin bir düzeyde bakım gerektireceğini unutmayın - daha fazla değişkeniniz varsa, gerçek anlamda, örneğin, daha fazla veri toplama çabası, DBA zamanı ve programlama zamanı gerektirir. Bu değerlendirme, bir Kaggle comp veya benzeri için geçerliyse geçerli değildir ve veri kümesindeki kullanılabilir özelliklerin fazladan 200'ü kullanıldığında, paranızın içinde olduğunuz performansta% 0,01'lik bir artış sağlar.
Robert de Graaf

Yanıtlar:


3

Şahsen, özellik seçimini ikiye bölmeyi seviyorum:

  • denetimsiz özellik seçimi
  • denetimli özellik seçimi

Denetimsiz özellik seçimi , en az yedekli özellik aralığını seçtiğiniz (veya az yedekli özellikler oluşturduğunuz) kümeleme veya PCA gibi şeylerdir. Denetimli özellik seçimi , en öngörücü güce sahip özellikleri seçtiğiniz Kement gibi şeylerdir.

Şahsen genellikle denetlenen özellik seçimi dediğim şeyi tercih ederim. Bu nedenle, doğrusal bir regresyon kullanırken, Kemente dayalı özellikleri seçerdim. Sinir ağlarında seyrekliği indüklemek için benzer yöntemler mevcuttur.

Ama aslında, bunu çekirdekler kullanarak bir yöntemde nasıl yapacağımı görmüyorum, bu yüzden muhtemelen denetimsiz özellik seçimi dediğim şeyi kullanarak daha iyi durumdasınız.

EDIT: Düzenleme hakkında da sordunuz. Düzenlemeyi çoğunlukla yardımcı olarak görüyorum çünkü sonlu örneklerle çalışıyoruz ve bu nedenle eğitim ve test dağıtımı her zaman biraz farklı olacak ve modelinizin fazla uymamasını istiyorsunuz. (Gerçekten çok fazla varsa) özellikleri seçmekten kaçınma ihtiyacını ortadan kaldırır emin değilim. Özelliklerin seçilmesinin (veya daha küçük bir alt kümesinin oluşturulması), sahip olduğunuz özellikleri daha sağlam hale getirmeye ve modelin sahte korelasyonlardan öğrenmekten kaçınmasına yardımcı olduğunu düşünüyorum. Yani, düzenlileştirme yardımcı olur, ancak bunun tam bir alternatif olduğundan emin değildir. Ama bunun hakkında yeterince düşünmedim.

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.