Rasgele orman için özellik seçimi ve düzeltme işareti ile parametre ayarlama


12

Birkaç bin özellikli verilerim var ve bilgilendirici olmayanları kaldırmak için özyinelemeli özellik seçimi (RFE) yapmak istiyorum. Bunu caret ve RFE ile yapıyorum . Ancak, en iyi regresyon uyumunu elde etmek istiyorsam (örneğin rastgele orman), ne zaman parametre ayarlamayı ( mtryRF için) yapmalıyım diye düşünmeye başladım. Yani, anladığım kadarıyla, caret trenleri RF'yi sabit bir mtry ile farklı özellik alt kümelerinde tekrar tekrar. mtryÖzellik seçimi bittikten sonra optimumun bulunması gerektiğini düşünüyorum, ancak işaretin kullandığı mtrydeğer seçilen özellik alt kümesini etkiler mi? Tabii ki düşük ile caret kullanmak çok daha hızlı.mtry

Umarım birisi bunu bana açıklayabilir.


2
RF, sağlam bir yerleşik özellik seçimine sahiptir - RFE'yi kullanmaya gerek yoktur, böylece kişi mtry'yi ayarlayabilir ve onunla yapılabilir.
Yevgeny

Yanıtlar:


11

Bakmak isteyebileceğiniz bir şey, özellikle özellik seçimi için tasarlanmış düzenli rastgele ormanlardır. Bu makale kavramı ve bunların normal rastgele ormanlardan nasıl farklı olduklarını açıklamaktadır.

Düzenli Ağaçlar ile Özellik Seçimi

Ayrıca , R'de kolayca uygulamanızı sağlayacak randomForest üzerine kurulu bir CRAN paketi RRF var. Bu yöntemde kendim iyi şanslar yaşadım.

İlk sorunuzla ilgili olarak, verebileceğim tek tavsiye, eğer çok fazla eşbiçimliğiniz varsa, daha küçük ağaç boyutları kullanmanız gerektiğidir. Bu, algoritmanın eşzamanlılık etkilerinden daha az müdahale ile önemi belirlemesini sağlar.


1

Bunun caretFuncs gibi bir şey kullanabilirsiniz :

myRFE <- caretFuncs
myRFE$summary <- twoClassSummary  (default is defaultSummary)

rctrl <- rfeControl(method='repeatedcv', repeats=5, number=10,
                   functions=myRFE)

tctrl <- trainControl(method = "cv",
                      classProbs = TRUE,
                      summaryFunction = twoClassSummary)

rfeObj = rfe(x,y,sizes=seq(1,ncol(x),2),
             rfeControl=rctrl,  
             # to be passed to train()
             method='rf',
             importance=T,  # do not forget this
             ntree=1000,
             metric = "ROC",
             tuneLength = 10,
             # mtry=c(1,3,5,50),
             # specify the exact mtry, or tuneLength
             # can auto truncate the grid to minimal sizes (with or without warning)
             # p <- ncol(x) ... if (mtry < 1 || mtry > p) warning("invalid try: reset to within valid range") try <- max(1, min(p, round(try))) 
             trControl=tctrl)

Ayrıca, valSelRFpaket kontrol edilebilir . regularized random forestBurada belirtilenlerden nasıl farklı olduğundan emin değilim .

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.