Düzenleme algoritmaları kullanırken yine de özellik seçimi yapmamız gerekiyor mu?


20

İstatistiksel bir öğrenme algoritması çalıştırmadan önce özellik seçim yöntemlerini (Rastgele ormanlar önem değeri veya Tek değişkenli özellik seçim yöntemleri vb.) Kullanmayla ilgili bir sorum var.

Aşırı kilo vermekten kaçındığımızı biliyoruz, ağırlık vektörleri üzerinde düzenleyici ceza verebiliriz.

Eğer lineer regresyon yapmak istersem, o zaman L2 veya L1 hatta Elastik ağ regülasyon parametrelerini tanıtabilirim. Seyrek çözümler elde etmek için, L1 cezası özellik seçiminde yardımcı olur.

Öyleyse, Kement gibi L1 düzenlenmesi regresyonunu çalıştırmadan önce özellik seçimi yapmak hala gerekli mi? Teknik olarak Kement, özellikleri L1 cezasıyla azaltmama yardımcı oluyor, o zaman neden algoyu çalıştırmadan önce özellik seçimi gerekiyor?

Anova'dan sonra SVM yapmanın sadece SVM kullanmaktan daha iyi performans verdiğini söyleyen bir araştırma makalesini okudum. Şimdi soru şudur: SVM, doğal olarak L2 normu kullanarak düzenlileştirme yapar. Marjı en üst düzeye çıkarmak için ağırlık vektörü normunu en aza indirir. Bu yüzden nesnel işlevinde düzenlileşme yapıyor. Öyleyse SVM gibi teknik algoritmalar, özellik seçme yöntemleri hakkında rahatsız edilmemelidir ?. Ancak raporda, normal SVM daha güçlü olmadan önce Tek Değişkenli Özellik seçimi yapıldığını söylüyor.

Düşüncesi olan var mı?


Ben soracağım bir soru SVM düzenlenmesi çekirdek yöntemleri ile nasıl çalışır? L2 norm reg normalize edilen girdilere dayanır. Ancak bir çekirdek (örneğin polinom) kullanıyorsanız, etkili girdileriniz (yani polinom güçleri) artık normalleştirilmez.
seanv507

Yanıtlar:


17

Özellik seçimi bazen düzenli modellerin performansını iyileştirir, ancak benim deneyimime göre genelleme performansını daha da kötüleştirir. Bunun nedeni, modelimizle ilgili daha fazla seçim yapmamızın (parametrelerin değerleri, özelliklerin seçimi, hiper parametrelerin ayarlanması, çekirdek seçimi ... dahil), daha fazla veriye ihtiyacımız olması bu seçimler güvenilir. Genellikle bu seçimleri, sınırlı bir veri kümesi üzerinde değerlendirilen bir kriteri en aza indirerek yaparız, yani ölçüt kaçınılmaz olarak sıfırdan farklı bir varyansa sahiptir. Sonuç olarak, ölçütü çok agresif bir şekilde en aza indirirsek, aşırı uydurabiliriz, yani, değerlendirilecek belirli örneğe bağlı olan özellikler nedeniyle, ölçütü en aza indiren seçimler yapabiliriz. performansta gerçek bir gelişme.

Şimdi SVM, boyutluluğa bağlı olmayan genelleme performansına bağlılığın yaklaşık bir uygulamasıdır, bu nedenle prensipte, normalleştirme parametrelerinin doğru seçilmesi koşuluyla özellik seçimi olmadan iyi performans bekleyebiliriz. Çoğu özellik seçim yönteminin böyle bir performans "garantisi" yoktur.

L1 yöntemleri için, kesinlikle özellik seçimiyle uğraşmam, çünkü L1 kriteri genellikle düzeltme özelliklerinde etkilidir. Etkili olmasının nedeni, özelliklerin modele girip çıktığı bir düzeni indüklemesidir, bu da özelliklerin seçilmesindeki mevcut seçeneklerin sayısını azaltır ve dolayısıyla fazla takmaya daha az eğilimlidir.

Özellik seçiminin en iyi nedeni, hangi özelliklerin alakalı / önemli olduğunu bulmaktır. Özellik seçiminin en kötü nedeni, performansı artırmak, düzenli modeller için genellikle işleri daha da kötüleştirir. Bununla birlikte, bazı veri kümeleri için büyük bir fark yaratabilir, bu yüzden yapılacak en iyi şey, bunu denemek ve kendinizin bu veri kümelerinden biri olup olmadığını öğrenmek için sağlam, tarafsız bir performans değerlendirme şeması (örn. İç içe çapraz doğrulama) kullanmaktır.


İç içe çapraz değerleme ile ne demek istiyorsun? K-kat çapraz validasyonu N kez uyguluyor mu?
yasin.yazici

5

Pek çok insan, normalleştirmenin yabancı değişkenlerle ilgilenmek için yeterli olduğunu düşünür ve hedef tahmin doğruluğu uygun olduğunda düzenli olarak düzenler, kısmi havuzlama yapar, hiyerarşik modeller vb. Örneğin, belirli bir değişkeni için parametre tahmini tamamen veya tamamen modelden kaldırılırsa ( ) gerçekten t Tahmin problemlerinde büyük bir fark yaratmaz.jβ^j=0,0001β^j=0

Bununla birlikte, bir değişkeni tamamen kaldırmak için hala nedenler vardır.

  1. Bazen hedef öngörücü doğruluk değil, bir dünya fenomeninin açıklamasıdır. Bazen hangi değişkenlerin belirli bir bağımlı değişkeni etkilediğini ve etkilemediğini bilmek istersiniz. Bu tür durumlarda, cimri bir model anlamak ve yorumlamak için tercih edilen bir yoldur
  2. Kendinizi risk için hazırlıyorsunuz. Eğer gerçekten bir etkisi olmayan bir değişkeninden ayrılırsanız, farklı veriler toplarsanız değişkenin sonuçları etkileme olasılığı için kendinizi . Bu, özellikle farklı uygulamalarla tekrar tekrar takılan modeller için geçerlidir.β^j
  3. Hesaplama nedenleri - daha az değişkenli bir model genellikle daha hızlı çalışır ve bu yabancı değişkenler için veri depolamanız gerekmez.

2
Merhaba TrynnaDoStat, i 1 ve 3 noktanıza tamamen katılıyorum. Ama argüman 2 gerçekten isabetli değil. Aynı veri kümesiyle özellik seçimi yaparsanız, yanlış özellik kümesini seçme riskiniz de vardır. Çünkü bir rastgele değişken, verilerdeki hedef değişkenle iyi ilişkili gibi görünebilir.
gstar2002

Elimden noktası 2 ile söylüyorum size tekrar tekrar bir model yerine yerleştirip eğer bir alacaksın yaparken bir kez her (en zamanlarda 100'ler diyelim) olduğunu varsayalım bir olduğunu sonuçları etkilemek için yeterince büyük değer. Her ne kadar zamanın büyük çoğunluğu küçük bir değer elde edersiniz. Bunun gerçek dünyada çok sık meydana gelmeyebileceğinin biraz anlaşılmış olduğunun farkındayım. β^j
TrynnaDoStat

0

İlk etapta özellik seçimine ihtiyaç duymamızın sebebinin aşırı uydurma olduğunu sanmıyorum. Aslında, aşırı sığdırma, modelimize yeterli veri vermezsek ve özellik seçimini algoritmamızdan geçirdiğimiz veri miktarını daha da azaltırsa gerçekleşen bir şeydir.

Bunun yerine, özellik seçiminin kendi başına önemini belirleme gücüne sahip olmayan modeller veya bu önem ağırlığını kendi başlarına yapmak zorunda kaldıklarında çok daha az verimli olan algoritmalar için özellik seçiminin bir önişleme adımı olarak gerekli olduğunu söyleyebilirim. .

Örneğin Öklid mesafesine dayanan basit bir k-en yakın komşu algoritmasını ele alalım. Her zaman son sınıflandırma ile aynı ağırlık veya öneme sahip tüm özelliklere bakacaktır. Eğer 100 özellik verirseniz, ancak bunlardan sadece üçü sınıflandırma probleminizle ilgiliyse, bu ekstra özelliklerden gelen tüm gürültü, üç önemli özellikten gelen bilgileri tamamen ortadan kaldıracak ve yararlı tahminler almayacaksınız. Bunun yerine kritik özellikleri önceden belirlerseniz ve yalnızca sınıflandırıcıya geçirirseniz, çok daha iyi çalışacaktır (çok daha hızlı bahsetmiyorum).

Öte yandan, rastgele bir orman sınıflandırıcısına bakın. Antrenman yaparken, tüm özelliklerin bir alt kümesinden seçim yaparak en iyi ayrımı bularak hangi özelliklerin en kullanışlı olduğunu otomatik olarak belirler. Bu nedenle, üç iyi özelliği bulmak için 97 yararsız özelliği elemek çok daha iyi olacaktır. Elbette, seçimi önceden yaparsanız daha hızlı çalışır, ancak sınıflandırma gücü, ilgili olmasalar bile, genellikle çok fazla ekstra özellik vererek çok fazla etkilenmez.

Son olarak, sinir ağlarına bakın. Yine, bu alakasız özellikleri görmezden gelme gücüne sahip bir modeldir ve backpagagation ile eğitim genellikle ilginç özellikleri kullanmaya dönüşür. Bununla birlikte, girdiler "beyazlatılmış", yani birim varyansına ölçeklendirilmiş ve çapraz korelasyon kaldırılmışsa standart eğitim algoritmasının çok daha hızlı birleştiği bilinmektedir (LeCun ve ark . 1998) . Bu nedenle, kesinlikle özellik seçimi yapmanız gerekmese de, giriş verilerinin önişlemini yapmak için saf performans açısından ödeme yapabilir.

Özetle, özellik seçiminin aşırı takma ile daha az ve bir öğrenme yönteminin sınıflandırma gücünü ve hesaplama verimliliğini arttırmakla daha fazla ilgisi olduğunu söyleyebilirim. Ne kadar gerekli olduğu, söz konusu yönteme çok bağlıdır.


3
(1) İlk teklifinize katılmıyorum. Özellik seçimi veri miktarını azaltmaz, özellik sayısını azaltır. Örneklerin (örneklerin) sayısı aynı kalır ve fazla sığdırmaya yardımcı olabilir, çünkü sınıflandırıcının verilere uyması için daha az parametreye (parametrik bir modelse) ihtiyacı vardır. Daha az parametre, daha az gösterim gücü anlamına gelir, bu nedenle fazla takma olasılığı daha düşüktür. (2) KNN'den önce bahsettiğiniz özellik seçim algoritması türü nedir? Hangi özelliklerin daha etkili olacağını nasıl bilebilir?
yasin.yazici

@ yasin.yazici: El yazısı rakam sınıflandırması yaptığınızı ve en sol üstteki piksel hariç hepsini attığınızı varsayalım. Sadece sahip olduğunuz veri miktarını azaltmadınız mı?
cfh

@chf Hayır, yalnızca özellik sayısını azaltır. Diyelim ki veri seti MNIST, her örnek için 784 özellik ve 60000 örnek var. Özelliklerinizin bir kısmını atarsanız, hala 60000 örneğiniz vardır.
yasin.yazici

@ yasin.yazici: Demek istediğim, örnek sayısı veri miktarı ile aynı değil. Veri, "örnekler x özellikleri" nin tüm matrisidir.
cfh

Özellik seçimi takılabilir (ve çoğu zaman olur). Düzenli öğrenenler kullanıyorsanız ve özellik önemini önemsemiyorsanız, çok fazla veriye ve sağlam bir doğrulama şemasına sahip değilseniz, özellik seçimi için fazla kullanmıyorum.
Firebug

0

Parametreleri sağlam bir şekilde optimize etmek için yeterli sayıda veri noktanız yoksa, bazı değişkenleri kaldırmak için özellik seçimi yapabileceğinizi düşünüyorum. Ama modellemek istediğiniz sinyali kaybedebileceğiniz için çok fazla şey yapmayı önermem.

Ayrıca, kaldırmak isteyebileceğiniz iş anlayışına dayalı olarak modellerinizde istemediğiniz bazı özellikler olabilir.


0

Kement durumunda, rahatsız edici özellikleri kaldırmak için verilerin önceden işlenmesi aslında oldukça yaygındır. Son zamanlarda bunu yapmanın yollarını tartışan bir makale için lütfen Xiang ve arkadaşlarının Kement Sorunları için Tarama Testleri konusuna bakın . Gördüğüm makalelerde yaygın olarak görülen motivasyon, çözümü hesaplamanın hesaplama yükünü azaltmaktır.

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.