西瓜书(4.1-4.3)关于决策树

今天整理一下关于西瓜书中决策树的基础内容,今天只写了4.1-4.3,后面还有4.4连续与缺失值,4.5多变量决策树改日有时间再写,考试在即。。。。

基本流程

决策树是一种常见的机器学习方法,这种算法可以看作是一系列的判断过程,比如在西瓜问题中,我们提出一个问题“一个西瓜是否是好瓜?”,接下来我们会对它进行一系列的判断,比如说“他的根蒂是什么形态?”,“他敲起来是什么声音?”,最终我们会得到一个结果。


一般情况下,一颗决策树包含一个根节点,若干个内部节点,,和若干个叶节点,每个节点对应于一种属性测试,测试结果就是将数据划分到两个子节点中,下面三种情况会导致节点无法再次分割,(1)当前节点中包含的都是同一类的样本,所以不能继续分割(2)当前属性集为空,或者所有样本的所有属性都一样无法再分割(3)当前样本集合为空无法分割

划分选择

决策树面临最重要的一个问题就是如何来选择属性来划分,也就是为什么你首先用根蒂来划分数据集,然后用敲声继续划分?如果我直接用敲声先来划分可以吗?

这里面是存在数学计算的,我们怎么来选择呢?就是依靠的是信息增益

信息增益

什么是信息增益呢?首先我们应该了解一种度量方法叫做信息熵,信息熵是度量集合纯度的一种常用指标,我们把它叫做Ent(D),计算公式如下


信息熵

表示当前集合中标签为k的样例在当前集合中占比为Pk,那什么是信息增益呢?
既然是增益,那么肯定有东西是变化的,这个东西就是我们的特征,在加入我们的特征前后熵的变化就叫做是信息增益,信息增益计算公式如下,其中v表示特征可以取得的值。


信息增益

既然信息熵是表示我们集合纯度大小的一个度量单位,那么信息增益显然时表示增加这个特征划分前后的信息熵大小变化。(注意:计算一个集合中的信息熵是不用注意特征取值,只用关心集合中不同标签的样例所占比例即可,之后特征取得另一个值之后再次计算信息熵,最终求和,注意系数),一般而言信息熵越大,说明使用当前属性划分的“纯度提升”越大,著名的ID3算法就是用信息增益来选择特征进行划分。


信息增益率

上面所述的算法有一个缺陷,就是当你的特征可取值比较多的时候更加容易选到你,不是该特征可以有效地分割样本,为了克服这个问题,我们又有了ID4.5算法,其中的特征选择方法不再是依靠信息增益而是依靠信息增益率。


增益率

其中的IV表示,我们可以看出来,对于取值比较多的特征,我们计算时候要将他与IV相除,这个IV在特征取值逐渐增多的时候是逐渐变大的,这也就可以限制了Gain_ratio的值在特征取值多的时候也可以维持在正常范围。



但是需要注意的是,ID4.5算法是比较偏向于特征取值数量较小的特征,所以我们最终选择了一个启发式:先从候选划分属性之中找出信息增益在平均值之上的特征,然后再计算特征计算增益率。

基尼指数

还有一种树算法叫做CART(Classification and Regression Tree),这种树算法现在用的比较多,在一些集成算法中之中用的就是改进过的CART树算法,那么这种算法有什么优点呢?首先我们可以发现上面两种算法中都有一个共同的特点给,每次都需要进行log运算,在大量计算情况下是一种十分耗时的计算过程,而CART中采用的是Gini系数来衡量集合纯度


Gini系数

Gini系数表示的就是从集合中选出两个样例,计算他们不属于同一种标签的概率。
假设现在特征a的取值一共有V种情况,那么对于特征a的Gini系数为



意思表示对于每个特征取值我们都计算一边Gini系数然后×这个特征取值所占的比例,最后相加即可,这种情况大大减少了计算机的计算量。

剪枝处理

几乎所有的机器学习算法都会涉及那两个问题关于“过拟合”以及“欠拟合”,决策树算法也是不例外的,他所采取的措施是进行“剪枝”,关于剪枝同样有两种情况,一种是“预剪枝”,还有一种是“后剪枝”,两种剪枝策略不管是使用时间或者原理都是大不相同的,“预剪枝”表示的在进行剪枝之前,算法首先计算剪枝前后在验证集上的表现如何,如果剪枝可以带来在验证集上的正确率提升,那么就进行剪枝,如果不能带来提升就不进行剪枝。有些人会感到疑惑,这样会不会增加计算机的计算开销呢?因为如果需要进行分支的话,那么既需要进行分支还要进行计算,但是我们应该想到的是这次分支之后他可能还会有多次分支,如果我们计算出来不需要分支那么后面的分支我们都不用进行了,所以均衡考虑来说是一种减少了运算量的行为。那么关于“后剪枝”呢?“后剪枝”顾名思义,意思就是我们的树形成之后再对树进行优化,具体方法如下:等待树形成之后,从低端向上非叶节点开始排查,把每一个非叶节点替换成叶节点之后进行验证集上的测试,看看是否是更好的表现,来决定是否将该节点变为叶节点


预剪枝
后剪枝

你可能感兴趣的:(西瓜书(4.1-4.3)关于决策树)