机器学习之决策树模型最优属性选择方法

时间:2024-03-28 17:17:10

决策树模型是用于解决分类问题的一个模型,它的特点是简答、逻辑清晰、可解释性好。

决策树是基于“树”结构进行决策的。

每个“内部结点”对应于某个属性上的“测试”;
每个分支对应于该测试的一种可能结果(也就是该属性的某个取值)
每个“叶子结点”对应于一个“预测结果”
决策树的学习过程:通过对训练样本的分析来确定“划分属性”
决策树预测过程:将预测示例从根结点开始,沿着划分属性所构成的“判定测试序列”往下走,直到叶子结点。

决策树停止生长的三种条件

①当前结点包含的样本集全属于同一类别
②当先属性集为空,或者所有样本在所有属性上的取值相同
③当前结点包含的样本集合为空

同时,这里附上周志华老师《机器学习》西瓜书上的决策树执行流程

机器学习之决策树模型最优属性选择方法

最佳属性选择方法有3类

①根据信息增益ID3判断
②根据信息增益率C4.5判断
③根据CART基尼指数判断

信息增益ID3

在了解信息增益之前呢,我们先提一个概念叫做信息熵:它表示随机变量不确定性的度量。
计算公式如下:
机器学习之决策树模型最优属性选择方法
Pk表示的是当前样本集合D中第k类别的样本占总体样本的比例。
信息增益ID3:信息增益=信息熵-条件熵。信息熵代表的是随机变量的不确定性,条件熵代表在某一个条件下,随机变量的不确定性,而信息增益代表了在一个条件下,信息不确定性减少的程度。计算公式为:
机器学习之决策树模型最优属性选择方法
前边的Ent(D)是总样本集合D的信息熵;
后边的Ent(Dv)是某个属性所对应取值的信息熵,所乘的系数为该属性每个取值的样本占总样本集合D的比例。
例如:周志华老师的《机器学习》中的西瓜数据集
机器学习之决策树模型最优属性选择方法
该数据集有17个训练样本,其中正例(好瓜)有8个,则P1=8/17,反例(坏瓜)有9个,则P2=9/17。
则样本集D的一个信息熵为:
机器学习之决策树模型最优属性选择方法
信息增益:以属性“色泽”为例,它对应的3个数据子集分别为D1(色泽=青绿),D2(色泽=乌黑),D3(色泽=浅白)
D1包含编号为1,4,6,10,13,17的6个样本,其中正例有3个,占P1=3/6,反例有3个,占P2=3/6
D2,D3同理,则属性“色泽”的三个子集的信息熵分别为
机器学习之决策树模型最优属性选择方法
那么,属性“色泽”的信息增益为:
机器学习之决策树模型最优属性选择方法
同理,其他属性的一个信息增益为:机器学习之决策树模型最优属性选择方法
显然“纹理”的信息增益最大,该属性带来的信息不确定性减少的程度最大,所以选这个属性作为划分属性(信息增益相同时,任选其一)。

机器学习之决策树模型最优属性选择方法
然后再对“纹理”属性的三个分支下的每个子集进行如上的划分,最终就会得到一棵决策树(没有剪枝过的决策树)。

信息增益率C4.5

信息增益率是基于信息增益提出来的,因为信息增益在计算的时候,它更偏向于取值过多的某个属性。比如咱们把“编号”也当做是一种属性。那么用它你会得到一棵一层决策树,也就是决策树桩。
机器学习之决策树模型最优属性选择方法
所以肯定没有比“编号”属性的信息增益更大的属性了。那么就可以得到一棵这样的决策树(这里用到了决策树停止生长条件1:当前结点包含的样本全属于同一类别C,那么就把该结点标记为C类叶结点)
机器学习之决策树模型最优属性选择方法
但是这个决策树是不具备泛化能力的,因为测试样本中没有对应于这些编号的样本。
而信息增益率就是为了避免这种情况设计出来的:
机器学习之决策树模型最优属性选择方法
这里呢,我们在计算的时候,先从候选划分属性中找出信息增益高于平均水平的,再从中选取信息增益率最高的,这样会增加我们的计算速度。

基尼指数CART

基尼指数反应了从D中随机抽取两个样例,其类别标记不一样的概率。基尼指数越小,则数据集的纯度越高。
计算公式为:
机器学习之决策树模型最优属性选择方法
基尼指数反应的是从数据集 D 中随机抽取两个样本,他们类别不一样的概率,那么也就是说基尼指数越小,类别不一样的概率就越小,相反类别一样的概率就大,那么其数据集的纯度就越高,对应的特征就越好。为啥纯度越高,特征就越好?举个例子,假如说一个选择题,对应的备选答案有以下两种情况,第一种情况该选择题有四个备选答案,每个备选答案正确的概率 1/4,第二种情况该选择题有两个备选答案,每个备选答案正确的概率是 1/2,那么这两种情况,哪一种做对的概率高呢?肯定是第二种吧,因为第二种情况的不确定性是最低的,不确定性低了,那它的纯度是不是就高了,因为第一种情况备选答案正确的概率都是 1/4,第二种情况备选答案正确的概率是 1/2。 而对应于这里特征的话,纯度越高,不确定性越低,相反确定性就越高,确定性越高,是不是就越有利于我们进行判断啊?当我们拿到一个样本的进行测试时候,肯定是希望能够以最短的步骤去完成这个样本类别的划分。

所以这里我们选择基尼指数最小的属性作为我们的划分属性。

举例:以属性“色泽”为例,有3种取值:分别为青绿(编号为1,4,6,10,13,14)正例3个,反例3个;乌黑(2,3,7,8,9,15)正例4个,反例2个;浅白(5,11,12,14,16)正例1个,反例4个;
机器学习之决策树模型最优属性选择方法
第一个乘数:6/17代表“青绿”的样本占总样本的比例,而3/6代表色泽=青绿时正例和反例占“青绿”样本的比例。
同理,其它属性计算的基尼指数分别为:
机器学习之决策树模型最优属性选择方法
“纹理”基尼指数最小(当基尼指数有多个最小值时,任意取其一),则以属性“纹理”为根结点,完成决策树的第一次生长。
机器学习之决策树模型最优属性选择方法
至此,决策树最优属性选择方法介绍完毕。前剪纸、后剪纸以及控制过拟合我会在下一篇文章中介绍,谢谢大家。