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

mlr包resample多学习器重采样报错:参数learner缺失解决方法

解决mlr中resample函数无法识别多学习器列表的问题

错误原因

mlr包的resample()函数仅支持传入单个学习器(对应参数learner),你当前传入的是多个学习器组成的列表(命名为learners),函数找不到必填的learner参数,因此抛出报错。

解决方案

使用benchmark()函数替代resample(),该函数专门支持同时评估多个学习器,参数逻辑与resample()兼容,只需将原代码中的resample替换为benchmark即可:

library(mlr)

learners = makeLearners(cls = c("C50", "rpart","ada","naiveBayes"), type = "classif", predict.type = "prob")

data_task = makeClassifTask(data = dataset, target = "y_dx")

repCV = makeResampleDesc(method = "RepCV", folds = 5 ,stratify = TRUE)
# 替换为benchmark函数
valCV = benchmark(
    learners = learners, 
    tasks = data_task, 
    resamplings = repCV, 
    measures = list(mmce, acc, auc))

补充说明

  • benchmark()的返回结果结构与resample()略有不同,可以通过getBMRAggrPerformances(valCV)提取各学习器的聚合性能指标。
  • 确保所有学习器的predict.type与你指定的评估指标兼容(比如auc需要predict.type = "prob",你的代码已经正确设置)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 16:02:02