文章目录
1 什么是决策树
1.1 决策树的基本描述
- 决策过程中提出的每个判定问题都是对某个属性的“测试”
- 决策过程的最终结论对应了我们所希望的判定结果
- 每个测试的结果或是导出最终结论,或者导出进一步的判定问题,其考虑范围是在上次决策结果的限定范围之内
- 从根结点到每个叶结点的路径对应了一个判定测试序列
决策树学习的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树
1.2 决策树的组成
决策树由以下几部分组成:
- 决策节点:决策树的起点,代表了整个决策过程的开始。
- 机会节点:机会节点代表一个事件发生的可能性,也就是一个随机事件。
- 决策枝:从决策节点或机会节点出发,代表决策者可以作出的选择或决策。
- 概率枝:从机会节点出发,代表该事件发生的概率。
- 损益值:在决策过程中,每个决策或事件的发生都伴随着一定的成本或收益,这些成本或收益被称为损益值。
- 终点:代表了决策过程的结束,通常以一个方框表示。
在构建决策树时,需要从决策树的末端开始,从后向前逐步推进到决策树的始端。在推进的过程中,需要计算每个阶段事件发生的期望值,并考虑资金的时间价值。最后,通过对决策树进行剪枝,删去除了最高期望值以外的其他所有分枝,找到问题的最佳方案。
1.3 决策树的递归策略
显然,决策树的生成是一个递归过程。在决策树基本算法中,有三种情形会导致递归返回:
- 当前结点包含的样本全属于同一类别,无需划分
- 当前属性集为空或是所有样本在所有属性上取值相同,无法划分
- 当前结点包含的样本集合为空不能划分
在第(2)种情形下,我们把当前结点标记为叶结点,并将其类别设定为该结点所含样本最多的类别; 在第(3)种情形下,同样把当前结点标记为叶结点,但将其类别设定为其父结点所含样本最多的类别.注意这两种情形的处理实质不同: 情形(2)是在利用当前结点的后验分布而情形(3)则是把结点的样本分布作为当前结点的先验分布.
2 划分选择
2.1 信息熵
在决策树的构建过程中,信息熵被用来选择最佳的划分属性。对于每个属性,计算其划分后的信息熵,选择使得信息熵最小的属性作为当前节点的划分属性。这样能够使得划分后的子树更加纯,即类别更加明显,从而降低样本集合的不确定性。
信息熵的公式如下:
假定离散属性
α
\alpha
α有
V
V
V个可能的取值,若使用
α
\alpha
α来对样本集
D
D
D进行划分,则会产生
V
V
V个分支结点,其中
v
v
v第个分支结点包含了
D
D
D中所有在属性
a
a
a上取值为
a
v
a^v
av的样本,记为
D
v
D^v
Dv.我们可根据信息熵计算公式计算出
D
v
D^v
Dv的信息嫡,再考虑到不同的分支结点所包含的样本数不同,给分支结点赋予权重
∣
D
v
∣
∣
D
∣
\frac{|D^v|}{|D|}
∣D∣∣Dv∣,即样本数越多的分支结点的影响越大,于是可计算出用属性
α
\alpha
α对样本集
D
D
D进行划分所获得的“信息增益”(information gain)
2.2 信息增益
为了衡量不同划分方式降低信息熵的效果,还需要计算分类后信息熵的减少值(原系统的信息熵与分类后系统的信息熵之差),该减少值称为熵增益或信息增益,其值越大,说明分类后的系统混乱程度越低,即分类越准确。
信息增益的计算公式如下:
一般而言,信息增益越大,则意味着使用属性a来进行划分所获得的“纯度提升”越大。
对于信息增益,举一个西瓜书上面的例子:
2.3 增益率
实际上,信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好可能带来的不利影响,著名的C4.5决策树算法不直接使用信息增益,而是使用“增益率”(gain ratio)来选择最优划分属性.采用信息增益相同的符号表示,增益率定义为
其中,
优点:属性a的可能取值数目越多 (即 V 越大),则 IV(a) 的值通常就越大。
缺点:对取值数目少的属性有偏好
C4.5 算法中使用启发式: 先从候选划分属性中找出信息增益高于平均水平的,再从中选取增益率最高的。
2.4 基尼指数
决策树模型的建树依据主要用到的是基尼系数的概念。反映了从 D 中随机抽取两个样例,其类别标记不一致的概率。
采用基尼系数进行运算的决策树也称为CART决策树。
基尼系数(gini)用于计算一个系统中的失序现象,即系统的混乱程度(纯度)。基尼系数越高,系统的混乱程度就越高(不纯),建立决策树模型的目的就是降低系统的混乱程度(体高纯度),从而得到合适的数据分类效果。
基尼系数的计算公式如下
基尼系数越低表示系统的混乱程度越低(纯度越高),区分度越高,越适合用于分类预测。
在候选属性集合中,选取那个使划分后基尼指数最小的属性。即:
3 剪枝处理
3.1 预剪枝
从上往下剪枝,通常利用超参数进行剪枝。例如,通过限制树的最大深度(max_depth)便能剪去该最大深度下面的节点。
没有剪枝前:
剪枝后:
3.1.1 预剪枝的优缺点
优点:
- 降低过拟合风险
- 显著减少训练时间和测试时间开销
缺点:
- 欠拟合风险
3.2 后剪枝
从下往上剪枝,大多是根据业务需求剪枝。例如,在违约预测模型中,认为违约概率为45%和50%的两个叶子节点都是高危人群,那么就把这两个叶子节点合并成一个节点。
3.2.1 后剪枝的优缺点
优点:
- 欠拟合风险小
- 泛化性能往往优于预剪枝决策树
缺点:
- 训练时间开销大
4 连续属性处理
4.1 连续属性离散化(二分法)
第一步:
假定连续属性
a
a
a在样本集
D
D
D上出现
n
n
n个不同的取值,从小到大排列,记为
a
1
,
a
2
,
.
.
.
,
a
n
a^1,a^2,...,a^n
a1,a2,...,an,基于划分点
t
t
t,可将
D
D
D分为子集
D
t
−
D^{-}_{t}
Dt−和
D
t
+
D^{+}_{t}
Dt+,其中
D
t
−
D^{-}_{t}
Dt−包含那些在属性
a
a
a上取值不大于
t
t
t的样本,
D
t
+
D^{+}_{t}
Dt+包含那些在属性
a
a
a上取值大于
t
t
t的样本,考虑包含
n
−
1
n-1
n−1个元素的候选划分点集合
即把区间
[
a
i
,
a
i
−
1
)
[a^{i},a^{i-1})
[ai,ai−1)的中位点
a
i
+
a
i
+
1
2
\frac{a^{i}+a^{i+1}}{2}
2ai+ai+1作为候选划分点
第二步:
采用离散属性值方法,考察这些划分点,选取最优的划分点进行样本集合的划分
其中
G
a
i
n
(
D
,
a
,
t
)
Gain(D,a,t)
Gain(D,a,t)是样本集
D
D
D基于划分点
t
t
t二分后的信息增益,于是,就可选择使
G
a
i
n
(
D
,
a
,
t
)
Gain(D,a,t)
Gain(D,a,t)最大化的划分点
5 多变量决策树
单变量决策树分类边界:轴平行
单变量和多变量决策树的区别如下图所示:
成熟的决策树软件包
ID3,C4.5,C5.0
J48