一、决策树
- 决策树(Desicision Tree)是一种基本的分类与回归方法。决策树呈现树形结构,它可以认为是if-then规则的集合,可以认为是定义在特征空间与类空间上的条件概率分布。
- 学习时,利用训练数据,根据损失函数最小化的原则建立决策树模型
- 预测时,对新的数据利用决策树模型进行分类。
- 决策树学习通常包括3个步骤:
· 特征选择
· 决策树的生成
· 决策树的修剪 - 决策树的算法主要包括三大算法:
· Quin 1986年提出的ID3.0算法
· Quin 1993年提出的C4.5算法
· Breiman等人 1984年提出的CART算法
下面将分别介绍这三大算法。
1.1 ID3算法
1.1.1 ID3决策树算法的过程
· ID3算法的核心是在决策树各个结点上应用信息增益准则选择特征,递归地构建决策树。
- 具体方法是:
· 从根结点(root node)开始,对结点计算所有可能的特征的信息增益,选择信息增益 最 大 最大 最大的特征作为结点的特征,由该特征的不同取值建立子结点;
· 再对子结点递归地调用以上方法,构建决策树;
· 直到所有特征的信息增益均很小或没有特征可以选择为止,最后得到一个决策树。
· ID3相当于用 极 大 似 然 法 极大似然法 极大似然法进行概率选择模型。
ID3.0算法的优缺点
以上ID3.0算法生成树的过程,涉及到核心准则就是信息增益,那么什么是信息增益呢?
1.1.2 信息增益
- 定义:特征A对训练数据集
D
D
D的信息增益
g
(
D
,
A
)
g(D,A)
g(D,A),定义为集合
D
D
D的经验熵
H
(
D
)
H(D)
H(D)与特征
A
A
A给定条件下
D
D
D的经验条件熵
H
(
D
∣
A
)
H(D|A)
H(D∣A)之差,即
g ( D , A ) = H ( D ) − H ( D , A ) g(D,A) = H(D)-H(D,A) g(D,A)=H(D)−H(D,A) - 一般的,熵 H ( Y ) H(Y) H(Y)与条件熵 H ( Y ∣ X ) H(Y|X) H(Y∣X)之差称为互信息(mutual information)
- 决策树学习中的信息增益等价于训练数据集中类与特征的互信息。
- 那么什么是熵与条件熵呢
熵
· 在信息论与概率统计中,熵(entropy)是表示随机变量不确定性的度量。设
X
X
X是一个取有限个值得离散随机变量,其概率分布为
P
(
X
=
X
i
)
=
p
i
,
i
=
1
,
2
,
.
.
.
,
n
P(X=X_i)=p_i, i = 1,2,...,n
P(X=Xi)=pi,i=1,2,...,n
· 则随机变量X的熵的定义为
H
(
X
)
=
−
∑
i
=
1
n
p
i
l
o
g
p
i
H(X) = -\sum^{n}_{i=1}p_ilogp_i
H(X)=−i=1∑npilogpi
- 若 p i = 0 p_i=0 pi=0,则定义 0 l o g 0 = 0 0log0=0 0log0=0. 通常,对数以2为底或以e为底(自然对数)。
- 熵只依赖于 X X X的分不,而与 X X X的取值无关。
- 熵值越大,其分布的不确定性就越大。
- 有句话说的好,自然界所有的事物都是一个熵增的过程。【由有序转化为无序】
- 当 p = 0.5 p=0.5 p=0.5时,熵取值最大,随机变量的不确定性最大。
条件熵
- 设有随机变量 ( X , Y ) (X,Y) (X,Y),其联合概率分布为 P ( X = x i , Y = y j ) = p i j , i = 1 , 2 , . . . , n ; j = 1 , 2 , . . . , m P(X=x_i,Y=y_j)=p_{ij } , i = 1,2,...,n; j = 1,2,...,m P(X=xi,Y=yj)=pij,i=1,2,...,n;j=1,2,...,m
- 条件熵 H ( Y ∣ X ) H(Y|X) H(Y∣X)表示在已知随机变量 X X X的条件下随机变量 Y Y Y的不确定性。
- 随机变量 X X X给定的条件下随机变量 Y Y Y的条件熵(conditional entropy) H ( Y ∣ X ) H(Y|X) H(Y∣X),定义为 X X X给定条件下 Y Y Y的条件概率分布的熵对 X X X的数学期望 H ( Y ∣ X ) = ∑ i = 1 n p i H ( Y ∣ X = x i ) H(Y|X)=\sum^{n}_{i=1}p_iH(Y|X=x_i) H(Y∣X)=i=1∑npiH(Y∣X=xi)
- 这里 p i = P ( X = x i ) , i = 1 , 2 , . . . , n p_i = P(X=x_i), i=1,2,...,n pi=P(X=xi),i=1,2,...,n
- 当熵和条件熵的概率由数据估计(特别是极大似然估计)得到时,所对应的熵与条件熵分别称为经验熵(empirical entropy)和经验条件熵(empirical conditional entropy)。
- 信息增益 information gain表示得知特征 X X X的信息而使得类Y的信息的不确定性减少的程度。
信息增益算法
- ∑ k = 1 k ∣ C k ∣ = ∣ D ∣ \sum^{k}_{k=1}|C_k|=|D| k=1∑k∣Ck∣=∣D∣
- 类 ∣ C k ∣ |C_k| ∣Ck∣相加等于 ∣ D ∣ |D| ∣D∣
- 特征 A A A的取值累加 ∣ D i ∣ |D_i| ∣Di∣为 ∣ D ∣ |D| ∣D∣
-
∑
i
=
1
n
∣
D
i
∣
=
∣
D
∣
\sum^{n}_{i=1}|D_i|=|D|
i=1∑n∣Di∣=∣D∣
1、计算数据集 D D D的经验熵 H ( D ) H(D) H(D)
2、计算特征 A A A对数据集 D D D的经验条件熵 H ( D ∣ A ) H(D|A) H(D∣A)
3、计算信息增益
4、计算信息增益比
信息增益比:特征 A A A对训练数据集 D D D的信息增益比 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)=g(D,A)/H_A(D) gR(D,A)=g(D,A)/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^{n}_{i=1}{\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取值的个数
案例计算
计算信息增益
计算信息增益比
1.2 C4.5算法
基于信息增益比来计算结点【树结构】
- 信息增益比的计算过程在ID3.0算法中有提到,基于信息增益的计算过程。
1.3 CART
分类与回归树(Classification and Regression Tree,CART)是应用广泛的决策树学习方法。
二
叉
树
二叉树
二叉树
1.3.1 回归决策树生成
回归树的简单计算过程,可参考该链接
https://mp.weixin.qq.com/s/k8jj4meb3DKYCGUzaOGDAg
1.3.2 分类树的生成【基尼指数最小】
-
基尼指数越大,样本集合的不确定性越大,这一点与熵值一样。
- CART回归树的计算过程
-
由于CART生成的是二叉树,所以特征选择时,只有是与否两种选择
-
G i n i ( D , A 1 = 1 ) Gini(D,A_1=1) Gini(D,A1=1)分为是青年,不是青年
-
G i n i ( D , A 1 = 2 ) Gini(D,A_1=2) Gini(D,A1=2)分为是中年,不是中年
-
G i n i ( D , A 1 = 3 ) Gini(D,A_1=3) Gini(D,A1=3)分为是老年,不是老年
-
CART分类树的生成决策树的过程和ID3的决策树生成过程一样。
参考文献:
[1]李航.统计学习方法
[2]决策树计算:https://mp.weixin.qq.com/s/k8jj4meb3DKYCGUzaOGDAg