수천 개의 기능이있는 데이터가 있으며 정보가없는 기능을 제거하기 위해 재귀 적 기능 선택 (RFE)을 수행하려고합니다. 캐럿 과 RFE 로이 작업을 수행합니다 . 그러나 최상의 회귀 적합도 (예 : 임의 포리스트)를 얻으려면 언제 매개 변수 조정 ( mtry
RF)을 수행해야하는지 생각하기 시작했습니다 . 즉, 캐럿이 이해하는 것처럼 고정 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
여기에 언급 된 것과 어떻게 다른지 확실하지 않습니다 .