如何在 MLR 中使用 multiclass.au1p 度量
how to use multiclass.au1p measure in mlr
我正在尝试在 mlr 包中使用 multiclass.au1p 度量。它给了我一个错误
Error in FUN(X[[i]], ...) : Measure multiclass.au1p requires
predict type to be: 'prob'!
当我尝试将预测类型设置为 prob 时,它给了我一个类似于以下我使用的任何分类器的错误
Error in setPredictType.Learner(learner, predict.type) : Trying to
predict probs, but classif.xgboost.multiclass does not support that!
我该如何解决这个问题?
以下是我的代码
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)
您需要使用支持预测概率的分类器。您可以使用 listLearners()
函数获取列表:
listLearners(properties = "prob")
它不适用于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))
我正在尝试在 mlr 包中使用 multiclass.au1p 度量。它给了我一个错误
Error in FUN(X[[i]], ...) : Measure multiclass.au1p requires predict type to be: 'prob'!
当我尝试将预测类型设置为 prob 时,它给了我一个类似于以下我使用的任何分类器的错误
Error in setPredictType.Learner(learner, predict.type) : Trying to predict probs, but classif.xgboost.multiclass does not support that!
我该如何解决这个问题?
以下是我的代码
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)
您需要使用支持预测概率的分类器。您可以使用 listLearners()
函数获取列表:
listLearners(properties = "prob")
它不适用于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))