决策树的剪枝处理

决策树的剪枝处理

剪枝是决策树学习算法解决过拟合的主要手段。在决策树的学习过程中,为了尽可能地正确分类训练样本,节点划分得不断重复,有时候会造成决策树的分支过多,这时候就是算法在训练样本上学得太好,导致把训练集本身的一些特点作为所有数据所有数据都有的一般性质(实际上新数据中可能没有这些特点),从而导致过拟合。因此可以主动去掉一些分支来降低过拟合的风险。
  
  决策树的剪枝分为 预剪枝后剪枝
  
  预剪枝,是指在决策树生成过程中,对每个节点在划分前先进行估计,若当前的节点划分不能带来决策树泛化的提升,则停止划分并将当前节点标记为叶子节点。
  后剪枝,是指先从训练数据集中生成一课完整的决策树,然后自底向上对非叶子节点进行考察,若将该节点对应的子树替换为叶子结点能够带来决策树泛化能力的提升,则将该节点替换为叶子节点。
  
  (注:叶子节点的类别指定为 训练数据集中数量最大的类别)

预剪枝
  在某个节点的预剪枝的估计建立在已经确定最优划分属性的前提之上,要不要以该属性对当前节点进行划分,还得先计算泛化能力是否有提高。
  在预剪枝中,泛化能力的计算依赖于验证数据集。验证精度的计算是将验证数据集输入决策树模型进行判别,取正例样本数量与验证集样本数量的比值(百分比)。划分前验证精度由上一步计算给出。泛化能力的提高与否,要对比划分前后验证集的大小。
  预剪枝基于“贪心”本质禁止这些分支的展开,给预剪枝决策树带来欠拟合的风险。

后剪枝
  将验证集输入到决策树算法,计算出剪枝前的验证精度。然后,找到最底下的非叶子结点,(模拟)将其领先的分支去除,取其中数量最大的分类作为该节点的判别标记。然后计算剪枝后的验证精度。通过对比剪枝前后的验证精度,来确定是否需要进行剪枝。

剪枝处理总结
  后剪枝决策树通常比预剪枝决策树保留更多的分支,一般情形下,后剪枝决策树的欠拟合风险小,泛化能力往往优于预剪枝。但后剪枝决策树训练开销比预剪枝大得多。

你可能感兴趣的:(机器学习,决策树,剪枝)