ID3
决策树关键问题:如何选择特征进行分支
ID3算法思想:选择信息增益最大的属性作为当前的特征对数据集进行分类。
信息熵(Information Entropy):信息的不确定性程度,变量的不确定性越大,熵的值越大;随机变量不确定性的度量叫熵。一个变量X,它可能的取值有n多种,分别是x1,x2,……,xn,每一种取到的概率分别是P1,P2,……,Pn,那么X的熵就定义为
Entropy(X)=H(X)=−∑mi=1pilog(pi)
E
n
t
r
o
p
y
(
X
)
=
H
(
X
)
=
−
∑
i
=
1
m
p
i
l
o
g
(
p
i
)
知乎:信息熵是什么?
信息增益(Information Gain): 在一个条件下,信息不确定性减少的程度;信息增益=信息熵 - 条件熵
Gain(D,A)=g(D,A)=H(D)−H(D|A)
G
a
i
n
(
D
,
A
)
=
g
(
D
,
A
)
=
H
(
D
)
−
H
(
D
|
A
)
其中a是有V个不同取值的离散特征,使用特征a对样本集D进行划分会产生V个分支.
条件熵:已知随机变量X的条件下随机变量Y的不确定性
H(Y|X)=∑x∈Xp(x)H(Y|X=x)
H
(
Y
|
X
)
=
∑
x
∈
X
p
(
x
)
H
(
Y
|
X
=
x
)
通俗理解决策树算法中的信息增益
https://blog.csdn.net/u011327333/article/details/51167952
ID3算法构建决策树存在的问题:
- 不能处理连续特征
- 用信息增益作为标准容易偏向于取值较多的特征
- 缺失值处理的问
- 过拟合问题
C4.5
信息增益比(Information Gain Ratio): 信息增益
g(D,A)
g
(
D
,
A
)
与训练集D关于特征A的值的熵
HA(D)
H
A
(
D
)
之比:
gR(D,A)=g(D,A)HA(D)
g
R
(
D
,
A
)
=
g
(
D
,
A
)
H
A
(
D
)
C4.5生成算法与ID3的不同之处:使用信息增益比来选择特征
C4.5算法构建决策树存在的问题:
- 由于决策树算法非常容易过拟合,因此对于生成的决策树必须要进行剪枝.->
预剪枝
,后剪枝
- C4.5生成的是多叉树,即一个父节点可以有多个节点
- C4.5只能用于分类
- C4.5由于使用了熵模型,里面有大量的耗时的对数运算,如果是连续值还有大量的排序运算
https://mp.weixin.qq.com/s/EZY3l73aSAA88o-8zJp3ww
决策树剪枝
决策树学习的损失函数:
Cα(T)=∑|T|t=1NtHt(T)+α|T|
C
α
(
T
)
=
∑
t
=
1
|
T
|
N
t
H
t
(
T
)
+
α
|
T
|
使损失函数最小,可动态规划实现。
预剪枝:决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶节点。有欠拟合风险
后剪枝:先从训练集生成一颗完整的决策树,然后自底向上地对非叶节点进行考察,若将该节点对应的子树替换为叶节点能提升决策树的泛化性能,则将该子树减去。训练时间开销大
CART
基尼指数:
Gini(D)=1−∑|y|k=1p2k
G
i
n
i
(
D
)
=
1
−
∑
k
=
1
|
y
|
p
k
2
属性a的基尼指数定义为: