Rastgele Ormanlarla özellik seçimi


17

Çoğunlukla yüksek derecede korelasyonlu ve çok gürültülü (örneğin teknik göstergeler) çoğunlukla finansal değişkenlere (120 özellik, 4k örnek) sahip bir veri setim var, bu yüzden model eğitimi (ikili sınıflandırma) ile daha sonra kullanmak üzere maksimum 20-30'u seçmek istiyorum - artış azalış).

Özellik sıralaması için rastgele ormanlar kullanmayı düşünüyordum. Bunları tekrar tekrar kullanmak iyi bir fikir mi? Örneğin, ilk turda istenen sayıda özelliği elde edene kadar en kötü% 20'yi, ikincisini de düşürdüğümü varsayalım. RF ile çapraz doğrulamayı kullanmalı mıyım? (Benim için CV kullanmama sezgisel çünkü RF zaten bunu yapıyor.)

Ayrıca rastgele ormanlarla gidersem bunları özellik ithalatları almak için gerçek artış / azalma için ikili veya regresör sınıflandırıcılar olarak mı kullanmalıyım?

Bu arada, özellik seçiminden sonra denemek istediğim modeller şunlardır: SVM, sinir ağları, yerel ağırlıklı regresyonlar ve rastgele orman. Esas olarak Python'da çalışıyorum.


2
bilgi alışverişine bağlanmak istiyor. benzer bir şey üzerinde çalışıyorum
user670186

hiç kimse sadece kullanımı önerilmektedir herhangi bir neden yoktur built-invasfını RandomForestClassifier içinde sklearnadlandırılan feature_importances_....? Bağlantıda göreceksiniz.
Candic3

Dikkat edin çünkü multicollinearityözellik ithalatını ve özellik seçimini bozabilir. buradan
Candic3

Varsayılan algoritmalara dikkat edin: parrt.cs.usfca.edu/doc/rf-importance/index.html
Tim

Yanıtlar:


13

Özellik seçimi için, bir ihtiyaç puanlama işlevini yanı sıra arama yöntemi puanlama işlevini optimize etmek.

Bazı ilgili önem puanları tanımlarsanız RF'yi bir özellik sıralama yöntemi olarak kullanabilirsiniz. RF, değiştirme yöntemiyle rastgele özellikleri seçer ve her alt kümeyi ayrı bir alt alanda (rasgele altuzay denir) gruplandırır. Önemli bir puanlama fonksiyonu, rastgele alt uzaydaki her özellik için her ağacın doğruluğunu atamaya dayanabilir. Sonra bunu her ayrı ağaç için yaparsınız. Alt uzayları oluşturma kaynağı rastgele olduğundan, önem puanını hesaplamak için bir eşik koyabilirsiniz.

Özet:

Adım 1 : Ağaçların% 25'inde X2 özelliği görünüyorsa puanlayın . Aksi takdirde, özelliği sıralamayı düşünmeyin, çünkü performansı hakkında yeterli bilgiye sahip değiliz.

Adım2 : Şimdi, X2'nin göründüğü her ağacın performans puanını X2'ye atayın ve puanı ortalayın. Örneğin: perf (Ağaç1) = 0.85 perf (Ağaç2) = 0.70 perf (Ağaç3) = 0.30

Daha sonra, X2 özelliğinin önemi ((0,85 + 0,70 + 0,30) / 3 = 0,6167

Özelliğin ayrık derinliğini veya karar ağacına bilgi kazanma değerini ekleyerek daha gelişmiş bir ayar düşünebilirsiniz. Karar ağaçları ve RF'ye dayalı bir puanlama işlevi tasarlamanın birçok yolu olabilir.

Arama yöntemiyle ilgili olarak, özyinelemeli yönteminiz en üst sırada yer alanları seçmenin bir yolu olarak makul görünmektedir.

Son olarak, özelliklerin seçiminde RF'yi sınıflandırıcı veya regresyon modeli olarak kullanabilirsiniz, çünkü her ikisi de size bir performans puanı sağlayacaktır. Skor, torba dışı OOB örneklerine dayandığı için belirleyicidir ve daha basit bir ortamda çapraz doğrulamayı göz önünde bulundurmayabilirsiniz.


Giriş için teşekkürler. Bunu belirtmek istedim (0.85+0.70+0.30)/3 = 0.6167.
Hendy

5
Python ile çalışıyorsanız, rastgele bir orman çağırırken sklearn'de hesaplanan değişken önemi doğrudan kullanabilirsiniz.
Çizilmeye

5

Çoğunlukla yüksek derecede korelasyonlu ve çok gürültülü (örneğin teknik göstergeler) çoğunlukla finansal değişkenlere (120 özellik, 4k örnek) sahip bir veri setim var, bu yüzden model eğitimi (ikili sınıflandırma) ile daha sonra kullanmak üzere maksimum 20-30'u seçmek istiyorum - artış azalış).

4k örnekleri çok sofistike bir şey tahmin etmek için yeterli değildir - mümkün olan en basit modelleri (doğrusal / lojistik regresyon, doğrusal svm) ve az sayıda değişkeni kullanmanız gerekir

Verilerinizin gürültülü ve ilişkili olduğu göz önüne alındığında, PCA muhtemelen en iyi seçeneğinizdir [bireysel göstergeler üzerinden ortalama ortak sinyalleri etkili bir şekilde tanımlamaktadır]

L2 düzenlenmesi (doğrusal bir model için) de gürültünün ortalamasını almanıza yardımcı olacaktır [örneğin aynı sinyalin n gürültülü kopyası varsa, l2 düzenlenmesi ağırlıkların aynı olmasını sağlar - bu n değişkenlerinin ortalamasını alı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.