使用 RFE,您可以获得特征的重要性等级,但现在我只能使用包内的模型和参数,如:lmFuncs(linear model),rfFuncs(random forest)
似乎
caretFuncs
可以为自己的模型和参数做一些自定义设置,但我不知道细节,正式文件没有详细说明,我想将svm和gbm应用于这个RFE过程,因为这是我使用的当前模型训练,有人知道吗?
使用 RFE,您可以获得特征的重要性等级,但现在我只能使用包内的模型和参数,如:lmFuncs(linear model),rfFuncs(random forest)
似乎
caretFuncs
可以为自己的模型和参数做一些自定义设置,但我不知道细节,正式文件没有详细说明,我想将svm和gbm应用于这个RFE过程,因为这是我使用的当前模型训练,有人知道吗?
我试图根据文档重新创建工作示例。您正确识别了 的使用caretFuncs
,然后您可以在调用中设置模型参数rfe
(您也可以定义trainControl
对象等)。
# load caret
library(caret)
# load data, get target and feature column labels
data(iris)
col_names = names(iris);target = "Species"
feature_names = col_names[col_names!=target]
# construct rfeControl object
rfe_control = rfeControl(functions = caretFuncs, #caretFuncs here
method="cv",
number=5)
# construct trainControl object for your train method
fit_control = trainControl(classProbs=T,
search="random")
# get results
rfe_fit = rfe(iris[,feature_names], iris[,target],
sizes = 1:4,
rfeControl = rfe_control,
method="svmLinear",
# additional arguments to train method here
trControl=fit_control)
如果您想更深入地研究这个问题,您可能需要访问下面的链接。
rfe
带有基本代码片段的文档:
https ://www.rdocumentation.org/packages/caret/versions/6.0-80/topics/rfe
caret
文档rfe
:
https ://topepo.github.io/caret/recursive-feature-elimination.html
希望这可以帮助!