看完本文再学习《统计学习方法》相应内容,效果更好
如果需要《统计学习方法》第二版pdf,可私信领取
决策树显然是像人那样做决策,比如挑选苹果我们可以先看颜色,我们觉得红色的可能好些,我们再在红色的苹果中看纹理等等,通过一系列特征决策之后我们选择出我们认为比较好的苹果。
决策树的每一层都是对一个特征进行选择,那么这就涉及到一个问题,特征的选择顺序,特征的顺序真的那么重要吗?先看下图直观理解一下。
是的,因为在计算机中,需要通过大量的样本来形成决策树,即便是大量的样本也会存在不同的特征拥有的样本数差别很大的情况。根据不同的特征形成的决策树差别可能很大,如下图所示,明显左边的搜索效率远低于右边,如果特征很多的话,左边的倾斜程度可能会更大,计算机的效率大大降低。(此图只是取一个极端的情况来便于说明)
所以,我们需要构建一个像右图那样的树,也就是平衡树
书中是通过引出信息熵,继而引出信息增益来构建平衡树的
我们继续看上面那个图,左边的决策树充满了不确定性,因为我可能一直向左搜索需要5次决策,如果我一开始就向右搜索只需要一次。而右图好像不管怎么搜索都是2次。所以决策树的构建过程就是减小不确定性,以最快速度减小不确定性的决策树是我们需要的
为此,我们引出了不确定性的度量方法:信息熵
信息增益( information gain)表示得知特征X的信息而使得类Y的信息的不确定性减少的程度。所以信息增益越大越好,因为我们希望不确定性减小的越快越好。我们挑选水果是不是希望通过少量的关键特征就能快速挑出好水果,谁也不希望通过大量特征一步一步慢慢挑,记不住也没时间。
下面是书上的定义,感兴趣可以看一下,看湿了的可以直接看我后面的笔记
这里H(D)就是没决策之前的信息熵,很容易算出来,关键是这个H(D|A),我们来说道说道
为什么引进?
想想如果一个特征取值范围很多,那么H(D|A)由一系列特征和组成,他的信息增益就会变得比较大了,那决策树就更倾向这种特征了,我们不希望这种事发生。使用信息增益比( information gain ratio)可以对这一问题进行校正。
C4.5就是利用信息增益比来构建决策树
具体构造过程请参阅书本,这里只做一个总结归纳
ID3算法就是基于信息增益来构建,通过计算每个特征的信息增益来选择特征顺序
ID3算法缺点:
C4.5使用信息增益比来作为特征划分方式
这里需要注意,信息增益率对可取值较少的特征有所偏好(分母越小,整体越大),因此 C4.5 并不是直接用增益率最大的特征进行划分,而是使用一个启发式方法:先从候选划分特征中找到信息增益高于平均值的特征,再从中选择增益率最高的。
缺点:
决策树的生成就是递归地构建二叉决策树的过程。对回归树用平方误差最小化准
则,对分类树用基尼指数( Gini index)最小化准则,进行特征选择,生成二叉树。
(1)回归树
基尼指数
因为信息熵存在对数运算,效率较低,由此引入基尼指数来代替信息熵
这部分计算和我们上面的笔记推导类似,只不过稍微换了一下计算方法,这里不再赘述
ID3 和 C4.5 虽然在对训练样本集的学习中可以尽可能多地挖掘信息,但是其生成的决策树分支、规模都比较大,CART 算法的二分法可以简化决策树的规模,提高生成决策树的效率。
剪枝就是防止过拟合,也就是我们不希望决策树过于复杂,太复杂了对于未知的数据预测能力就很差
对过拟合不太理解的同学可以参考下面文章一分钟看懂机器学习过拟合的原因
剪枝分为两种:预剪枝和后剪枝
预剪枝就是在构建决策树的时候进行一些干预,不要它建立得太深。我们一般是通过信息增益比来构建决策树,那么我们可以设置一个阈值,当信息增益比较小小于这个阈值的时候我们就不继续构建更深的决策树了。
比如在C4.5算法中:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ErBEFsod-1584588605168)(/Users/mac/Library/Application Support/typora-user-images/image-20200319101346985.png)]
在已经生成的决策树上进行剪枝,从而得到简化版的剪枝决策树。
C4.5 采用的悲观剪枝方法,用递归的方式从低往上针对每一个非叶子节点,评估用一个最佳叶子节点去代替这个子树是否有益。如果剪枝后与剪枝前相比其错误率是保持或者下降,则这棵子树就可以被替换掉。C4.5 通过训练数据集上的错误分类数量来估算未知样本上的错误率。
后剪枝决策树的欠拟合风险很小,泛化性能往往优于预剪枝决策树。但同时其训练时间会大的多。
参考文章:
【机器学习】决策树(上)——ID3、C4.5、CART(非常详细)