【问题标题】:caret: RFE with variable tuneGrid插入符号:带有可变 tuneGrid 的 RFE
【发布时间】:2015-01-05 16:44:45
【问题描述】:

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

【问题讨论】:

    标签: r machine-learning r-caret


    【解决方案1】:

    尝试使用tuneLength = 7 而不是tuneGrid。前者更灵活,将根据数据集的大小使用适当的ncomp

    > 请.fit.rfe 请.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 拟合函数。

    最大

    【讨论】:

    • 谢谢,成功了。但是(从 train() w/o RFE 的结果来看)似乎 ncomp 的优化并未在 RFE 的每个步骤中执行。这是 rfe() 的预期行为吗?
    猜你喜欢
    • 1970-01-01
    • 2018-06-28
    • 1970-01-01
    • 2019-06-02
    • 2016-04-26
    • 1970-01-01
    • 1970-01-01
    • 2015-05-14
    • 1970-01-01
    相关资源
    最近更新 更多