Ансамбль GBM и RF в каре

В настоящее время я пытаюсь построить модель с накоплением, используя пакет 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.

Может ли кто-нибудь помочь мне получить любой из двух подходов к работе? Кроме того, я впервые публикую здесь вопросы - дайте мне знать, могу ли я каким-либо образом улучшить качество вопроса.


person Kamran    schedule 02.08.2017    source источник


Ответы (1)


В сообщении об ошибке говорится:

Error in check_caretList_model_types(list_of_models) : 
Not yet implemented for multiclass problems

И это именно проблема. Ошибка Github #191, поддержка многоклассовых моделей все еще открыта. Функция не реализована.

person tmastny    schedule 26.02.2018