2013-04-01 4 views
4

Я пытаюсь выполнить классификацию с использованием пакета adabag R.Adabag package in R

Следующий вызов прекрасно работает с функцией ada() пакета ad ad().

model<-ada(factor(label)~., data=trainingdata) 

Но когда тот же обучающий набор данных используется в вызове функции на следующий adabag, он возвращает ошибку:

model<-boosting(factor(label)~., data=trainingdata) 

Error in `[.data.frame`(data, , as.character(formula[[2]])) : 
undefined columns selected 

Что эта ошибка предполагает именно?

+0

Это предполагает, что в dataframe 'trainingdata' нет столбца с именем' factor (label) '. –

+0

Возможно, если у вас есть фрейм данных 'trainingdata', вы можете попробовать' model <-boosting (factor (trainingdata $ label) ~., Data = trainingdata) ' – Duck

+3

Я подозреваю, что решение может заключаться в том, чтобы выполнить факторную операцию перед вызовом повышения : 'trainingdata $ label <- factor (trainingdata $ label); (bmodel <-boosting (factor (label) ~., data = trainingdata)) '. Я заметил, что многие пакеты «машинного обучения» либо не имеют интерфейсов формул, либо что они не полностью реализованы. –

ответ

3

я получаю именно то сообщение об ошибке при запуске незначительной модификации первого примера boosting «s:

> data(iris) 
> iris.adaboost <- boosting(factor(Species)~., data=iris, boos=TRUE, mfinal=10) 
Error in `[.data.frame`(data, , as.character(formula[[2]])) : 
    undefined columns selected 

Таким образом, вы должны попробовать совет, который я только что дал в комментарии (для этого фактора() - Инж заранее). Интерфейс формулы для boosting не является полнофункциональным, чтобы даже обрабатывать функцию factor в своем дереве синтаксического анализа.

+1

Спасибо. Это сработало. – Shahzad