第4章:决策树
划分选择
决策树中,最关键的是判断选择一个什么样的标准来划分样本来区分正负样本。也就是说我们希望划分后的样本尽量一致。下面将介绍如何描述一个样本集合中样本尽量一致的量化概念。
信息增益
信息熵:假设样本集合D中第k类元素所占比例为\(p_k\),则D的信息熵为:
当\(Ent(D)\)越小,则表示D越一致。
信息增益
信息增益:假设离散属性a有v中不同的取值\(\{a^1, a^2, ..,a^v\}\), 若使用a来对样本集D进行划分,则会产生v个分支。其中第v个分支包含了D中所有在属性a上取值为\(a^v\)的样本,记作\(D^v\)。则信息增益为:
当信息增益越大,则说明使用a属性划分获得的纯度提升越大。
增益率
实际上,信息增益对属性可取值数目较多的属性有所偏好,为减少这种偏好可能带来的不良影响。就提出了增益率。
增益率:
其中\(IV(a)\)是a的固有属性,当属性a的取值数量越大,则\(IV(a)\)的值也大,则\(IV(a)\)起着归一化的作用。同时,当属性a的取值数量少,则\(IV(a)\)就很小,则对其有放大作用。则说明增益率对属性a的取值数量少的属性有偏好作用。
基尼系数
假如数据集D中随机抽样两个样本,其类别标记不一致的概率,如果概率越小,则说明数据集D的纯度越高。这就是基尼系数的大概思想。
基尼系数:
举一个简单的例子,一个样本数量为150的样本集合,样本种类为3,其中每种样本数量为50。则基尼系数计算如下:
若样本按照属性a进行划分,则属性a的基尼系数为:
在属性选择时,我们只需要选择基尼系数最小的属性,按照这个思路来进行划分。
决策树的生成流程
上面介绍了划分选择,划分选择解决了选择哪一个属性进行划分后让整体的样本集合变得更加纯洁。那么决策树的构造如图:
![image-20230218170309654](https://img2023.cnblogs.com/blog/1445856/202302/1445856-20230218170313368-1210939913.png)
决策树主要是构造一个递归树的过程,如果了解地归树,就很容易理解这个过程。
剪枝处理
剪枝的基本策略有预剪枝和后剪枝。
预剪枝:指在决策树生成的过程中,对每个节点在划分前后进行评估,若当前节点的划分不能解决树泛化性能提升时,就停止划分将该节点为叶子节点。
后剪枝:先从数据集生成一个完整的决策树,然后使用验证集对每个分支节点计算泛化性能,如果对某个分支节点替换为叶子节点,泛化性能提高了,则将其替换为叶子节点。
连续和缺失值
上面的内容主要是样本的属性都为离散值的决策树,在实际任务中样本的属性可以是连续值。我们只需要对连续属性进行离散化即可。
- 二分法
给定样本集D和连续属性a,假定a在D中出现了n个不同的取值,对属性值进行大小排序,然后下去选取t为划分标准,则将样本集D划分为\(D_{-}=\{b_i| b_i=0, if\ a_i < t\}, D_{+}=\{b_i| b_i=1, if\ a_i \leq t\}\)则将连续属性a转化为离散属性b
- 区间法
给定样本集D和连续属性a,其中令k划分区间的数量,则将样本集合D划分为\(D_i=\{b_i|b_i=\left \lfloor \frac{a_i-min({a_0, a_1, ..,a_n})}{k} \right \rfloor \}\)