【问题标题】:Set seed parallel random forest in caret for reproducible result在插入符号中设置种子并行随机森林以获得可重复的结果
【发布时间】:2015-03-12 17:34:14
【问题描述】:

我希望使用 caret 包并行运行随机森林,并且我希望设置种子以获得可重现的结果,如 Fully reproducible parallel models using 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)

【问题讨论】:

  • 是的,这看起来像是一个错误,您希望对其进行 50 次采样。即使他们想在折叠之间重复使用种子,你也会期望 10 的倍数。我会说这是一个错误。

标签: parallel-processing set seed r-caret reproducible-research


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2016-08-10
    • 2014-11-21
    • 2020-07-07
    • 2019-06-16
    • 2019-02-04
    • 2021-07-05
    • 2015-10-08
    • 2015-02-13
    • 2020-07-23
    相关资源
    最近更新 更多