我正在R中使用插入符号包来适应多个模型。当我使用trainControl函数而不设置index参数时,对于各种方法,一切都可以正常工作。然而,当我想通过索引参数手动设置为不同的褶皱培训行,我安装时出现以下错误:
东西是错误的; 所有的RMSE指标值都丢失了,我尝试使用不同的方法参数,因为文档没有告诉用户应该使用哪个索引参数集。
如果答案不简单,我将举一个例子。
谢谢!
首先,如果碰巧使用R和插入符号的较旧版本,请确保使用命名列表作为index
参数(不使用命名列表可能会导致相对较难跟踪错误,例如this)。
Max,插入符的维护者,在此答案中指出,如果您设置了参数,则tuneControl
该method
参数不再重要index
-这很有意义,因为您由此可以定义分区包含的样本以及分区的数量,这几乎指定了重采样过程。
这是一个最小的工作示例作为参考(请注意的命名index
):
library(caret)
library(plyr)
# 5CV with 3 repeats = 15 partitions
m1 <- train(x = iris[,1:2], y = iris[,5], method='lda',
trControl = trainControl(method = 'repeatedcv', number = 5, repeats = 3))
# similar behaviour with using index
index <- llply(1:15, function(x) sample(nrow(iris), round(nrow(iris)*4/5)))
names(index) <- 1:15
m2 <- train(x = iris[,1:2], y = iris[,5], method='lda', trControl = trainControl(index = index))
这是您的index
样子:
> str(index)
List of 15
$ 1 : int [1:120] 47 28 91 54 130 53 37 19 5 85 ...
$ 2 : int [1:120] 65 58 39 120 127 80 102 145 97 132 ...
$ 3 : int [1:120] 113 14 7 62 65 99 108 105 76 123 ...
$ 4 : int [1:120] 124 92 46 1 27 140 33 147 57 6 ...
[...]
PS:如果你不设置indexOut
在trainControl
,是所有样品未在特定分区index
将被用来评估与此分区训练模式。如果您也想对评估样本进行子集化,则这可能是不希望的。有关更多详细信息,请参见此答案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句