Ind*_*ngh 6 r random-seed r-caret
我createFolds()在R(版本:3.3.0)中使用来创建训练/测试分区.为了使结果可重复,我使用set.seed()种子值为10.正如预期的那样,结果(生成的折叠)是可重复的.
但是,一旦我在设定种子之后加载了插入包.然后使用createFolds函数,我发现创建的折叠是不同的(虽然仍然可以重现).
具体而言,创建的折叠在以下两种情况下有所不同:
情况1:
library(caret)
set.seed(10)
folds=createFolds(y,k=5,returnTrain=TRUE)
Run Code Online (Sandbox Code Playgroud)
案例2:
set.seed(10)
library(caret)
folds=createFolds(y,k=5,returnTrain=TRUE)
Run Code Online (Sandbox Code Playgroud)
哪里y是矢量.
为什么会发生这种情况?
罪魁祸首是ggplot2,加载时附加的它丢失了。它定义了一个.onAttach函数:https://github.com/hadley/ggplot2/blob/master/R/zzz.r
附加包时会调用此函数,请参阅help("ns-hooks")。并在其内部runif被称为从而推进RNG的状态。