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

使用auto_tuner函数进行多目标调优是否可行?遇报错求助

问题解答

mlr3的auto_tuner支持多指标调优,但你的代码写法有误,才触发了no applicable method for 'as_measure' applied to an object of class "list"错误。

错误原因

msrs(c("classif.tp", "classif.fn"))返回的是MeasureList类型(本质是列表),而默认的random_search是单目标调优器,无法直接处理多指标列表;同时auto_tuner的measure参数在单目标场景下要求传入单个Measure对象,而非列表。

解决方法

根据你的需求,分两种场景处理:

场景1:多目标调优(同时优化多个指标)

需要使用支持多目标的调优器,比如mlr3mbo包中的tnr("mbo"),注意先安装依赖包:

# 安装依赖包(如果未安装)
install.packages("mlr3mbo")

# 加载库
library(mlr3verse)
library(mlr3mbo)

# 构建学习器
lrn_classif <- as_learner(po("encode", method = "one-hot") %>>% 
                            lrn("classif.xgboost",
                                nrounds = to_tune(100, 500),
                                max_depth = to_tune(1, 10),
                                gamma = to_tune(0, 10)
                            )
                          )

# 多指标
measures <- msrs(c("classif.tp", "classif.fn"))

# 使用支持多目标的调优器创建auto_tuner
at <- auto_tuner(
  tuner = tnr("mbo", multi_objective = TRUE),
  learner = lrn_classif,
  resampling = rsmp("cv"),
  measure = measures,
  terminator = trm("evals", n_evals = 20) # 设置终止条件
)

场景2:将多指标组合为单个目标调优

如果不需要真正的多目标优化,可以将多个指标加权组合成一个复合指标:

library(mlr3verse)

# 构建学习器
lrn_classif <- as_learner(po("encode", method = "one-hot") %>>% 
                            lrn("classif.xgboost",
                                nrounds = to_tune(100, 500),
                                max_depth = to_tune(1, 10),
                                gamma = to_tune(0, 10)
                            )
                          )

# 自定义复合指标:最大化tp,最小化fn,加权组合
combined_measure <- msr("classif.custom",
  fun = function(task, pred, ...) {
    tp <- pred$confusion[1,1]
    fn <- pred$confusion[2,1]
    # 自定义权重,目标最大化该值
    return(0.7 * tp - 0.3 * fn)
  },
  minimize = FALSE
)

# 创建auto_tuner
at <- auto_tuner(
  tuner = tnr("random_search"),
  learner = lrn_classif,
  resampling = rsmp("cv"),
  measure = combined_measure
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 11:27:15