임의 포리스트에 대한 캐럿을 사용한 기능 선택 및 매개 변수 조정 조정 ( mtryRF)을

수천 개의 기능이있는 데이터가 있으며 정보가없는 기능을 제거하기 위해 재귀 적 기능 선택 (RFE)을 수행하려고합니다. 캐럿 과 RFE 로이 작업을 수행합니다 . 그러나 최상의 회귀 적합도 (예 : 임의 포리스트)를 얻으려면 언제 매개 변수 조정 ( mtryRF)을 수행해야하는지 생각하기 시작했습니다 . 즉, 캐럿이 이해하는 것처럼 고정 mtry로 다른 기능 하위 집합에서 RF를 반복적으로 훈련시킵니다. mtry기능 선택이 완료된 후 최적을 찾아야 한다고 생각 하지만 캐럿이 사용 하는 mtry값이 선택한 기능의 하위 집합에 영향을 줍니까? 물론 낮은 캐럿 을 사용하는 것이 훨씬 빠릅니다.mtry

누군가 나에게 이것을 설명 할 수 있기를 바랍니다.



답변

살펴볼 수있는 한 가지는 기능 선택을 위해 특별히 설계된 정규화 된 임의 포리스트입니다. 이 백서에서는 개념과 일반적인 임의 포리스트와의 차이점을 설명합니다.

정규화 된 트리를 통한 기능 선택

R에서 쉽게 구현할 수있는 randomForest를 기반으로 하는 CRAN 패키지 RRF 도 있습니다.이 방법론을 사용하여 행운을 빕니다.

초기 질문과 관련하여 내가 줄 수있는 유일한 조언은 많은 공선 성이 있으면 더 작은 나무 크기를 사용해야한다는 것입니다. 이를 통해 알고리즘은 공선 성 효과로 인한 간섭을 줄이면서 중요성을 결정할 수 있습니다.


답변

다음 caretFuncs
과 같은 것을 사용할 수 있습니다 .

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)

또한 valSelRF패키지를 확인할 수 있습니다 . regularized random forest여기에 언급 된 것과 어떻게 다른지 확실하지 않습니다 .