李航_统计学习_决策树
决策树学习算法
特征选择
信息增益
定义为:集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差,即
g(D,A) = H(D) - H(D|A)
信息增益比
定义为 :信息增益g(D,A)与训练数据集D的经验熵 H(D)之比
g
R
(
D
,
A
)
g_R(D,A)
gR(D,A) = g(D,A) / H(D)
决策树的生成
ID3
在决策树的各个节点上应用信息增益准则选择特征
C4.5
在决策树的各个节点上应用信息增益比准则选择特征
问题
决策树生成算法递归的产生决策树,对训练数据的分类很明确,但是对未知的数据的分类却没有那么准确,也就是会产生过拟合现象
解决方案
决策树的剪枝
极小化决策树整体的损失函数
C
α
(
T
)
C_α(T)
Cα(T) = C(T) + α|T|
C(T) : 表示模型对数据的拟合程度
|T| : 模型的复杂度
α :平衡拟合程度和复杂度
算法步骤
1)计算每个节点的经验熵
2)递归的从树的叶节点网上缩
设一组叶节点回缩到其父节点之前与之后的整体树分别为
T
B
T_B
TB和
T
A
T_A
TA,其对应的损失函数8值分别为
C
α
(
T
B
)
C_α(T_B)
Cα(TB)和
C
α
(
T
A
)
C_α(T_A)
Cα(TA),若
C
α
(
T
A
)
C_α(T_A)
Cα(TA) <
C
α
(
T
B
)
C_α(T_B)
Cα(TB)
则进行剪枝,即将父节点变为新的叶节点
3)返回2),直至不能继续为止,得到损失函数最小的子树
T
α
T_α
Tα
CART(分类与回归树)
决策树的生成
基于训练集生成决策树,决策树尽可能大
回归树的生成
采用平方差最小化准则,进行特征选择
分类书的生成
采用基尼指数最小化准则,进行特征选择
决策树的剪枝
基于验证集对已生成的树进行剪枝并选择最优子树,这是使用损失函数最小(比如:平方误差或者基尼指数)作为剪枝的标准
剪枝,形成一个子树序列
计算子树的损失函数
C
α
(
T
)
C_α(T)
Cα(T) = C(T) + α|T|
具体:
从整体树
T
0
T_0
T0开始剪枝,对
T
0
T_0
T0的任意内部节点t,以t为单节点树的损失函数是
C
α
(
T
)
C_α(T)
Cα(T) = C(t) + α
以t为根节点的子树
T
t
T_t
Tt的损失函数是
C
α
(
T
t
)
C_α(T_t)
Cα(Tt) = C(T_t) + α|T_t|
当α =0 及α充分小时,
C
α
(
T
t
)
C_α(T_t)
Cα(Tt) <
C
α
(
t
)
C_α(t)
Cα(t)
当α 增大时,在某一α有
C
α
(
T
t
)
C_α(T_t)
Cα(Tt) =
C
α
(
t
)
C_α(t)
Cα(t)
当α再增大时,只要α = (C(t) -
C
(
T
t
)
C(T_t)
C(Tt))/ (|T| - 1),
T
t
T_t
Tt与t有相同的损失函数值,而t的节点少,所以t比
T
t
T_t
Tt更可取,对
T
t
T_t
Tt剪枝,为此对
T
0
T_0
T0中每一内部节点t, 计算
g(t) = (C(t) -
C
(
T
t
)
C(T_t)
C(Tt))/ (|T| - 1)
表示剪枝后整体损失函数减少的成都,在
T
0
T_0
T0中减去g(t)最小的
T
t
T_t
Tt,将得到的子树作为
T
1
T_1
T1,
T
1
T_1
T1为区间$[α _1,α _2)的最优子树。
如此剪枝下去,直到得到根节点,在这一过程中,不断增加α 值,产生新的区间
在剪枝得到的子树序列 T 0 , T 1 , . . . , T n T_0,T_1,...,T_n T0,T1,...,Tn 中通过交叉验证选取最优子树 T α T_α Tα
补充
决策树的生成对应模型的局部选择(局部最优),决策树的剪枝对应于模型的全局选择(全局最优)
文献
李航_统计学习_决策树