R - 如何在 MLR 中使用 Multiclass.au1p 度量



我正在尝试在 mlr 包中使用 multiclass.au1p 度量。它给了我一个错误说

FUN(X[[i]], ...) 中的错误:测量多类.au1p 需要 预测类型为:"概率"!

当我尝试将预测类型设置为 prob 时,它给了我一个错误,类似于我使用的任何分类器

setPredictType.Learner(learner, predict.type) 中的错误:正在尝试 预测概率,但classif.xgboost.multiclass不支持这一点!

我该如何解决这个问题?

以下是我的代码

trainTask <- makeClassifTask(data = no_out_pso,target = "response_grade")
Clslearn = makeLearner("classif.xgboost", predict.type = "prob")
Clslearn = makeMulticlassWrapper(Clslearn, mcw.method = "onevsrest")
Clslearn = setPredictType(Clslearn, "prob")
rdesc = makeResampleDesc("CV", iters = 3)
r = resample(Clslearn, trainTask, rdesc, measures = list(mlr::acc, mlr::multiclass.au1p, mlr::multiclass.au1u))
print(r)

它不适用于makeMulticlassWrapper,因为这不支持概率预测(目前)。当我尝试将其设置为prob在您的代码中时,我也会收到一个错误。

有效的代码:

Clslearn = makeLearner("classif.xgboost", predict.type = "prob")
rdesc = makeResampleDesc("CV", iters = 3)
r = resample(Clslearn, iris.task, rdesc, measures = list(mlr::acc, mlr::multiclass.au1p, mlr::multiclass.au1u))

您需要使用支持预测概率的分类器。您可以使用listLearners()函数获取列表:

listLearners(properties = "prob")

相关内容

  • 没有找到相关文章

最新更新