2016-05-31 10 views
1

добрый день! У меня проблема с деревьями принятия решения.дерево решений в R ошибка: подгонка не дерево, просто корень

f11<-as.factor(Z24train$f1) 
fit_f1 <- rpart(f11~TSU+TSL+TW+TP,data = Z24train,method="class") 
plot(fit_f1, uniform=TRUE, main="Classification Tree for Kyphosis") 

Но появляется эта ошибка:

Error in plot.rpart(fit_f1, uniform = TRUE, main = "Classification Tree for Kyphosis") : 
    fit is not a tree, just a root 

, которая является проблемой? спасибо за помощь :)

ответ

0

Возможно, это связано с тем, что RPART не может создать дерево решений с данным набором данных после использования его параметров управления по умолчанию.

rpart.control(minsplit = 20, minbucket = round(minsplit/3), cp = 0.01, 
maxcompete = 4, maxsurrogate = 5, usesurrogate = 2, xval = 10, 
surrogatestyle = 0, maxdepth = 30, ...) 

Если вы хотите создать дерево, вы можете настроить параметры управления и создать дерево подстройки.

tree <- rpart(f11~TSU+TSL+TW+TP,data = Z24train,method="class",control =rpart.control(minsplit =1,minbucket=1, cp=0)) 

Описание параметров взяты из документации г (https://stat.ethz.ch/R-manual/R-devel/library/rpart/html/rpart.control.html)

minsplit
минимальное число наблюдений, которые должны существовать в узле для того, чтобы раскола, чтобы быть предпринято.

minbucket
минимальное число наблюдений в любом узле терминала. Если указан только один из minbucket или minsplit, код либо устанавливает minsplit на minbucket * 3, либо minbucket на minsplit/3, если это необходимо.

cp
параметр сложности. Любой раскол, который не уменьшает общее отсутствие соответствия коэффициенту cp, не предпринимается. Например, при расщеплении anova это означает, что общее R-квадрат должен увеличиваться на cp на каждом шаге. Основная роль этого параметра заключается в том, чтобы экономить вычислительное время, сокращая разделение, которое явно не стоит. По сути, пользователь информирует программу о том, что любой раскол, который не улучшает соответствие с помощью cp, скорее всего, будет сокращен путем перекрестной проверки, и поэтому программа не должна преследовать его

Смежные вопросы