3

我希望使用 caret 包并行运行随机森林,并且我希望设置可重现结果的种子,如使用 caret 的完全可重现并行模型中一样。但是,我不理解从插入符号帮助中获取的以下代码中的第 9 行:为什么我们采样 22(加上第 12、23 行中的最后一个模型)整数(评估参数 k 的 12 个值)?有关信息,我希望运行 5 倍 CV 来评估 RF 参数“mtry”的 584 个值。任何帮助深表感谢。谢谢你。

## Not run:

## Do 5 repeats of 10-Fold CV for the iris data. We will fit
## a KNN model that evaluates 12 values of k and set the seed
## at each iteration.

set.seed(123)
seeds <- vector(mode = "list", length = 51)
for(i in 1:50) seeds[[i]] <- sample.int(1000, 22) # Why 22?

## For the last model:
seeds[[51]] <- sample.int(1000, 1)

ctrl <- trainControl(method = "repeatedcv", 
                 repeats = 5,
                 seeds = seeds)
4

1 回答 1

2

我会说这是一个错误,应该是12而不是 22。

据我了解,对于 k 的每个值,您将运行模型 10*5 = 50 次。因此,对于1:50 中的每个i,您将需要12 个种子(每 k 个种子)。获得最佳 k 后,您将运行最终模型。这一次,您只需要一个种子(不再重复重采样)。

于 2016-03-23T10:37:36.550 回答