text: 决策树 连续变量_决策树在R语言中的实现_编辑嘉木的博客
  随着大数据时代的到来，数据量激增，机器学习方法起到越来越重要的作用。本期介绍的是机器学习中的决策树，并借助R语言进行实证分析。
  一、理论介绍
  1.决策树基础知识
  决策树是数据挖掘中的重要技术，通过一些潜在的规则信息进行分析，产生预测模型。决策树主要用于分类，也可以用于回归，当输出变量是分类变量时，是分类树；当输出变量是连续变量时，为回归树。目前国际上最有效的决策树方法有三种：一个是CART法，另一个是Quinlan于1986年提出的ID3法[1]，还有一个是Quinlan于1993年提出的改进算法C4.5[2]。其中CART既可以用于分类树又可以用于回归树，而ID3和C4.5只能用于分类树。
  决策树的优缺点都比较明显：优点在于它可以直接显示结果的决策过程，比较直观；缺点在于处理复杂性数据时，容易出现分支多管理难度大，及决策缓慢等情况(程秀峰等，2018)[3]。因此，对决策树进行剪枝就显得尤为重要，通过事前剪枝或事后剪枝节省时间，提高树的精度(谭中明等，2018)[4]。由于决策树技术分类规则比较直观并且易于理解，因此在决策中较为常见，在医疗行业、渔业、保险业等领域均有广泛应用。
  2.决策树模型建立
  通常情况下，决策树的建立一般分为两个步骤：一是建树，即利用已有数据选取划分算法建立一棵决策树，建立决策树模型；二是剪枝，即对已有的决策树进行修剪，防止过拟合。
  其中剪枝又分为先剪枝和后剪枝：
  (1)先剪枝：在决策树生长阶段，设定一个指标，达标则停止生长，该结点为树叶。但在停止分支后，“好”的分支也会停止生长。
  (2)后剪枝：在决策树完全生长之后，不纯度达到最小后停止生长，然后进行剪枝看不纯度是否变化。若不纯度增长，说明剪枝成功；若相反，则说明剪枝失败。但这种方法有可能使所得到的决策树非平衡，仅适合小样本。
  二、实证研究
  1.数据来源
  本期数据为R软件自带的Stagec数据包。
  2.过程及分析
  首先安装rpart包并调用，以便后续使用：
  install.packages("rpart")
  library(rpart)
  然后读取数据集stagec并查看，结果显示为图1:
  head(stagec)
  progstat = factor(stagec$pgstat, levels = 0:1, labels =c("No", "Prog"))
  图1 数据展示
  接着建立决策树并查看分类树信息如图2，因为该数据因变量是因子变量，method选class：
  cfit = rpart(progstat ~ age+eet+g2+grade+gleason+ploidy,data =stagec, method ='class')
  summary(cfit)
  图2 分类树信息展示
  之后输出结果如图3,并查看分类树图4:
  print(cfit)
  图 3 结果展示
  par(mar = rep(0.1, 4))
  plot(cfit)
  text(cfit)
  图4 分类树图
  再对分类结果作混淆矩阵如图5：
  (temp = with(stagec, table(cut(grade, c(0, 2.5, 4)),cut(gleason,c(2, 5.5, 10)),exclude = NULL)))
  图 5 混淆矩阵
  最后进行剪枝并作剪枝后的决策图：
  cfit2=prune(cfit,cp=0.02)
  plot(cfit2)
  text(cfit2)
  图 6 剪枝后分类树图
  图6显示，与剪枝前相比，剪枝后减少了一个分支，适当减少了决策过程，防止过拟合。
  本期所介绍的只是决策树中有关分类树的一个案例，有兴趣的读者可以自己进行代码编写，或者用该方法处理自己的数据。除此之外，还可以通过构建回归树对连续变量进行分析，下次再进行详细介绍和实证研究。
  参考文献
  [1]Quinlan J R.Induction of Decision Tree[J].MachineLearning, 1986 (1) .
  [2] Quinlan J R.C4.5:Programs for MachineLearning[M].[S.1.]:Morgan Kaufman, 1993.
  [3]程秀峰,张心怡,王宁.基于CART决策树的网络问答社区新兴话题识别研究[J].数据分析与知识发现,2018(12):52-59.
  [4]谭中明,谢坤,彭耀鹏.基于梯度提升决策树模型的P2P网贷借款人信用风险评测研究[J].软科学,2018,32(12):136-140.