决策树
1. 概述
决策树就是一棵树,一个有终止模块的流程图,终点就是分类的结果。
一般来说决策树学习由三个步骤组成:特征选择、决策树构建、决策树修剪。
1.1 优点
- 计算复杂度不高
- 输出结果易于理解
- 对中间值的缺失不敏感
- 可以处理不相关特征数据
1.2 缺点
- 可能产生过度匹配的问题
1.3 数据适用范围
数值型与标称型数据
2. 经验熵与信息增益
决策树学习的关键在于如何选择最优的划分属性,所谓的最优划分属性,对于二元分类而言,就是尽量使划分的样本属于同一类别,即“纯度”最高的属性。那么如何来度量特征(features)的纯度,这时候就要用到“经验熵(information entropy)”。
2.1 经验熵
先来看看信息熵的定义:假如当前样本集
D
D
D中第
k
k
k类样本所占的比例为
p
i
(
k
=
1
,
2
,
3
,
⋅
⋅
⋅
,
∣
I
∣
)
p_i(k=1,2,3,···,|I|)
pi(k=1,2,3,⋅⋅⋅,∣I∣)为类别的总数(对于二元分类来说,
i
=
2
i=2
i=2)。则样本集的信息熵为:
p
k
=
∣
C
k
∣
D
p_k=\frac{|C_k|}{D}
pk=D∣Ck∣
H ( D ) = − ∑ k = 1 K p k l o g 2 p k H(D)=-\sum_{k=1}^Kp_klog_2p_k H(D)=−k=1∑Kpklog2pk
H
(
D
)
=
−
∑
k
=
1
K
∣
C
k
∣
∣
D
∣
l
o
g
2
∣
C
k
∣
∣
D
∣
H(D)=-\sum_{k=1}^K\frac{|C_k|}{|D|}log_2\frac{|C_k|}{|D|}
H(D)=−k=1∑K∣D∣∣Ck∣log2∣D∣∣Ck∣
H
(
D
)
H(D)
H(D)的值越小,则D的纯度越高。
反应了信息增益的一个缺点:该属性能取得值越多,信息增益,越偏向这个
2.2 信息增益
信息增益就是划分数据集前后,信息发生的变化称为信息增益。
- 输入:训练数据集 D D D和特征 A A A;
- 输出:特征 A A A对训练数据 D D D的信息增益 g ( D , A ) g(D,A) g(D,A)
信息增益表示了得知特征X的信息而使得类Y的信息的不确定性性减少的程度。
2.2.1 经验条件熵
计算特征
A
A
A对数据集
D
D
D的经验条件熵
H
(
D
∣
A
)
H(D|A)
H(D∣A)
H
(
D
∣
A
)
=
∑
i
=
1
n
∣
D
i
∣
∣
D
∣
H
(
D
i
)
H(D|A)=\sum_{i=1}^n\frac{|D_i|}{|D|}H(D_i)
H(D∣A)=i=1∑n∣D∣∣Di∣H(Di)
= − ∑ i = 1 n ∣ D i ∣ ∣ D ∣ ∑ k = 1 K ∣ D i k ∣ ∣ D i ∣ l o g 2 ∣ D i k ∣ ∣ D i ∣ =-\sum_{i=1}^n\frac{|D_i|}{|D|}\sum_{k=1}^K\frac{|D_{ik}|}{|D_i|}log_2\frac{|D_{ik}|}{|D_i|} =−i=1∑n∣D∣∣Di∣k=1∑K∣Di∣∣Dik∣log2∣Di∣∣Dik∣
- D i k D_{ik} Dik的意思是在某一特征下的特征样本中满足训练目标的个数
- D i D_i Di指的是该特征的样本容量
2.2.2 信息增益计算与信息增益比
信息增益=经验熵-经验条件熵
g
(
D
,
A
)
=
H
(
D
)
−
H
(
D
∣
A
)
g(D,A)=H(D)-H(D|A)
g(D,A)=H(D)−H(D∣A)
一般而言,信息增益越大,则表示使用特征 对数据集划分所获得的“纯度提升”越大。所以信息增益可以用于决策树划分属性的选择,其实就是选择信息增益最大的属性,ID3算法就是采用的信息增益来划分属性。
信息增益比
信息增益比
g
R
(
D
,
A
)
g_R(D,A)
gR(D,A)为信息增益
g
(
D
,
A
)
g(D,A)
g(D,A)与训练数据集
D
D
D关于特征
A
A
A的值熵
H
A
(
D
)
H_A(D)
HA(D)值之比:
g
R
(
D
,
A
)
=
g
(
D
,
A
)
H
A
(
D
)
g_R(D,A)=\frac{g(D,A)}{H_A(D)}
gR(D,A)=HA(D)g(D,A)
其中:
H
A
(
D
)
=
−
∑
i
=
1
n
∣
D
i
∣
∣
D
∣
l
o
g
2
∣
D
i
∣
∣
D
∣
H_A(D)=-\sum_{i=1}^n\frac{|D_i|}{|D|}log_2\frac{|D_i|}{|D|}
HA(D)=−i=1∑n∣D∣∣Di∣log2∣D∣∣Di∣
n
n
n是特征
A
A
A取值的个数。