set.seed() R 中的机器学习模型

问题描述 投票:0回答:1

谁能阐明在运行机器学习算法之前 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") 

还有我应该播种多少次? 如果模型在同一个脚本中,在第一个模型之前只设置一个种子就足够了吗? 多谢 安吉拉

machine-learning random-forest gbm bart
1个回答
0
投票

为了获得一致的结果,您必须在每个过程之前设置带有一些随机元素的种子。如果你设置种子,然后运行你的随机森林,种子会因为缺少更好的词而被“消耗”,并且它不会被用于下一个过程。

最好在每个模型之前设置种子。

您还可以在脚本的顶部添加类似以下行的内容。这实际上会在脚本的其余部分调用任何函数后设置种子。

addTaskCallback(function(...) {set.seed(500);TRUE})
© www.soinside.com 2019 - 2024. All rights reserved.