Özellik seçimi yalnızca eğitim verileri (veya tüm veriler) üzerinde mi yapılmalıdır?


10

Özellik seçimi yalnızca eğitim verileri (veya tüm veriler) üzerinde mi yapılmalıdır? Guyon (2003) ve Singhi ve Liu (2006) gibi bazı tartışmalar ve makalelerden geçtim , ancak yine de doğru cevaptan emin değilim.

Deneme kurulumum şu şekildedir:

  • Veri seti: 50 sağlıklı kontrol ve 50 hastalıklı hasta (hastalık tahmini ile ilgili olabilecek yaklaşık 200 özellik).
  • Görev, mevcut özelliklere dayanarak hastalığı teşhis etmektir.

Yaptığım şey

  1. Tüm veri kümesini alın ve özellik seçimini (FS) yapın. Daha ileri işlemler için yalnızca seçilen özellikleri saklıyorum
  2. Test etmek ve trene bölün, tren verilerini ve seçilen özellikleri kullanarak sınıflandırıcıyı eğitin. Ardından, verileri test etmek için sınıflandırıcı uygulayın (yine yalnızca seçilen özellikleri kullanarak). Bir defalık bırakma doğrulaması kullanılır.
  3. sınıflandırma doğruluğu elde etme
  4. Ortalama: 1) -3) N kez tekrarlayın. (100).N=50

Tüm veri kümesinde FS yapmanın bazı önyargılara yol açabileceğini kabul ediyorum, ama benim düşüncem ortalama alma sırasında "ortalamanın" olduğu (adım 4). Bu doğru mu? (Doğruluk sapması )<2%

1 Guyon, I. (2003) "Değişken ve Özellik Seçime Giriş", Makine Öğrenimi Araştırmaları Dergisi, Cilt. 1157-1182
2 Singhi, SK ve Liu, H. (2006) "Sınıflandırma Öğrenimi için Özellik Altkümesi Seçim Yanlılığı", Devam ICML '06 23. Uluslararası Makine Öğrenimi Konferansı Bildirileri, s. 849-856

Yanıtlar:


12

Kullandığınız yordam, 2. ve 3. adımlarda kullanılan test kümesindeki verileri 1. adımda hangi özelliklerin kullanıldığına karar vermek için kullandığınız için iyimser olarak önyargılı performans tahminleriyle sonuçlanır. Egzersizin tekrarlanması performans tahmininin varyansını azaltır, önyargı, bu yüzden önyargı ortalama değildir. Tarafsız bir performans tahmini elde etmek için, test verileri, özellik seçimi de dahil olmak üzere model hakkında seçim yapmak için hiçbir şekilde kullanılmamalıdır.

Daha iyi bir yaklaşım iç içe çapraz doğrulamanın kullanılmasıdır, böylece dış çapraz doğrulama, model oluşturma yöntemi (özellik seçimi dahil) kullanılarak elde edilebilen performansın bir tahminini sağlar ve özellikleri bağımsız olarak seçmek için iç çapraz doğrulama kullanılır dış çapraz doğrulamanın her katında. Ardından tüm verileri kullanarak son tahmin modelinizi oluşturun.

Vakalardan daha fazla özelliğiniz olduğundan, yalnızca özellik seçimiyle verileri çok fazla sığdırmanız olasıdır. Özellik seçiminin tahmini performansı geliştirdiği bir efsane, bu yüzden ilgilendiğiniz şeyse (ilgili özellikleri kendi başına bir amaç olarak tanımlamak yerine) muhtemelen sırt regresyonunu kullanmaktan ve herhangi bir özellik gerçekleştirmekten daha iyi durumdasınızdır. seçimi. Bu, muhtemelen ridge parametresinin dikkatle seçilmesi koşuluyla özellik seçiminden daha iyi bir tahmin performansı sağlayacaktır (Allen'ın PRESS istatistiğinin minimize edilmesini kullanıyorum - yani ortalama karesel hatanın bir kerelik tahmini).

Daha fazla ayrıntı için bkz. Ambroise ve McLachlan ve bu soruya cevabım .


Cevabın için teşekkür ederim. Aslında, ilgili özellikleri bulmak ve tahmin performansını artırmak için her ikisiyle de ilgileniyorum. Deneylerimde (sınıflandırma için SVM), özellik seçimi tahmin doğruluğunu önemli ölçüde geliştirdi (ancak belirttiğiniz gibi, verilerin aşırı sığması sonucu olabilir). Sırt regresyonu ile Tikhonov düzenlenmesi olarak da bilinen bir şeyi kastettiğini varsayıyorum.
pedro29

evet, sırt regresyonu, normal kare regresyonudur ve ağırlıkların kare normuna dayanan bir ceza süresi vardır. Çoğu sorun için SVM'nin yanı sıra çalışır, ancak uygulanması daha kolaydır (ve hiper parametrelerini ayarlamak için kullanılabilecek bir kez bırakma çapraz doğrulama hatasını esas olarak ücretsiz olarak çalışabilirsiniz).
Dikran Marsupial

Bu arada, sırtın düzenlenmesi ve özellik seçimi arasındaki fark nedir? Yani, günün sonunda, her ikisi de belirli bir dizi belirleyiciden öngörücülerin "en iyi alt kümesini" gösterir.
pedro29

sırt regresyonu, bir özellik alt kümesini tanımlamaz, LASSO veya LARS formu cezalandırılmış regresyon yapar. Bu, cezalandırma modeli modele giren ve çıkan özelliklerde bir emir verdiğinden, fazla takmaya daha az duyarlı olduğu için özellik seçim yöntemi seçimim olurdu, bu yüzden en iyi seti tam olarak aramaktan daha az serbestlik derecesi var özellikleri.
Dikran Marsupial

4

Buradaki cevaplara bir ek olarak, bunun neden iyi bir prosedür olmadığını anlamama yardımcı olan iki bağım var:

Düzenleme: istendiği gibi, bağlantıların içeriği hakkında kısa bir açıklama:

Bir sınıflandırıcıyı eğittiğimi ve 1000 örneklik bir veri setim olduğunu ve her birinde 1 milyon özellik olduğunu varsayalım. Hepsini işleyemiyorum, bu yüzden daha az özelliğe ihtiyacım var (300 özelliği hesaplayabilirim). Ayrıca, örnek dışı gerçek dünya doğruluğumu doğru bir şekilde tahmin etmek için 100 numuneden oluşan test edilmiş bir test setim var.

1 milyon özelliğimi 300'e kadar filtrelersem, tüm veri setimin hedefleriyle en yüksek korelasyona sahip özellikleri seçerek, bir hata yapıyorum (çünkü daha sonra Çapraz Doğrulama ile tespit edilemeyen aşırı takma uyguluyorum). Bekletme setim bunu kötü bir doğruluk değeri geri vererek gösterecektir.

Yukarıdaki bağlantılara göre, bunu yapmanın doğru yolu, veri setimi bir eğitim setine ve Çapraz Doğrulama setine bölmek ve ardından modelimi (özellikleri filtreleme vb.) Bu eğitim setine ve ilişkili CV puanına göre ayarlamaktır. K-kıvrımları kullanıyorsam, her bölme / katlama yaptığımda sıfırdan ayarlamalıyım ve sonra sonuçları ortalamalandırmalıyım.

Programlı olarak aşağıdakileri yaparsınız:

  • Bir tutma seti olarak veri kümenizin bir bölümünü bir kenara bırakın.
  • Veri kümenizin geri kalanını (bundan böyle T1 olarak adlandırılır) K katlarına bölün.
  • İ = 1'den K'ya bir for-loop'ta aşağıdakileri yapın:
    • CV setiniz olarak i. katlamayı ve eğitim setiniz olarak kalan örnekleri (bundan böyle Ti olarak adlandırılacaktır) seçin.
    • İstediğiniz özellik mühendisliğini ve özellik seçimini yapın: özellikleri filtreleyin, birleştirin vb.
    • Hem CV setinizi (CVi olarak adlandırılan mevcut katlama) hem de mevcut egzersiz seti Ti'nizi uygun özelliklere sahip bir cihaza dönüştürün.
    • Modelinizi Ti eğitim setinde eğitin
    • Geçerli kat, CVi puanı alın. Bu puanı tüm puanları içeren bir listeye ekleyin.
  • Şimdi, listeniz her katlamanın puanına sahip, bu yüzden ortalama, K katlama puanı elde edersiniz.

Özellik mühendisliğini, tam eğitim seti T1 yerine alt eğitim seti Ti'de döngü içinde gerçekleştirmeniz gerçekten önemlidir.

Bunun nedeni, Ti için mühendis / özellik mühendisi taktığınızda, o model için görülmeyen CVi'yi test etmenizdir. Bununla birlikte, eğer T1 üzerine mühendisi yerleştirirseniz / özellik mühendisi seçerseniz, seçtiğiniz herhangi bir CV T1 alt kümesi olmalıdır ve bu nedenle iyimser önyargılı olursunuz, yani aynı veri örneklerini eğitiyor ve test ediyorsunuz.

Gerçekten iyi Stack Exchange cevaptır bu gerçekten daha derinlemesine ve kod örneği ile açıklıyor biri. Ayrıca bunu bir zeyilname olarak görmek .


1
Bu bağlantıların içeriğinin kısa bir özetini ekleyebilir misiniz? Bağımsız yanıtları tercih ediyoruz, aksi takdirde bağlantılar konumu değiştirirse "linkrot" a karşı çok savunmasız olabilirler. Alternatif olarak, bunu sizin için bir yoruma dönüştürebiliriz.
Silverfish

@Silverfish Bitti
Abhishek Divekar

Peki for-loop içinde, farklı katlama için farklı seçilmiş özellikler olabilir mi?
stackunderflow

2

Efron-Gong "iyimserlik" önyüklemesi bunun için çok iyi. Fikir, tahmin modelini geliştirmek için mevcut tüm verileri kullanmak ve aynı modelin gelecekteki olası performansını tahmin etmek için tüm verileri kullanmaktır. Ve örnek büyüklüğünüz çalışmak için bölünmüş örnek yaklaşımları için 100 kat fazla küçüktür.

Bootstrap'i doğru şekilde kullanmak için kullanan tüm adımları programlamanız ve her bir yeniden örneklemede tekrar tekrar yenilemeniz gerekir. Özellik seçimi hariç, iyi bir örnek verelim : Lojistik regresyon modelini birden fazla yordayıcıyla yorumlamaY

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.