我正在尝试使用插入符号来拟合PLS模型,同时优化组件'ncomps'的数量:
library("caret")
set.seed(342)
train <- as.data.frame ( matrix( rnorm(1e4) , 100, 100 ) )
ctrl <- rfeControl(functions = caretFuncs,
method = "repeatedcv",
number=2,
repeats=1,
verbose =TRUE
)
pls.fit.rfe <- rfe(V1 ~ .,
data = train,
method = "pls",
sizes = 6,
tuneGrid = data.frame(ncomp = 7),
rfeControl = ctrl
)
{中的错误:
任务1失败-“无法确定最终调整参数”
另外:有50个或更多警告(使用warnings()查看前50个)
无效的组件数ncomp
将大小设置为6可解决此问题。当min(sizes)
最佳答案
尝试使用tuneLength = 7
代替tuneGrid
。前者更为灵活,在给定数据集大小的情况下,将使用适当的ncomp
:
> pls.fit.rfe pls.fit.rfe
递归特征选择
外部重采样方法:交叉验证(2倍,重复1次)
在子集大小上重采样性能:
变量RMSE Rsquared RMSESD RsquaredSD已选择
6 1.0229 0.01684 0.04192 0.0155092
99 0.9764 0.00746 0.01096 0.0008339 *
前5个变量(共99个变量):
如果您不想这样做,也可以总是write your own fit函数。
最高
关于r - 插入符:具有可变tuneGrid的RFE,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27784008/