谁能阐明在运行机器学习算法之前 set.seed() 的最佳程序是怎样的? 我建立了一个随机森林模型,一个gbm模型和一个bart模型。 他们每个人都需要种子才能获得可重现的结果吗? 我没有将我的数据集拆分为训练和测试。 我看过很多关于随机森林的例子,但我不确定 BART 和 GBM 是否也需要这样做。 我的模型示例:
set.seed(500)
mod_BART <- bart(x.train = dataset[ , preds_selected], y.train = dataset[ , 1], keeptrees = TRUE)
summary(mod_BART)
set.seed(500)
formula_GBM <- as.formula(paste("presence ~", paste(preds_selected, collapse = "+")))
mod_GBM <- gbm(formula_GBM, data = dataset, distribution="bernoulli")
还有我应该播种多少次? 如果模型在同一个脚本中,在第一个模型之前只设置一个种子就足够了吗? 多谢 安吉拉
为了获得一致的结果,您必须在每个过程之前设置带有一些随机元素的种子。如果你设置种子,然后运行你的随机森林,种子会因为缺少更好的词而被“消耗”,并且它不会被用于下一个过程。
最好在每个模型之前设置种子。
您还可以在脚本的顶部添加类似以下行的内容。这实际上会在脚本的其余部分调用任何函数后设置种子。
addTaskCallback(function(...) {set.seed(500);TRUE})