Я пытаюсь измерить производительность многослойной классификации для некоторых классификаторов MLR с помощью перекрестной проверки
Я пытался использовать метод MLR resample
или передать свое собственное подмножество, однако в обеих ситуациях выдается ошибка (из того, что я обнаружил, это происходит, когда подмножество, используемое для обучения, содержит только отдельные значения для некоторой метки)
Ниже приведен небольшой пример, где возникает эта проблема:
learner = mlr::makeLearner("classif.logreg")
learner = makeMultilabelClassifierChainsWrapper(learner)
data = data.frame(
attr1 = c(1, 2, 2, 1, 2, 1, 2),
attr2 = c(2, 1, 2, 2, 1, 2, 1),
lab1 = c(FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE),
lab2 = c(FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE))
task = mlr::makeMultilabelTask(data=data, target=c('lab1', 'lab2'))
есть два способа получить ошибку:
1
rDesc = makeResampleDesc("CV", iters = 3)
resample(learner, task, rDesc)
2
model = mlr::train(learner, task, subset=c(TRUE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE))
Сообщение об ошибке:
Ошибка в checkLearnerBeforeTrain (задача, ученик, вес): задача «lab1» - это проблема одного класса, но учащийся «classif.logreg» не поддерживает это!