插入符交叉验证
Caret cross validation
我想了解插入符号控件设置的工作原理。我正在 运行 通过 Caret 控制函数使用交叉验证进行一些实验,例如
fitControl <- trainControl(## 10-fold CV
method = "repeatedcv",
number = 10,
## repeated ten times
repeats = 10)
或
control <- rfeControl(functions=rfFuncs, method="repeatedcv", number=5, repeats = 5)
我的问题是,如果我在 运行 实验之前设置一些种子编号,即
set.seed(5432)
control <- trainControl(...)
results <- train(..., control)
...
它能保证每次 运行 实验时每个折叠都包含完全相同的样本吗?例如,假设我有 id = {1:100} 的样本并使用 Caret 10 折交叉验证,我的折叠是:fold1 = {1:10}, fold2 = {11:20}, ..., fold10 = {91:100}。我的问题是,如果我重新运行实验使用相同的种子数,我的折叠仍然与之前的完全相同运行?
我知道设置种子数有助于重现性,但我只需要一个确认答案,即确实发生了什么。
非常感谢,
有两种方法可以设置可重复性种子。
- 在训练函数之前调用 set.seed。
- 在 trainControl(或 rfeControl)中设置种子
有关选项 2 的更多信息,请查看帮助,还有此 SO question
更多详细信息可在 caret website 的培训页面上找到,第 重现性注释
部分
我想了解插入符号控件设置的工作原理。我正在 运行 通过 Caret 控制函数使用交叉验证进行一些实验,例如
fitControl <- trainControl(## 10-fold CV
method = "repeatedcv",
number = 10,
## repeated ten times
repeats = 10)
或
control <- rfeControl(functions=rfFuncs, method="repeatedcv", number=5, repeats = 5)
我的问题是,如果我在 运行 实验之前设置一些种子编号,即
set.seed(5432)
control <- trainControl(...)
results <- train(..., control)
...
它能保证每次 运行 实验时每个折叠都包含完全相同的样本吗?例如,假设我有 id = {1:100} 的样本并使用 Caret 10 折交叉验证,我的折叠是:fold1 = {1:10}, fold2 = {11:20}, ..., fold10 = {91:100}。我的问题是,如果我重新运行实验使用相同的种子数,我的折叠仍然与之前的完全相同运行?
我知道设置种子数有助于重现性,但我只需要一个确认答案,即确实发生了什么。
非常感谢,
有两种方法可以设置可重复性种子。
- 在训练函数之前调用 set.seed。
- 在 trainControl(或 rfeControl)中设置种子
有关选项 2 的更多信息,请查看帮助,还有此 SO question
更多详细信息可在 caret website 的培训页面上找到,第 重现性注释
部分