【学习内容:西瓜书与南瓜书:第四章–决策树】
【一、决策树的定义】
决策树是一个树结构,使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。主要包含:
(1)根节点:包含全部样本集,也是一个特征;
(2)内部节点:表示特征空间中的一个特征;
(3)叶节点:即是决策的结果;
【二、决策树学习基本算法】
决策树学习的目的是为了产生一颗泛化能力强,即处理未见示例能力强的决策树,即遇到特征判断能快速准确地判断出来。
递归返回三种情况:
(1)当前结点包含的样本全属于同一类别,无需划分;
(2)当前属性集为空,或是所有样本在所有属性上取值相同,无法划分类别;
(3)当前结点含的样本集合为空,不能划分;
关键点:如何选择最优划分属性—>样本尽可能属于同一类别,即纯度越来越高。
【三、划分选择】
信息熵:自信心的期望值,用于度量随机变量X的不确定性,值越大代表越不确定。
E
n
t
(
D
)
=
−
∑
k
=
1
∣
y
∣
p
k
log
2
p
k
Ent\left ( D \right ) =-\sum_{k=1}^{\left | y \right | } p_{k} \log_{2}{p_{k}}
Ent(D)=−k=1∑∣y∣pklog2pk
条件熵:
Y的信息熵关于概率分布X的期望,在已知X的分布后Y的不确定性
H
(
Y
∣
X
)
=
∑
x
p
(
x
)
H
(
Y
∣
X
=
x
)
H\left ( Y\mid X \right ) =\sum_{x}^{}p\left ( x \right ) H\left ( Y\mid X=x \right )
H(Y∣X)=x∑p(x)H(Y∣X=x)
具体地
∑
v
=
1
V
∣
D
v
∣
∣
D
∣
E
n
t
(
D
v
)
\sum_{v=1}^{V } \frac{\left | D^{v} \right | }{\left | D \right | } Ent\left ( D^{v} \right )
v=1∑V∣D∣∣Dv∣Ent(Dv)
信息增益:
G
a
i
n
(
D
,
a
)
=
E
n
t
(
D
)
−
∑
v
=
1
V
∣
D
v
∣
∣
D
∣
E
n
t
(
D
v
)
Gain\left ( D,a \right ) =Ent\left ( D \right ) -\sum_{v=1}^{V } \frac{\left | D^{v} \right | }{\left | D \right | } Ent\left ( D^{v} \right )
Gain(D,a)=Ent(D)−v=1∑V∣D∣∣Dv∣Ent(Dv)
ID3决策树
以信息增益为准则来选择划分属性。
a
∗
=
a
r
g
max
a
∈
A
G
a
i
n
(
D
,
a
)
a_{*}=arg \max_{a\in A} Gain\left ( D,a \right )
a∗=arga∈AmaxGain(D,a)
C4.5决策树
ID3决策树存在的问题:可取数值数量太少的属性带来不利影响。
因此选择使用“增益率”代替“信息增益”:
G
a
i
n
_
r
a
t
o
p
(
D
,
a
)
=
G
a
i
n
(
D
,
a
)
I
V
(
a
)
Gain\_ratop\left ( D,a \right ) =\frac{Gain\left ( D,a \right ) }{IV\left ( a \right ) }
Gain_ratop(D,a)=IV(a)Gain(D,a)
其中,
I
V
(
a
)
=
−
∑
v
=
1
V
∣
D
v
∣
∣
D
∣
log
2
∣
D
v
∣
∣
D
∣
IV\left ( a \right )= -\sum_{v=1}^{V } \frac{\left | D^{v} \right | }{\left | D \right | } \log_{2}\frac{\left | D^{v} \right | }{\left | D \right | }
IV(a)=−v=1∑V∣D∣∣Dv∣log2∣D∣∣Dv∣
称为属性的“固有值”,a的可能取值个数越大,通常其固有值
I
V
(
a
)
IV\left ( a \right )
IV(a)也越大。
CART决策树
基尼值:从样本集合D中随机抽取两个样本,其类别标记不一致的概率。因此,基尼值越小,碰到异类的概率就越小,纯度自然就越高,具体值为:
G
i
n
i
(
D
)
=
∑
k
=
1
∣
y
∣
∑
k
′
≠
k
p
k
p
k
′
Gini\left ( D \right ) =\sum_{k=1}^{\left | y \right | } \sum_{k^{'}\ne k }^{} p_{k} p_{k^{'}}
Gini(D)=k=1∑∣y∣k′=k∑pkpk′
基尼指数:
Gini
_
index
(
D
,
a
)
=
∑
v
=
1
V
∣
D
v
∣
∣
D
∣
Gini
(
D
v
)
\operatorname{Gini}\_\operatorname{index}(D, a)=\sum_{v=1}^{V} \frac{\left|D^{v}\right|}{|D|} \operatorname{Gini}\left(D^{v}\right)
Gini_index(D,a)=v=1∑V∣D∣∣Dv∣Gini(Dv)
CART决策树:选择基尼指数最小的属性作为最优划分属性,生成二叉树
a
∗
=
a
r
g
min
a
∈
A
G
i
n
i
_
i
n
d
e
x
(
D
,
a
)
a_{*}=arg \min_{a\in A} Gini\_index\left ( D,a \right )
a∗=arga∈AminGini_index(D,a)
实际构造过程:
(1)对每个属性a的每个可能取值v,将数据集D分成两份,分别是a=v和a≠v,计算基尼指数,
(2)选择基尼指数最小的属性及其对应取值作为最优划分属性和最优划分点;
(3)重复以上两步,直至满足停止条件。
参考资料与文献
1、周志华. 机器学习[M]. 北京:清华大学出版社,2016.
2、谢文睿 秦州 贾彬彬 . 机器学习公式详解 第 2 版[M]. 人民邮电出版社,2023
3、感谢Datawhale小组所做的贡献,本次学习主要参考视频:。