You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在mlr3中提取ResampleResult/BenchmarkResult的标准差?

在mlr3中提取ResampleResult/BenchmarkResult的标准差

处理ResampleResult(单重采样结果)

如果你有单个ResampleResult对象,直接读取每一轮重采样的指标得分后计算标准差即可:

# 假设 rr 是你的 ResampleResult 对象
# 提取所有轮次的目标指标得分(根据实际指标ID调整)
rr_scores <- rr$data$fbeta_test
# 计算标准差
sd(rr_scores)

处理BenchmarkResult(基准测试结果)

BenchmarkResult包含多组任务、学习器的重采样数据,需要先通过score()方法获取所有轮次的详细得分,再分组计算标准差:
结合你提供的代码,示例如下:

measures <- list(
  mlr3::msr("classif.fbeta", predict_sets = "train", id = "fbeta_train"),
  mlr3::msr("classif.fbeta", id = "fbeta_test")
)

# 获取所有重采样轮次的详细得分数据
bmr_scores <- bmr$score(measures)

# 按任务和学习器分组,同时计算均值与标准差
library(data.table)
bmr_scores[, .(
  fbeta_train_mean = mean(fbeta_train),
  fbeta_train_sd = sd(fbeta_train),
  fbeta_test_mean = mean(fbeta_test),
  fbeta_test_sd = sd(fbeta_test)
), by = c("task_id", "learner_id")]

解释:score()方法返回的data.table包含每一轮重采样的所有指标结果,通过by = c("task_id", "learner_id")分组后,就能对每个任务-学习器组合分别计算均值和标准差。

内容的提问来源于stack exchange,提问作者Lucas Teixeira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 14:15:25