Answers:
您可能要研究的一件事是正规化随机森林,该森林是专门为特征选择而设计的。本文解释了这个概念,以及它们与普通随机森林的区别
在randomForest的基础上,还有一个CRAN软件包RRF,可以让您轻松地在R中实现它们。我自己对这种方法很幸运。
关于您的第一个问题,我唯一能给出的建议是,如果您有很多共线性,那么您需要使用较小的树大小。这使算法可以确定共线性影响较少的干扰的重要性。
您可能可以使用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
这里提到的有何不同。