У меня возникла проблема при использовании параметров tuneGrid и элементов управления в каретке. В этом примере я хотел бы установить минимальный критерий и максимальную глубину, но также хотел бы указать минимальный размер сегмента. Эта ошибка возникает, когда в ctree_control () передаются какие-либо параметры.
Я получаю сообщение об ошибке:
В eval (expr, envir, enclos): не удалось подобрать модель для Fold1: mincriterion = 0.95, maxdepth = 7 Ошибка в (function (cl, name, valueClass): присвоение объекта класса «numeric» недопустимо для @ ' maxdepth 'в объекте класса «TreeGrowControl»; is (значение, «целое число») НЕ ИСТИНА »
Это можно воспроизвести, запустив:
library(caret)
data("GermanCredit")
trainCtrl <- trainControl(method = 'cv', number = 2, sampling = 'down',
verboseIter = FALSE, allowParallel = FALSE, classProbs = TRUE,
summaryFunction = twoClassSummary)
tune <- expand.grid(.mincriterion = .95, .maxdepth = seq(5, 10, 2))
ctree_fit <- train(Class ~ ., data = GermanCredit,
method = 'ctree2', trControl = trainCtrl, metric = "Sens",
tuneGrid = tune, controls = ctree_control(minbucket = 10))
Я пробую этот подход на основе ответа, опубликованного здесь: Запустите cforest с помощью controls = cforest_unbiased (), используя пакет каретки
Судя по виду ошибки, это как-то связано с тем, как каретка передает максимальную глубину в ctree, но я не уверен, есть ли что-то в этом роде. Запуск ctree напрямую с ctree_control работает нормально.
Любая помощь приветствуется