【吃瓜之旅】第四章吃瓜学习

 【吃瓜之旅】本系列是针对datawhale《吃瓜教程-西瓜书和南瓜书》的学习笔记。本次是对西瓜书第四章决策树的个人学习总结。

第四章围绕决策树展开,也是本书第一个系统讲解的机器学习算法,主要介绍了决策树的理论基础,算法递归逻辑。接着对决策树的构成算法详细讲解,从ID3算法入门。接着对于序号类问题导致信息增益过大,平衡这个问题引入C4.5决策树算法,然后在信息熵之外引入基尼指数对决策树权重计算,引入CART决策树。为了提升决策树性能引入了两种剪枝处理方法。针对连续型数据引入连续型决策树处理办法,对数据缺失引入缺失决策树信息增益算法。对于决策树采用单一属性验证复杂问题,引入多变量决策树组合变量求决策树,计算更简便。芜湖,全方位介绍决策树。

目录

第四章:决策树

4.1基本流程

4.2划分选择

4.3剪枝处理

4.4 连续与缺失

4.5 多变量决策树

第四章:决策树

4.1基本流程

理论依据

【吃瓜之旅】第四章吃瓜学习_第1张图片【吃瓜之旅】第四章吃瓜学习_第2张图片

【吃瓜之旅】第四章吃瓜学习_第3张图片【吃瓜之旅】第四章吃瓜学习_第4张图片 

 决策树主要依托为信息论中自信息、条件熵、信息熵、信息增益,对每个计算空间D中计算每个属性a的Gain(D,a)信息增益 。信息增益越大说明数据属性的纯度越大。有了信息增益的基础就可以搭建属于某个数据集的ID3决策树了。

【吃瓜之旅】第四章吃瓜学习_第5张图片

核心算法如上图所示。        

4.2划分选择

根据信息增益计算公式及决策树算法计算出决策树,多说无益。直接吃瓜!

【吃瓜之旅】第四章吃瓜学习_第6张图片

 在2.0数据集中计算每个属性的信息增益,以色泽为例:

【吃瓜之旅】第四章吃瓜学习_第7张图片

【吃瓜之旅】第四章吃瓜学习_第8张图片 得到纹理的信息增益最大,最为根节点。接着对纹理下的节点计算。【吃瓜之旅】第四章吃瓜学习_第9张图片

 这里也涵盖了一点,就是增益一致时可以任选其中之一。

这里还有一个问题,如果“编号”这种属性也在里面怎么办?也就是纯度很大,每种出现次数都较少的变量其实对判断“西瓜好坏”的意义并不大,如何弱化这种变量给我们带来的影响呢?

【吃瓜之旅】第四章吃瓜学习_第10张图片

 这里就引入C4.5决策树算法,在计算出信息增益后除以增益率,可以有效减少“编号”这种问题。不过相反,对于样本量较少的属性,这样的增益率是不利的。所以这里的信息增益用的地方也有一个建议:

 除了用信息增益外,还有采用基尼指数区分纯度:【吃瓜之旅】第四章吃瓜学习_第11张图片

【吃瓜之旅】第四章吃瓜学习_第12张图片

【吃瓜之旅】第四章吃瓜学习_第13张图片 通过红框标出的,也就是随机抽取两个样本的差异率求和后即为基尼指数,试想随便拿两个如果都不一样那说明纯度也是比较低的属性了。使用基尼指数构建的CART决策树也有一个特点,就是这个树只构建二叉树。因为数据集划分的情况为a=μ或a≠μ。比较特殊,在这里简单记录。

4.3剪枝处理

剪枝处理就是在得到的决策树未必适合数据集,也许有些叶节点,子节点的存在会影响最终对真实数据的准确性的判断。也许有些节点并不那么重要,所以需要修修剪剪。

以下标为我们的数据集:

【吃瓜之旅】第四章吃瓜学习_第14张图片

原始的决策树如图所示:

【吃瓜之旅】第四章吃瓜学习_第15张图片

 介绍两种剪枝方法:

【吃瓜之旅】第四章吃瓜学习_第16张图片

 预剪枝:

【吃瓜之旅】第四章吃瓜学习_第17张图片

【吃瓜之旅】第四章吃瓜学习_第18张图片

【吃瓜之旅】第四章吃瓜学习_第19张图片

 预剪枝计算方法如上,对每个节点先计算原始树在验证集的准确率,然后再把这个节点当做“好瓜”进行计算,对比。书上也说明了,这种方法很可能导致欠拟合……终极白给。比如这个树桩子,求了半天就剩个树桩。太惨了。不过也有好处,就是你可以生成一个节点测一个节点的,时间复杂度较低。

后剪枝

【吃瓜之旅】第四章吃瓜学习_第20张图片

 思路和预剪枝差不多,只不过这个是整棵树算完后。自底向上。

缺点就是计算量太复杂,要算一遍树后再从下算起。

4.4 连续与缺失

 首先是数据连续。对于离散变量,我们之前讨论过。如果是连续变量呢?该如何处理?

【吃瓜之旅】第四章吃瓜学习_第21张图片

 【吃瓜之旅】第四章吃瓜学习_第22张图片

 即如上式,对数据进行二分。得到的Gain就是我们的离散型变量的信息增益。这里说一下,我理解应该是对所有的离散值求了Gain,然后得到最大的……这个计算量也不小。【吃瓜之旅】第四章吃瓜学习_第23张图片

 例如密度和属性。【吃瓜之旅】第四章吃瓜学习_第24张图片

 这里强调一下  密度小于0.381这个条件还可以往下拆。可以看到连续型确实比较麻烦。

接着说缺失值问题,有的时候数据集补全。需要采用如下处理办法。【吃瓜之旅】第四章吃瓜学习_第25张图片

【吃瓜之旅】第四章吃瓜学习_第26张图片 通过对确实率、无缺失中k类占比、无缺失中r数量在类别中的占比对信息增益调整。

4.5 多变量决策树

 【吃瓜之旅】第四章吃瓜学习_第27张图片

 就是通过条件会出现类似下图的区域为决策树标记区域。【吃瓜之旅】第四章吃瓜学习_第28张图片

 想要处理这种决策树,期望将下图决策树边界 变成        【吃瓜之旅】第四章吃瓜学习_第29张图片

 【吃瓜之旅】第四章吃瓜学习_第30张图片

 线段组成的边界。如何实现呢?引入多变量决策树。【吃瓜之旅】第四章吃瓜学习_第31张图片

 学到这里决策树就暂时和我说再见啦,后续会更加努力!坚持下去~

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