(周志华)读书笔记 -- 第四章 决策树

4.1 基本流程

决策树是什么?要想解决这个问题,首先要弄明白的就是计算机中的树是什么。树,我们在计算机中很常见了,有二叉树,哈夫曼树等等,总结一下共同点的时候就是,对一个当前节点而言,下一个个节点有多个节点可以选择的结构。简单的说就是有分叉的结构就是树(可能这样说也不严谨)。而决策树就是利用了这种分叉来判断的树。如图就是一个决策树:

(周志华)读书笔记 -- 第四章 决策树_第1张图片

一个决策树包含了一个根节点,若干个内部节点和若干个叶节点。这个还是比较容易理解的,用伪代码描述生成树的过程貌似也没啥:

(周志华)读书笔记 -- 第四章 决策树_第2张图片

4.2划分选择

决策树简单,但是他的关键点在与选择划分的属性。这样的话,我们对于属性的选择就有了一个判定标准。

4.2.1 信息增益

(周志华)读书笔记 -- 第四章 决策树_第3张图片

这里的定义是否很熟悉呢?就是化学中的熵值一样嘛,熵来代表秩序程度大小,熵越大越不规律嘛。自然界中都是熵增原则,而我们最求的确是熵小,毕竟这是以人的意志来改变世界嘛。

这里计算属性a对样本集D的信息增益:

(周志华)读书笔记 -- 第四章 决策树_第4张图片

在这里,信息增益越大,说明熵减少的越多,也就是越有序嘛(经过划分,同一类的越近)。这样就可以找到最优的属性。

4.2.2 增益率

现在有一个极端的例子,给每个样本进行编号,然后按照编号弄一个决策树可不可以呢?答案当然是不可以。因为每个编号都是一类,这样无疑是最准确的,但是有一个问题就是泛化能力远远不够啊。这样做了是毫无意义的。因此我们用增益率来防止这个事情的发生:

(周志华)读书笔记 -- 第四章 决策树_第5张图片

这里需要注意的是,占有率可能对取值数目较少的属性有所偏好,因此我们先从候选属性中找到信息增益高于平均水平的属性,然后再从里面选取增益率最高的。

4.2.3 基尼指数

著名的CART决策树使用“基尼指数”来划分属性。

(周志华)读书笔记 -- 第四章 决策树_第6张图片

简单的说,就是随机抓出来两个样本,这两个样本不是同一类的概率。因此也是越小越好。同样也要对每一个属性a进行计算:

(周志华)读书笔记 -- 第四章 决策树_第7张图片

4.3 剪枝处理

剪枝也是为了能够使训练的结果不过拟合。在决策树学习生成的过程中,有可能因为分支过多,把数据自身的特征当成了这一类的特征。当数据改成了测试集的时候结果肯定不怎么好了。

剪枝又分为预剪枝和后剪枝两种,简单的说,预剪枝就是在分支个数的时候就先判断一下是否要进行分支。后剪枝就是在生成决策树以后再由底向上的判断之歌分支是否需要保留。一般来说、后剪枝的效果好,但是花费的时间要多。

4.4 连续与缺失值

连续属性的离散化技术在此时派上了用场:

(周志华)读书笔记 -- 第四章 决策树_第8张图片

然后我们就可以像考察汗离散属性一样考察这些值了,这样对之前的公式做一点变化:

(周志华)读书笔记 -- 第四章 决策树_第9张图片





你可能感兴趣的:(机器学习,读书)