Как использовать мульткласс.au1p меру в млр
Я пытаюсь использовать меру multiclass.au1p в пакете mlr. Это дало мне ошибку, сказав
Ошибка в FUN(X[[i]], ...): Мера multiclass.au1p требует, чтобы типом предсказания было: 'prob'!
Когда я пытался установить тип предсказания на prob, он выдавал ошибку, похожую на следующую для любого классификатора, который я использовал.
Ошибка в setPredictType.Learner (учащийся, Foregnet.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)
2 ответа
Это не работает с 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")