当我运行相同的模型两次时,为什么在mlr包中获得不同的性能指标?

时间:2019-08-19 13:44:09

标签: r mlr

当我连续两次运行此代码时,我得到了两个不同的性能指标?我不确定我为什么会这样,因为我使用的是相同的培训和测试集。我也在开始时就设置了种子。

set.seed(42)
data(BostonHousing, package = "mlbench")
regr.task = makeRegrTask(id = "bh", data = BostonHousing, target = "medv")

lrn = makeLearner("regr.ctree")

outer=makeResampleInstance(makeResampleDesc("Holdout"),task=regr.task)
r = resample(
  learner = lrn,
  task = regr.task,
  resampling = outer,
  show.info = TRUE
)

这是我第一次运行代码:

Resampling: holdout
Measures:             mse       
[Resample] iter 1:    20.5713143


Aggregated Result: mse.test.mean=20.5713143

这是我第二次运行代码:

Resampling: holdout
Measures:             mse       
[Resample] iter 1:    21.9437349


Aggregated Result: mse.test.mean=21.9437349

1 个答案:

答案 0 :(得分:1)

mlr未对全局种子进行任何更改。它适用于大多数学习者,包括您的示例("regr.ctree")中显示的学习者。

如果在某些情况下不起作用,这是基础学习者的问题。 在这些情况下,您可能需要阅读学习者的文档以了解如何获得可重复的结果。