library(rpart) mod.tree <- rpart(Species~.,data=iris,method="class") pre.tree <- predict(mod.tree,data=iris,type="class") table(pre.tree,iris$Species)
结果
pre.tree setosa versicolor virginica
setosa 50 0 0
versicolor 0 49 5
virginica 0 1 45
library(ipred) help(bagging) mod <- bagging(Species~.,data=iris,coob=T) print(mod) pre.bagging <- predict(mod,iris) table(pre.bagging,iris$Species)
结果
Bagging classification trees with 25 bootstrap replications
Call: bagging.data.frame(formula = Species ~ ., data = iris, coob = T)
Out-of-bag estimate of misclassification error: 0.0667
pre.bagging setosa versicolor virginica
setosa 50 0 0
versicolor 0 50 0
virginica 0 0 50
library(adabag) help(boosting) iris.adaboost <- boosting(Species~., data=iris, boos=TRUE, mfinal=10) pre.adaboost <- predict(iris.adaboost,iris) pre.adaboost
结果
Observed Class
Predicted Class setosa versicolor virginica
setosa 50 0 0
versicolor 0 50 0
virginica 0 0 50
library(randomForest) mod.forest <- randomForest(Species~.,data=iris) pre.forest <- predict(mod.forest,iris) table(pre.forest,iris$Species)
结果
pre.forest setosa versicolor virginica
setosa 50 0 0
versicolor 0 50 0
virginica 0 0 50
fit <- rpart(Kyphosis~Age + Number + Start, data=kyphosis, method="class",control=ct, parms = list(prior = c(0.65,0.35), split = "information")); ## 第一种 par(mfrow=c(1,3)); plot(fit); text(fit,use.n=T,all=T,cex=0.9); ## 第二种,这种会更漂亮一些 library(rpart.plot); rpart.plot(fit, branch=1, branch.type=2, type=1, extra=102, shadow.col="gray", box.col="green", border.col="blue", split.col="red", split.cex=1.2, main="Kyphosis决策树");