决策树是一种很常用也是很有效的分类和回归方法,属于有监督的学习,且决策树是基于树结构来进行决策的。
为了产生一棵泛化能力强,即处理未见示例能力强的决策树。其基本流程遵循简单且直观的”分而治之“策略。
决策树算法的基本过程:
ID3、C4.5和CART决策树算法,后面会对这三大决策树的算法进行介绍。
由决策树学习基本算法可看出,决策树学习的关键是第8行,即如何选择最优划分属性.一般而言,随着划分过程不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的“纯度”越来越高.。
为了找到最优划分属性,所以我们在这里首先引入三个概念:
我们要理解这三个概念的话,首先要明白什么是信息熵。
熵在信息论中是度量样本集合纯度最常用的一种指标,由香农提出来的。
熵越大,数据的不确定性越高,数据越混乱;
熵越小,数据的不确定性越低,数据越趋向于集中统一。
假定当前样本集合D中第k类样本所占的比例为 p k ( k = 1 , 2 , … , ∣ y ∣ ) p_k(k=1,2,…,|y|) pk(k=1,2,…,∣y∣),则D的信息熵定义为:
E n t ( D ) = − ∑ k = 1 ∣ y ∣ p k log 2 p k . 公 式 ( 1 ) Ent(D) = -\sum_{k=1}^{|y|}p_k \log_2p_k. \qquad公式(1) Ent(D)=−k=1∑∣y∣pklog2pk.公式(1)
Ent(D)的值越小,则D程度越高。
注:
计算信息熵时我们约定:若 p = 0 p=0 p=0, p log 2 p = 0 p\log_2p=0 plog2p=0。
Ent(D)的最小值为0,最大值为 log 2 ∣ y ∣ \log_2| y | log2∣y∣。
假定离散属性a有V个可能的取值 { a 1 , a 2 . . . , a V } {\{a^1,a^2...,a^V\}} {a1,a2...,aV},若使用a来对样本集 D D D进行划分。
令 D v D^v Dv为第v个分支结点包含了 D D D中所有在属性a.上取值为 a v a^v av的样本;
E n t ( D v ) Ent(D^v) Ent(Dv)表示 D v D^v Dv的信息熵;
又考虑到不同的分支结点所包含的样本数不同,给分支结点赋予权重 ∣ D v ∣ / ∣ D ∣ |D^v|/|D| ∣Dv∣/∣D∣,即样本数越多的分支结点的影响越大。
于是可计算出用属性a对样本 D D D进行划分所获得的“信息增益”。
G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ E n t ( D v ) . 公 式 ( 2 ) Gain(D,a)=Ent(D)- \sum_{v=1}^{V}\frac{|D^v|}{|D|}Ent(D^v). \qquad公式(2) Gain(D,a)=Ent(D)−v=1∑V∣D∣∣Dv∣Ent(Dv).公式(2)
一般而言,信息增益越大,则意味着使用属性a来进行划分所获得的“纯度提升”越大。
因此,我们可用信息增益来进行决策树的划分属性选择,即在图1算法第8行选择属性 a ∗ = a r g m a x G a i n ( D , a ) , a ∈ A a_* = arg max \quad Gain(D,a) ,a∈A a∗=argmaxGain(D,a),a∈A。著名的ID3决策树学习算法就是以信息增益为准则来选择划分属性。
实际上,信息增益准则对取值数目较多的属性有所偏好,为减少这种偏好带来的不利影响。著名的C4.5算法不直接使用信息增益,而是使用增益率(gain ratio)来进行划分属性划分。
采用与式(2)相同的符号表示,增益率定义为:
G a i n _ r a t i o ( D , a ) = G a i n ( D , a ) I V ( a ) . 公 式 ( 3 ) Gain\_ratio(D,a)=\frac{Gain(D,a)}{IV(a)}. \qquad公式(3) Gain_ratio(D,a)=IV(a)Gain(D,a).公式(3)
其中:
I V ( a ) = − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ log 2 ∣ D v ∣ ∣ D ∣ . 公 式 ( 4 ) IV(a)=- \sum_{v=1}^{V}\frac{|D^v|}{|D|}\log_2\frac{|D^v|}{|D|}. \qquad公式(4) IV(a)=−v=1∑V∣D∣∣Dv∣log2∣D∣∣Dv∣.公式(4)
称为属性a的“固有值”(intrinsic value)。
属性a的可能取值数目越多(即 V V V越大),则 I V ( a ) IV(a) IV(a)的值通常会越大。
但需注意的是,增益率准则对可取值数目较少的属性有所偏好。
因此,C4.5算法也并不是直接选择增益率最大的候选划分属性,而是使用了一个启发式:
采用与式(1)相同的符号,数据集D的纯度可用基尼值来度量:
G i n i ( D ) = ∑ k = 1 ∣ y ∣ ∑ k ′ ≠ k p k p k ′ . 公 式 ( 5 ) Gini(D)=\sum_{k=1}^{|y|}\sum_{k' \neq k}p_kp_k'. \qquad公式(5) Gini(D)=k=1∑∣y∣k′=k∑pkpk′.公式(5)
直观来说, G i n i ( D ) Gini(D) Gini(D)反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率。
因此, G i n i ( D ) Gini(D) Gini(D)越小,则数据集D的纯度越高。
采用与式(2)相同的符号表示,属性a的基尼指数定义为:
G i n i _ i n d e x ( D , a ) = ∑ v = 1 V ∣ D v ∣ ∣ D ∣ G i n i ( D v ) . 公 式 ( 6 ) Gini\_index(D,a)= \sum_{v=1}^{V}\frac{|D^v|}{|D|}Gini(D^v). \qquad公式(6) Gini_index(D,a)=v=1∑V∣D∣∣Dv∣Gini(Dv).公式(6)
于是,我们在候选属性集合A中,选择那个使得划分后基尼指数最小的属性作为最优划分属性,即 a ∗ = a r g m i n G i n i i n d e x ( D , a ) , a ∈ A a* = arg min Gini index(D, a),a∈A a∗=argminGiniindex(D,a),a∈A.
CART决策树使用“基尼指数”(Gini index)来选择划分属性。
公式编辑:LaTeX。LaTeX数学公式编辑
参考文献:
<机器学习> 周志华 著。(强烈推荐这本书,开卷必有所得)
本博文参考内容自周志华老师的《机器学习》,虽有部分自己的思考和对书中内容的扩展或注解、但大部分表述及截图均来自此书。博主理解能力有限,可能无法将书中真正的精髓展示给读者。想获取更多机器学习决策树的知识,大家可以购一本周老师的《机器学习》,开卷必有所得。