周志华《机器学习》笔记(第4章) 决策树

第四章 决策树
1.总述

决策树基于树结构进行决策,叶结点对应于决策结果,其他每个结点对应于一个属性测试。每个结点包含的样本集合根据属性测试的结果被划分到子结点中。最终目的是产生一个泛化能力强,能够处理未知样本的决策树。基本流程遵循简单而直观的分而治之。
在这里插入图片描述
决策树基本算法如下:
因为树的生成是递归的,递归算法中很重要的一点就是终止条件,即什么时候达到了叶结点(无法再更细分)就停止递归。
递归的停止条件有如下三种:

1.当前结点包含的样本全属于同一类别,无需划分。
2.当前的属性集为空,或者是当前的样本在属性集合上的值完全相同,无需划分。–标记为叶结点,并将其类别设定为结点所含样本最多的类别。
3.当前结点包含的样本集合为空,不能划分。–标记为叶结点,并将其类别设定为父结点所含样本最多的类别 情况23处理的实质不同:情形二利用当前结点的后验分布,情形三则是把父结点的样本分布作为当前结点的先验分布。

在这里插入图片描述
该算法的关键实际上是,每次该如何选择最优属性。书上后续章节则是对该问题的介绍。

2.划分选择

一般而言,随着划分过程的不断进行,决策树的分支结点所包含的样本尽量属于同一类别,即结点的“纯度”越高越好。

2.1信息增益

“信息熵”是度量样本集合纯度最常用的指标。

假定当前样本集合D中第k类样本所占的比例为 p k ( k = 1 , 2 , . . . , ∣ Y ∣ ) p_k(k=1,2,...,|\mathcal{Y}|) pkk=1,2,...,Y),则D的信息熵定义为
E n t ( D ) = − ∑ k = 1 ∣ Y ∣ p k log ⁡ 2 p k Ent(D) = -\sum_{k=1}^{\\|\mathcal{Y}\\|}p_k\log_2p_k Ent(D)=k=1Ypklog2pk
该值越小,表示D的纯度越高,极限情况,假如当前集合D中所有样本都属于同一类,则该值为0,在信息论中我们用熵来衡量信息的不确定性。

假定离散属性a有V个可能的取值 { a 1 , a 2 , . . . , a V } \{a^1,a^2,...,a^V\} {a1,a2,...,aV},若使用a来对样本集D进行划分,则会产生V个分支结点,其中第v个分支结点包含了D中所有在属性a上取值为 a v a^v av的样本集合,记为 D v D^v Dv
G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ E n t ( D v ) Gain(D,a) = Ent(D) - \sum_{v=1}^{V}\frac{|D^v|}{|D|}Ent(D^v) Gain(D,a)=Ent(D)v=1VDDvEnt(Dv)
因此我们可以通过计算划分前后的信息熵,选择信息增益大的那些属性进行决策选择。

例如著名的ID3(iterative Dichotomiser)决策树学习算法就是以信息增益为准则来选择划分属性。

信息增益准则的缺点:对可取值数目较多的属性有所偏好。

2.2 增益率

改进:使用增益率。
G a i n _ r a t i o = G a i n ( D , a ) I V ( a ) Gain\_ratio = \frac{Gain(D,a)}{IV(a)} Gain_ratio=IV(a)Gain(D,a)
其中IV(a)是属性a的固有值。通常来说,取值数目越大的属性,IV值越大。
I V ( a ) = − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ l o g 2 ∣ D v ∣ ∣ D ∣ IV(a) = -\sum_{v=1}^{V} \frac{|D^v|}{|D|}log_2\frac{|D^v|}{|D|} IV(a)=v=1VDDvlog2DDv

增益率准则对可取值数目较少的属性有所偏好。C4.5因此没有直接采用增益率,而是采用了一个启发式,先从候选划分属性中找出信息增益高于平均水平的属性,在从中选择增益率最高的。

2.3基尼指数

CART(Classifacation and regression tree,分类和回归树),一种著名的决策树学习算法,分类和回归任务都可用。使用基尼指数来选择划分属性,数据集D的纯度可以用基尼值来衡量。

直观含义:从数据集D中随机抽取两个样本,其类别标记不一致的概率。基尼指数越小,表示数据集D的纯度越高。
G i n i ( D ) = ∑ k = 1 Y ∑ k ′ ≠ k p k p k ′ = 1 − ∑ k = 1 Y p k 2 Gini(D) = \sum_{k=1}^{\mathcal{Y}}\sum_{k^{'}\neq k}p_k p_k^{'} \\ = 1 - \sum_{k=1}^{\mathcal{Y}}p_k^2 Gini(D)=k=1Yk=kpkpk=1k=1Ypk2
属性a的基尼指数定义为:
G i n i _ i n d e x ( D , a ) = ∑ v = 1 V ∣ D v ∣ ∣ D ∣ G i n i ( D v ) Gini\_index(D, a) = \sum_{v=1}^{V}\frac{|D^v|}{|D|}Gini(D^v) Gini_index(D,a)=v=1VDDvGini(Dv)
选择划分后基尼指数最小的属性作为最优划分属性。

3.剪枝处理

首先要对数据集划分成训练集和验证集。

预剪枝:在生成树的过程中,在根据属性分支之前,先对该结点进行判断,如果当前结点的划分不能带来决策树泛化性能(验证集准确度)的提升,则将当前结点划分成叶结点。

后剪枝:自底向上地对非叶结点进行考察,如果该结点对应的子树替换为叶结点能带来决策树泛化性能的提升,则将该子树替换为叶结点。优点:欠拟合风险小,保留更多的分支,时间开销增加。

仅有一层的决策树,也被称为决策树桩。

4.连续值和缺失值的处理
4.1连续值的处理

西瓜的属性诸如:颜色、根蒂等都是离散值,而重量、密度等是连续值。在决策树中如何处理连续值?

连续属性离散化技术

C4.5:采用二分法对连续属性进行处理

4.2 缺失值的处理

需要解决的问题:
(1)如何在属性值缺失的情况下,进行划分属性选择?
(2)进行划分属性选择以后,若在该属性上的值缺失,如何对样本进行划分?

在属性值缺失的情况下,为每个样本赋予一个权重。

请添加图片描述请添加图片描述
请添加图片描述

5 多变量决策树

决策树所形成的分类边界有一个明显的特点:轴平行,即它的分类边界由若干个与坐标轴平行的分段组成。
多变量决策树,就是能实现“斜划分”甚至更复杂划分的决策树。非叶结点是对属性的线性组合进行测试。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值