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

R使用mlr库调用C50算法时makeResampleDesc传measures报错如何解决

问题原因

  • 参数位置错误:makeResampleDesc 接口本身没有measures参数,评估指标需要传入到调优函数tuneParams中,你把评估指标的参数放错了函数导致报错。
  • 指标适配问题:iris是三分类任务,默认的f1是二分类专用指标,直接使用会出现维度不匹配问题,需要替换为多分类场景适用的F1指标,比如宏F1(f1_macro)、微F1(f1_micro)这类。

修复后的完整代码

library(mlr)
library(C50)
data(iris)

# 构建分类任务
zooTask <- makeClassifTask(data = iris, target = "Species")
# 定义C50学习器
forest <- makeLearner("classif.C50")

# 定义参数搜索空间
forestParamSpace <- makeParamSet(
  makeIntegerParam("minCases", lower = 1, upper = 100)
)

# 随机搜索配置
randSearch <- makeTuneControlRandom(maxit = 100)

# 仅定义5折交叉验证的重采样策略,不传入评估指标
cvForTuning <- makeResampleDesc("CV", iters = 5)

# 调优时传入评估指标,这里使用多分类宏F1
tunedForestPars <- tuneParams(
  learner = forest, 
  task = zooTask,
  resampling = cvForTuning,
  par.set = forestParamSpace,
  control = randSearch,
  measures = f1_macro # 评估指标移到这里,使用多分类适用的F1
)

tunedForestPars

补充说明

如果需要自定义多分类F1的计算规则,可以在构造任务时指定正类,或者使用setAggregation对指标的聚合方式做调整,匹配你的评估需求即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 13:54:02