2016-11-25 11 views
0

Ich versuche, einen Entscheidungsbaum in R mit Rpart zu erstellen.Wie erstelle ich einen einfachen Baum mit rpart?

#rm(list = ls()) 
cat("\014") 

library("rpart") 
#data 
mf <- factor(c("m","m","f","f","m","f","m")) 
heights <- c(180, 175 , 160, 166, 185, 170, 190) 
x = data.frame(cbind(heights, mf)) 
#create tree 
fit <- rpart(mf ~ ., data = x, method = "anova") 

predicted <- predict(fit,character = 180) 

Ich erwarte, „vorhergesagt“, um mir ein „m“ oder ein „f“, aber alles, was ich bekommen, ist eine triviale Zahl. Was muss ich ändern, um einen Brief zu bekommen?

Dank

Antwort

0

Ich denke, das Problem ist, dass Ihr Beispiel zu klein ist, die ich, indem sie 3-mal so groß gerichtet. Auch die "anova" -Methode wurde entwickelt, um Mittelwerte von Kategorien vorherzusagen. (Sie müssen auch das Buch wegwerfen, das Ihnen beigebracht hat, data.frame (cbind (...)) zu verwenden) Ich vermute, Sie wollen so etwas.

mf <- factor(c("m","m","f","f","m","f","m")) 
heights <- c(180, 175 , 160, 166, 185, 170, 190) 
x = data.frame(heights=rep(heights,3), mf) 
rm(heights);rm(mf) 
fit <- rpart(mf ~ heights, data = x, method="class") 

(predicted <- predict(fit, data.frame(heights = c(160,190)))) 
    f m 
1 1 0 
2 0 1 

png(); plot(fit) 
par(xpd=NA) 
text(fit, use.n = TRUE);dev.off() 

enter image description here

Verwandte Themen