1.信息论基础(熵,联合熵,条件熵,信息增益,基尼不纯度)
2.决策树的不同分类算法(ID3算法/C4.5/CART分类树)的原理及应用场景
3.回归树原理
4.决策树防止过拟合手段
5.模型评估
6.Sklearn参数详解,python绘制决策树
1.0信息论基础(熵,联合熵,条件熵,信息增益,基尼不纯度)
1.熵:本是热力学中表征物质状态的参量之一,用符号S表示,其物理意义是体系混乱程度的度量。对于机器学习算法来说,熵指代香农熵,是一种不确定性度量。它是表示随机变量不确定的度量,是对所有可能发生的事件产生的信息量的期望。对于事件X,有n种可能结果,且概率分别为p1,p2,…,pn,则熵H(X)为:
基本性质:
均匀分布具有最大的熵。一个好的不确定性度量会在均匀分布时达到最大的值。给定n个可能的结果,在所有结果的概率相同时得到最大的熵。
对于独立事件,熵是可加的。两个独立事件的联合熵等于各个独立事件的熵的和。
具有非零概率的结果数量增加,熵也会增加。加入发生概率为0的结果并不会有影响。
连续性。不确定性度量应该是连续的,熵函数是连续的。
具有更多可能结果的均匀分布有更大的不确定性。
非负性。事件拥有非负的不确定性。
确定事件的熵为0。有确定结果的事件具有0不确定性。
参数排列不变性。调转参数顺序没有影响。
2.联合熵:一维随机变量分布推广到多维随机变量分布,则其联合熵 (Joint entropy) 为:
注:熵只依赖于随机变量的分布,与随机变量取值无关。
3.条件熵: H(Y|X) 表示在已知随机变量 X 的条件下随机变量 Y 的不确定性。条件熵 H(Y|X) 定义为 X 给定条件下 Y 的条件概率分布的熵对 X 的数学期望。
条件熵 H(Y|X) 相当于联合熵 H(X,Y) 减去单独的熵 H(X),即H(Y|X)=H(X,Y)−H(X)。证明:
当已知 H(X) 这个信息量的时候,H(X,Y) 剩下的信息量就是条件熵,描述 X 和 Y 所需的信息是描述 X 自己所需的信息,加上给定 X 的条件下具体化 Y 所需的额外信息。
4.信息增益:以某特征划分数据集前后的熵的差值。即待分类集合的熵和选定某个特征的条件熵之差(这里只的是经验熵或经验条件熵,由于真正的熵并不知道,是根据样本计算出来的),公式如下:
注:这里不要理解偏差,因为上边说了熵是类别的,但是在这里又说是集合的熵,没区别,因为在计算熵的时候是根据各个类别对应的值求期望来等到熵
5.基尼不纯度:将来自集合中的某种结果随机应用于集合中某一数据项的预期误差率。即从一个数据集中随机选取子项,度量其被错误的划分到其他组里的概率。
(1)显然基尼不纯度越小,纯度越高,集合的有序程度越高,分类的效果越好;
(2)基尼不纯度为 0 时,表示集合类别一致;
(3)基尼不纯度最高(纯度最低)时,
例,如果集合中的每个数据项都属于同一分类,此时误差率为 0。如果有四种可能的结果均匀地分布在集合中,此时的误差率为 1−0.25=0.75;
2.决策树的不同分类算法(ID3算法、C4.5、CART分类树)的原理及应用场景
决策数算法3步:特征选择、决策树生成、决策树剪枝
决策树的生成过程就是:使用满足划分准则的特征不断的将数据集划分为纯度更高,不确定性更小的子集的过程。对于当前数据集D的每一次的划分,都希望根据某特征划分之后的各个子集的纯度更高,不确定性更小。
度量划分数据集前后的数据集的纯度以及不确定性:特征选择准则,如:信息增益,信息增益率,基尼指数
特征选择准则:度量样本集合不确定性以及纯度的方法。
目的:使用某特征对数据集划分之后,各数据子集的纯度要比划分前的数据集D的纯度高(不确定性要比划分前数据集D的不确定性低。)
注意:
1. 划分后的纯度为各数据子集的纯度的加和。
2. 度量划分前后的纯度变化 用子集的纯度之和与划分前的数据集D的纯度 进行对比。
- ID3:采用信息增益划分数据
熵可以表示样本集合的不确定性,熵越大,样本的不确定性就越大。因此可以使用划分前后集合熵的差值来衡量使用当前特征对于样本集合D划分效果的好坏。
划分前样本集合D的熵是一定的 ,entroy(前),
使用某个特征A划分数据集D,计算划分后的数据子集的熵 entroy(后)
信息增益 = entroy(前) - entroy(后)
书中公式:
做法:计算使用所有特征划分数据集D,得到多个特征划分数据集D的信息增益,从这些信息增益中选择最大的,因而当前结点的划分特征便是使信息增益最大的划分所使用的特征。
信息增益的理解:对于待划分的数据集D,其 entroy(前)是一定的,但是划分之后的熵 entroy(后)是不定的,entroy(后)越小说明使用此特征划分得到的子集的不确定性越小(也就是纯度越高),因此 entroy(前) - entroy(后)差异越大,说明使用当前特征划分数据集D的话,其纯度上升的更快。而我们在构建最优的决策树的时候总希望能更快速到达纯度更高的集合,这一点可以参考优化算法中的梯度下降算法,每一步沿着负梯度方法最小化损失函数的原因就是负梯度方向是函数值减小最快的方向。同理:在决策树构建的过程中我们总是希望集合往最快到达纯度更高的子集合方向发展,因此我们总是选择使得信息增益最大的特征来划分当前数据集D。
缺点:信息增益偏向取值较多的特征
原因:当特征的取值较多时,根据此特征划分更容易得到纯度更高的子集,因此划分之后的熵更低,由于划分前的熵是一定的&#x