Как использовать мульткласс.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")
Другие вопросы по тегам