如何使用rpart创建一个简单的树?

时间:2016-11-25 15:03:05

标签: r machine-learning tree rpart

我正在尝试使用rpart在R中创建一个决策树。

#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)

我希望“预测”给我一个“m”或“f”,但我得到的只是一个微不足道的数字。 为了得到一封信我需要改变什么?

由于

1 个答案:

答案 0 :(得分:0)

我认为问题在于你的例子太小了,我通过制作3倍的大小来解决这个问题。也是&#34; anova&#34;方法旨在预测类别的方法。 (你还需要扔掉教你使用data.frame(cbind(...))的书。)我猜你想要这样的东西。

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