我正在尝试使用插入符号来拟合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/

10-10 21:15