1 决策树
1.1 工作原理
把以前的经验总结出来,最后得到结果
比如打篮球,一般会根据“天气”、“温度”、“湿度”、“刮风”这几个条件来判断,最后得到结果:去打篮球?还是不去?
在做决策树的时候,会经历两个阶段:构造和剪枝。
1.2 构造
构造就是通过选择什么属性作为节点来生成一棵完整的决策树
节点类型:
- 根节点:就是树的最顶端,最开始的那个节点。在上图中,“天气”就是一个根节点;
- 内部节点:就是树中间的那些节点,比如说“温度”、“湿度”、“刮风”;
- 叶节点:就是树最底部的节点,也就是决策结果。
需要解决三个重要问题:
- 选择哪个属性作为根节点;
- 选择哪些属性作为子节点;
- 什么时候停止并得到目标状态,即叶节点。
纯度:可以把决策树的构造过程理解成为寻找纯净划分的过程。数学上可以用纯度来表示,纯度换一种方式来解释就是让目标变量的分歧最小。
信息熵:表示了信息的不确定度,其计算公式为:
p(i|t) 代表了节点 t 为分类 i 的概率,其中 log2 为取以 2 为底的对数。
它能帮我们反映出来这个信息的不确定度。当不确定性越大时,它所包含的信息量也就越大,信息熵也就越高。
信息熵越大,纯度越低。
当集合中的所有样本均匀混合时,信息熵最大,纯度最低。
在构造决策树的时候,会基于纯度来构建。而经典的 “不纯度”的指标有三种,分别是:
信息增益(ID3 算法)、信息增益率(C4.5 算法)以及基尼指数(Cart 算法)。
ID3 算法计算的是信息增益:划分可以带来纯度的提高,信息熵的下降。
C4.5改进了ID3算法:
采用信息增益率
采用悲观剪枝
离散化处理连续属性
处理缺失值
CART请见下一节
1.3 剪枝
剪枝就是给决策树瘦身。
目的:不需要太多的判断,同样可以得到不错的结果。之所以这么做,是为了防止“过拟合”(Overfitting)现象的发生。
过拟合:指的就是模型的训练结果“太好了”,以至于在实际应用的过程中,会存在“死板”的情况,导致分类错误。
造成过拟合的原因:训练集中样本量较小
泛化能力:分类器通过训练集抽象出来的分类能力;
如果太依赖于训练集的数据,那么得到的决策树容错率就会比较低,泛化能力差;
因为训练集只是全部数据的抽样,并不能体现全部数据的特点;
如果决策树选择的属性过多,构造出来的决策树一定能够“完美”地把训练集中的样本分类,但是这样就会把训练集中一些数据的特点当成所有数据的特点,但这个特点不一定是全部数据的特点,这就使得这个决策树在真实的数据分类中出现错误,也就是模型的“泛化能力”差。
剪枝的方法:预剪树和后剪枝:
预剪枝是在决策树构造时就进行剪枝。
方法是:在构造的过程中对节点进行评估,如果对某个节点进行划分,在验证集中不能带来准确性的提升,