В настоящее время я пытаюсь построить модель с накоплением, используя пакет caretEnsemble, используя в качестве базовых моделей случайный лес и обобщенную усиленную модель. Однако после запуска функции caretEnsemble я продолжаю получать следующую ошибку:
Error in check_caretList_model_types(list_of_models) :
Not yet implemented for multiclass problems
Проведя некоторое исследование проблемы, я заметил, что эта функция лучше всего работает, когда модели построены с помощью функции train() (что и было сделано), и иногда зависит от формата обучающих данных. Поскольку это часть задания, я не буду публиковать код обработки данных, но дам ссылку на него — ССЫЛКА
И вот код, который я пытаюсь запустить на нем.
training<-read.csv("training.csv")
control<- trainControl(method="repeatedcv", number=10, repeats=3,
savePredictions = TRUE, classProbs = TRUE)
metric<-"Accuracy"
set.seed(5937)
fit1<-caretList(classe~., data=training, trControl=control, metric=metric,
methodList = c("rf", "gbm"))
fit2<-caretEnsemble(fit1)
Не могли бы вы помочь мне разобраться, это техническое ограничение пакета или я пытаюсь совместить несовместимые модели? Есть ли обходной путь для этого или, возможно, лучший способ построить модель с накоплением?
Большое спасибо, Камран.
ОБНОВЛЕНИЕ
Пока нет ответов, поэтому позвольте мне опубликовать обновление. Я попытался объединить две модели вручную, используя обобщенный аддитивный режим. Модели такие же, как и в предыдущем коде, и набор проверки можно найти здесь - ССЫЛКА< /а>:
val<-read.csv("validation.csv")
pred1<- predict(fit1$rf, val)
pred2<-predict(fit1$gbm, val)
predDF<- data.frame(pred1, pred2, classe=val$classe)
fitcomb<-train(classe~., method="gam", data=predDF)
pred3<- predict(fitcomb, predDF)
confusionMatrix(pred3, predDF$classe)
Вот результат, который я получил: матрица путаницы и статистика
Reference
Prediction
A B C D E
A 742 55 88 60 46
B 304 657 553 543 630
C 0 0 0 0 0
D 0 0 0 0 0
E 0 0 0 0 0
По какой-то причине моя модель распознает в данных только два класса, а их должно быть 5.
Может ли кто-нибудь помочь мне получить любой из двух подходов к работе? Кроме того, я впервые публикую здесь вопросы - дайте мне знать, могу ли я каким-либо образом улучшить качество вопроса.