决策树算法 :https://www.cnblogs.com/wkslearner/p/6287128.html
决策树及R语言实现 : https://www.cnblogs.com/karlpearson/p/6224148.html
基于R软件rpart包的分类与回归树应用 : https://wenku.baidu.com/view/7b01d69c51e79b8968022679.html
R语言 决策树--预测模型 : https://blog.csdn.net/gdyflxw/article/details/55805892
实例:
R 决策树 : https://blog.csdn.net/F_yuqi/article/details/54090237
r语言做决策树模型(少废话版本):https://blog.csdn.net/li603060971/article/details/57080802
library(rpart)
library(rpart.plot)
library(rattle)
data("iris")
## 构建训练集,测试集; 70%作为训练集,30%作为测试集,用sample函数随机采样
set.seed(1000)
data.index = sample(c(1,2), nrow(iris), replace = T, prob = c(0.7, 0.3))
data.train = iris[which(data.index == 1),]
data.test = iris[which(data.index == 2),]
### CRAT算法用训练集建模,构建决策树
iris.mod = rpart(Species ~ . , data = data.train, method = "class")
summary(iris.mod)
iris.mod$variable.importance ##变量重要性
printcp(iris.mod) ##每次分割对应的复杂度系数
### 画决策树
rpart.plot(iris.mod)
prediction = predict(iris.mod, newdata = data.test, type = "class")
table(prediction, data.test$Species) ## 混合矩阵查看变异情况
###剪枝 使用具有最小交叉验证误差的cp来建立回归树
cp.xerror = iris.mod$cptable[which.min(iris.mod$cptable[,"xerror"]), "CP"]
iris.prune = prune(iris.mod, cp=cp.xerror)
### 重新画决策树
rpart.plot(iris.prune)
prediction2 = predict(iris.prune, newdata = data.test, type = "class")
table(prediction2, data.test$Species) ## 混合矩阵查看变异情况