决策树由一个根节点、若干个内部节点和叶节点构成,其中,叶节点对应决策结果,其他节点(根节点、内部节点)对应属性判断规则。决策树本质上是一层一层地根据条件递归做判断。
决策树既可以应用于分类任务,也可用于回归任务,具体是用于分类任务还是回归任务,主要取决于目标变量的连续性。如果目标变量为离散变量,则为分类;如果目标变量为连续变量,则为回归。
由于对应决策过程易于可视化、可同时应用于分类和回归任务、可处理大规模数据集等优点,决策树至今仍是监督式学习中应用最广泛的模型之一。
决策树究竟是如何做判断的呢?
案例
已知100个人的身高、体重,并且知道其中有60名男性、40名女性。先需要根据词数据集构造决策树,用于仅根据身高和体重两个属性判断是每个人的性别。
根据男女身高和体重的额差异,可能会问这个人的身高是否超过170cm或者体重是否超过60kg。根据上述过程,可以绘制如下图所示的决策树。其中,图1先根据身高判断,图2先根据体重判断。
以上两种判断过程,哪一种更合理呢?也就是按什么样的特征顺序进行划分,才能找到最纯净的划分(叶节点)?这就是决策树原理中最重要的一个方面:特征属性的重要性,即找出最能区别样本数据集的属性,作为优先判断条件,从而提高决策树的纯度。
01 树的纯度与特征属性重要性
目前,用于衡量树的纯度的方法有三种,纯度的的相反面是不纯度,不纯度越低,即纯度越高。下面是衡量决策树(不)纯度的三种算法。
(1) ID3算法:使用信息增益作为分裂规则;
(2) C4.5算法:使用信息增益率作为分类规则;
(3) CART算法:使用基尼系数作为分裂规则。
●
1. ID3算法:熵、信息增益
介绍信息增益之前,首先介绍一下熵的概念,这是一个物理学概念,表示“一个系统的混乱程度”。熵越小,系统的不确定性越低,纯度越高。
表示样本集合D中第i类样本所占的比例,那么这个集合的熵表示为:
一种分类下整体的熵:
,其中k表示整体最终要分类的个数
特征属性A的熵:
,其中V表示特征属性A取值的个数
特征A的信息增益:
,其中V表示特征属性A取值的个数
在上述案例中,
A. 先按身高分类:
按身高分类整体的熵为:
身高的熵为:
身高的信息增益为:
B. 先按体重分类
根据公式可得,体重的信息增益为0.10241。
身高的信息增益大于体重的信息增益,所以首先应按身高划分,将身高作为根节点。由于此例中只有两个属性,故不再需要比较其他属性的信息增益。
如果有多个属性,则在确定根节点以后,将根节点的分类结果作为整体分类结果,根据同样的算法比较其他属性的信息增益,挑选信息增益最大的属性作为第二个划分的节点。
●2. C4.5算法(信息增益率)
在ID3算法中,显然属性的取值越多,信息增益越大。为了避免属性取值个数的影响, C4.5算法从候选划分中找出信息增益高于平均水平的属性,再从中选出信息增益率(用信息增益除以该属性本身的固有值Intrinsic value)最高的分类作为分裂规则。
为了克服属性本身取值增多造成信息增益增大的缺陷,引入属性本身固有值:
在上述案例中:
身高特征本身固有值为
身高特征的信息增益率为
体重特征的信息增益率为
根据信息增益率判断,身高仍然作为最重要的划分属性。由于身高和体重两个特征的取值个数相等,且本例中属性固有值在数值上刚好相等,故根据信息增益率的判断结果与根据信息增益的判断结果是相同的。
●3. 基尼系数
CART(Classification and Regression Tree)算法使用基尼系数作为分裂规则,选择Gini系数减少最快的分裂规则,最小化不纯度。CART算法既可以用分类任务,也可用于回归任务。
数据集D的基尼系数Gini(D)反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率,因此Gini(D)越小,则数据集D的纯度越高。
特征属性a的基尼系数定义为
在上述案例中,数据集D的基尼系数为:
身高的基尼系数为:
体重的基尼系数为:
根据基尼系数最小原则,将身高作为根节点属性(这与根据信息增益得到的结论相同)。
决策树主要优缺点:
优点:
1. 可同时用于分类和回归任务,且可以处理多分类问题;
2. 不需要归一化,减少了数据预处理工作;
3. 自动筛选变量,容易解释和可视化决策过程;
4. 适合处理高维度数据。
缺点:
1. 不稳定,泛化性能差;
2. 没有考虑变量之间的相关性,每次筛选都只考虑一个变量;
3. 只能线性分割数据;
4. 本质上是贪婪算法(可能找不到最优的树)。
02 控制树的深度(剪枝)
根据决策树的原理,如果把每一个样本编号,那么将编号作为一个属性,则每个个体都可以独自分为一类,这样本质上相当于没有分类,也不能泛化到其他数据集,也就是常说的过拟合。
为了防止过拟合,需要控制决策树的广度与深度,即对决策树进行剪枝。
剪枝可分为预剪枝和后剪枝:
预剪枝,在对每一个节点包含的样本进行分类前,比较分类前后的测试集预测的精确率(precision=TP/TP+FP,即正确预测为正与全部预测为正的比率)。
预剪枝的优缺点:
优点:使得决策树的部分分支没有展开,降低了过拟合的风险,节省了训练时间;缺点:有可能出现欠拟合。
后剪枝,在完全构建成一个决策树后,在从叶节点开始,从下往上判断是否需要剪掉叶节点,将原来的内部节点变为叶节点。判断的基础仍然为测试集预测的精确率。
后剪枝的优缺点:
优点:欠拟合风险很小,泛化性能也较高;
缺点:训练时间比预剪枝长。
经过特征重要性选择和树的剪枝,我们基本可以得到一颗效果不错的决策树了。但一颗决策树虽然易于可视化和讲给老板和同事听,但准确度并不一定是最高的。为了提高决策树的精确度,可以用多棵树共同判断,即随机森林。
关于随机森林的原理,下期见!