【读书笔记】周志华 机器学习 第四章 决策树

1 基本流程

决策树
如上图所示,决策树中包含两类节点,一类是内部结点(包括根结点),一类是叶子结点。内部结点表示决策条件,叶结点表示决策结果。构建决策树的伪代码如下。
决策树流程
递归三要素:
参数设置:输入训练集D和属性集A,输出决策树根结点;
终止条件
(1)若当前结点的样本属于同一类 C i C_i Ci,无需继续划分,将当前结点标记为叶结点,输出类别 C i C_i Ci
(2)若当前结点属性集为空,或者所有样本属性值相同,无法继续划分,将当前结点标记为叶结点,将当前结点所含样本最多的类别作为输出;这是利用当前结点的后验分布 P ( C i ∣ D ) P(C_i| D) P(CiD)
(3)若当前结点样本集合为空,无法继续划分,将当前结点标记为叶结点,将当前节点的父结点所含样本最多的类别作为输出;这是利用父结点的样本分布作为自己的先验分布 P ( C i ) P(C_i) P(Ci)
单层逻辑:选择最优划分属性,将D划分为子集,将新的子集和属性集作为新的输入,递归;

2 划分选择

决策树学习的关键是选择最优划分属性,划分属性选择的越好,决策树性能越好。我们希望结点划分之后,子结点包含的样本都属于同一类别,即子结点的纯度越来越高。下面介绍三种算法,他们的主要区别是对纯度的定义不同。

2.1 ID3与信息增益

定义信息熵: E n t ( D ) = − ∑ k = 1 ∣ Y ∣ p k l o g 2 p k Ent(D) = - \sum\limits_{k = 1}^{|Y|}p_klog_2p_k Ent(D)=k=1Ypklog2pk p k p_k pk表示第k类样本所占的比例;
在信息论中,信息熵表示信息的不确定性,信息熵越小,不确定性越小,纯度就越高;
定义信息增益 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\limits_{v = 1}^{|V|}\frac{|D^v|}{|D|}Ent(|D^v|) Gain(D,a)=Ent(D)v=1VDDvEnt(Dv);表示选择属性a进行划分之后,不确定性减少的程度,也即纯度提高的程度。信息增益越大,划分属性a提高的纯度越多。ID3算法每次将信息增益最大的属性a作为划分属性

2.2 C4.5与增益率

信息增益准测会对可取值数目较多的属性有偏好。a1属性有5个取值,a2属性有2个取值,信息增益会更偏好选择a1,仅仅是因为其可取值数目多而并非其最优。
为了减少可取值数目带来的影响,定义 I V ( a ) = − ∑ v = 1 ∣ V ∣ ∣ D v ∣ ∣ D ∣ l o g 2 ∣ D v ∣ ∣ D ∣ IV(a) = - \sum\limits_{v = 1}^{|V|}\frac{|D^v|}{|D|}log_2\frac{|D^v|}{|D|} IV(a)=v=1VDDvlog2DDv,属性a的可取值越多,IV(a)就越大。
定义增益率 G a i n r a t i o ( D , a ) = G a i n ( D , a ) I V ( a ) Gain_ratio(D, a) = \frac{Gain(D, a)}{IV(a)} Gainratio(D,a)=IV(a)Gain(D,a)C4.5算法每次将增益率最大的属性a作为划分属性,可在一定程度上减少可取值数目带来的不利影响。

2.3 CART与基尼指数

定义基尼指数 G i n i ( D ) = ∑ k = 1 ∣ Y ∣ ∑ k ′ ! = k p k p k ′ Gini(D) = \sum\limits_{k = 1}^{|Y|}\sum\limits_{k' != k}p_kp_{k'} Gini(D)=k=1Yk!=kpkpk,表示从数据集D中抽取两个样本,两个样本类别不一致的概率。基尼指数越小,不一致的概率越小,D纯度越高。
定义属性a的基尼指数$Gini_index(D, a) = ∑ v = 1 ∣ V ∣ ∣ D v ∣ D G i n i ( D v ) \sum\limits_{v = 1}^{|V|}\frac{|D^v|}{D}Gini(D^v) v=1VDDvGini(Dv),表示选择属性a划分之后数据集的基尼指数。** CART算法每次选择基尼指数最小的属性a作为划分属性**。

3 剪枝处理

剪枝处理是决策树避免过拟合的一种手段。剪枝处理可分为预剪枝后剪枝

3.1 预剪枝

预剪枝是在决策树生成过程中,对一个结点进行判断,如果对该结点划分可以提高决策树泛化能力,则进行划分;如若不能,则将该结点设为叶结点。决策树泛化能力是通过决策树在验证集上的表现来衡量。预剪枝在决策树生成时减少了许多分支的生成,减小了时间开销;但是有的后序划分可能会提高泛化能力的分支没有展开,可能会导致模型欠拟合。

3.2 后剪枝

后剪枝是在决策树生成之后,从下到上进行判断,如果该结点为叶结点可以提高泛化能力,则将该结点变为叶结点。后剪枝欠拟合风险较小。泛化能力较好,但是时间开销较大。

4 连续值与缺失值

4.1 连续值处理

当属性是连续值时,它的可选值是无限的。属性是离散值时,可选值是有限的。如连续属性密度,可选值是任意实数,离散属性有无房产,可选择是有或者无。对于连续属性,使用离散化,将无限可选值化为有限可选值。如连续属性密度,离散化为密度是否小于 a i a^i ai,可选值只有小于和不小于。
若连续属性a在D中出现的值为 a 1 , a 2 , . . . , a n a^1, a^2, ..., a^n a1,a2,...,an,则可以将其离散化为a是否小于 a 1 + a 2 2 \frac {{a^1}+{ a^2}}{2} 2a1+a2, a 2 + a 3 2 \frac {a^2+ a^3}{2} 2a2+a3, … , a n − 1 + a n 2 \frac {a^{n - 1} + a^n}{2} 2an1+an

4.2 缺失值处理

当样本的某些属性值缺失的时候,需要解决两个问题:
(1)如何在属性值缺失的情况下进行属性划分;
(2)给定划分属性,如果样本在该属性上值缺失,该如何划分样本;
对于数据集D和属性a,第一个问题,使用D中属性a不缺失值的样本进行属性划分;第二个问题,划分之后,将属性a缺值的样本以不同概率划分到所有子结点中。具体过程参见周志华机器学习4.4节内容。

5 多变量决策树

多变量决策树和上面说的决策树有什么不同?上面的决策树都是单变量的,对于内部结点,根据 w a i + b = 0 wa_i + b = 0 wai+b=0进行划分。这样划分出来的是直线划分,为了实现斜划分以及更复杂的划分,对于内部结点,需根据 ∑ w i a i + b = 0 \sum w_ia_i + b = 0 wiai+b=0 进行划分。多变量决策树的生成过程不是寻找最优划分属性进行划分,而是学习参数w和b。
多变量决策树

6 参考文献

周志华 机器学习 清华大学出版社
谢文睿、秦州 机器学习公式详解 人民邮电出版社
部分图片源自网络,如有侵权联系删除

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值