我正在尝试使用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”,但我得到的只是一个微不足道的数字。 为了得到一封信我需要改变什么?
由于
答案 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()