我正在使用caret
中的R
包进行一些有监督的多变量分析。我正在尝试为我的脚本添加一些功能,以便在脚本运行时允许可重现的结果。
我有这个设置使用2个分类模型(每个模型分别运行,而不是作为一个enesmble):
library(caret)
load.data = ....
cleaned.data = cleaning(load.data)
mycontrol = trainControl(...)
train, test = createDatapartition(...)
model1 = train(...,
data=train, ...,
trControl=mycontrol,
preprocess=c('center'))
model2 = train(...,
data=train, ...,
trControl=mycontrol,
preprocess=c('pca'))
feature.importances = ...
summary(resamples(list(m1=model1,m2=model2)))
learing_curve_dat(...) #see link 1. below.
predict()
Evaluate(....) #see link 2. below
我应该在此管道中使用set.seed(#)
以及#
应该是什么,以便在每次运行脚本时获得可重现的结果 - 或者我只选择#
的任何值随机?
链接:
答案 0 :(得分:0)
您应该阅读包网页上的Notes on Reproducibility部分。
种子数并不重要。我用sample.int(100000, 1)
生成一个。根据您使用模型的方式,您至少应在调用train
之前设置种子(但请阅读上面的链接)。