决策树是基于一系列判断的逻辑组成的一个树状图.
做决策树的时候会经历两个阶段. 构造 和 剪枝
构造
构造的过程就是选择什么属性作为节点的过程
- 根节点: 属性分类大类
- 内部节点: 大类下的小分类选项, 可以有子节点 (内部节点或者叶节点)
- 叶节点: 由分类选项判断的决策结果, 没有子节点
构造过程中需要考虑的问题:
- 什么属性为根节点, 什么属性为子节点
- 什么时候停止并得到目标状态, 即叶节点
剪枝
剪枝想实现的目标是, 不需要过多的判断同样也可以得到不错的结果. 防止 过拟合 (Overfitting)
剪枝的过程可以分为以下两种:
- 预剪枝 (Pre-Pruning): 在决策树构造时就进行剪枝。方法是在构造的过程中对节点进行评估,如果对某个节点进行划分,在验证集中不能带来准确性的提升,那么对这个节点进行划分就没有意义,这时就会把当前节点作为叶节点,不对其进行划分。
- 后剪枝 (Post-Pruning): 就是在生成决策树之后再进行剪枝,通常会从决策树的叶节点开始,逐层向上对每个节点进行评估。如果剪掉这个节点子树,与保留该节点子树在分类准确性上差别不大,或者剪掉该节点子树,能在验证集中带来准确性的提升,那么就可以把该节点子树进行剪枝。方法是:用这个节点子树的叶子节点来替代该节点,类标记为这个节点子树中最频繁的那个类。