插入符号:带有变量 tuneGrid 的 RFE
caret: RFE with variable tuneGrid
我正在尝试使用插入符号来拟合 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 失败 - "final tuning parameters could not be determined"
另外:有 50 个或更多警告(使用 warnings() 查看前 50 个)
组件数量无效,ncomp
将大小设置为 6 可以解决该问题。当 min(sizes) < max(ncomp) 时出现错误是有道理的,但是有没有办法根据 RFE 迭代中使用的特征数量(即 sizes 变量)来改变 ncomp?我只想同时优化各种尺寸和#components。
尝试使用 tuneLength = 7
而不是 tuneGrid
。前者更灵活,将使用适当的 ncomp
给定数据集的大小:
> pls.fit.rfe pls.fit.rfe
Recursive feature selection
Outer resampling method: Cross-Validated (2 fold, repeated 1 times)
Resampling performance over subset size:
Variables RMSE Rsquared RMSESD RsquaredSD Selected
6 1.0229 0.01684 0.04192 0.0155092
99 0.9764 0.00746 0.01096 0.0008339 *
The top 5 variables (out of 99):
如果您不想那样做,您也可以随时 write your own 拟合函数。
最大
我正在尝试使用插入符号来拟合 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 失败 - "final tuning parameters could not be determined" 另外:有 50 个或更多警告(使用 warnings() 查看前 50 个)
组件数量无效,ncomp
将大小设置为 6 可以解决该问题。当 min(sizes) < max(ncomp) 时出现错误是有道理的,但是有没有办法根据 RFE 迭代中使用的特征数量(即 sizes 变量)来改变 ncomp?我只想同时优化各种尺寸和#components。
尝试使用 tuneLength = 7
而不是 tuneGrid
。前者更灵活,将使用适当的 ncomp
给定数据集的大小:
> pls.fit.rfe pls.fit.rfe Recursive feature selection Outer resampling method: Cross-Validated (2 fold, repeated 1 times) Resampling performance over subset size: Variables RMSE Rsquared RMSESD RsquaredSD Selected 6 1.0229 0.01684 0.04192 0.0155092 99 0.9764 0.00746 0.01096 0.0008339 * The top 5 variables (out of 99):
如果您不想那样做,您也可以随时 write your own 拟合函数。
最大