首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >学习者基准比较的结果取决于重采样的实例化。我该如何解释这个问题呢?

学习者基准比较的结果取决于重采样的实例化。我该如何解释这个问题呢?
EN

Stack Overflow用户
提问于 2021-04-20 00:09:37
回答 2查看 45关注 0票数 0

我运行下面的代码。如果我停用实例化(如图所示),我的基准测试比较结果将不同于三个基准测试实验,并且哪个学习者表现更好的结论可能会不同。

我如何解决这个问题?一种方法可能是对大量的重采样进行平均。我可以为此编写代码,但当调用"benchmark“时,这可能已经是一个选项了?

代码语言:javascript
复制
resampling = rsmp("cv", folds=20) 
#resampling$instantiate(task)   # results below will (and shall) differ, if instantiation is not performed here

design = benchmark_grid(
  tasks = task,
  learners = list(glrn_knn_pca, glrn_knn_nopca),
  resamplings = resampling
)

design2 = benchmark_grid(
  tasks = task,
  learners = list(glrn_knn_pca, glrn_knn_nopca),
  resamplings = resampling
)


design3 = benchmark_grid(
  tasks = task,
  learners = list(glrn_knn_pca, glrn_knn_nopca),
  resamplings = resampling
)


bmr = benchmark(design)
bmr2 = benchmark(design2)
bmr3 = benchmark(design3)

bmr$aggregate(msr("classif.auc"))   
bmr2$aggregate(msr("classif.auc"))   
bmr3$aggregate(msr("classif.auc")) 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-21 02:11:17

在我看来,您可能希望使用重复CV来最小化分区引入的可变性。

你可以使用resampling = rsmp("repeated_cv", folds = 20, repeats = 100)代替resampling = rsmp("cv", folds = 20),创建100个不同的重采样场景,并对所有学习者进行基准测试。

这是ML中减少单个分区影响的常用方法。

票数 2
EN

Stack Overflow用户

发布于 2021-04-21 16:50:51

如果您想要找出哪个学习者表现更好,仅比较汇总的性能度量是不够的。基准的统计测试和曲线图在mlr3benchmark包中实现。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67165525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档