决策树可以将决策过程形象化成一棵树,在每个分岔处做出判断,前往下一个分岔,直至最终的叶子节点。
1、ID3决策树
ID3决策树是以信息增益为准则来划分属性。
假设当前样本集合D,其中第k类 (这里的类,是我们拿到一个新样本要去判断属于哪个类,比如拿到一个西瓜去判断属于好瓜还是坏瓜,这里k=1,2) 样本所占的比例为pk,则D的信息熵定义为:
Ent(D)=−k=1∑pklog2pk
假定离散属性a有V个可能的取值{a1,...,aV},若使用a来对样本集合进行划分,其中第v个分支节点包含了D中所有在属性a上取值为av的样本,这些样本集合记为Dv。则我们可以得到每个属性对应的样本集合的信息熵Ent(Dv),共有V个。考虑到不同的分支节点所包含的样本数量不同,给予分支节点不同的权重∣Dv∣/∣D∣,即各个样本集合与总样本集合的数量之比。即样本数越多的分支结点的影响越大,于是可以计算出属性a对样本集D进行划分所获得的信息增益:
Gain(D,a)=Ent(D)−v=1∑V∣D∣∣Dv∣Ent(Dv)
若有m个属性 a∗ ,则计算得到m个属性对应的m个信息增益。我们选择信息增益最大值对应的属性a来进行划分。
则构建ID3决策树的流程:
- 计算Ent(D)
- 计算 V 个属性的信息增益,选择信息增益最大的属性来做划分。例如该属性有3种取值,则会得到D1,D2,D3。
- 计算 Ent(Di),for i = 1,2,3.
- 计算V−1个属性的信息增益,选择信息增益最大的属性来做划分。
- 重复上述流程,直至某个属性下只包含一种类别。
2、C4.5决策树
信息增益准则对于可取值数目多的属性有所偏好,为减少这种偏好可能带来的不利影响,C4.5决策树改用增益率来选择最优划分属性。增益率定义为:
Gain_ratio(D,a)=IV(a)Gain(D,a),
IV(a)=−v=1∑V∣D∣∣Dv∣log2∣D∣∣Dv∣.
第二个式子称为属性a的固有值。a的取值越多,IV(a)的值通常越大。所以C4.5算法可能会偏向于可取值较少的属性。
3、CART决策树
CART决策树使用基尼系数来选择划分属性,数据集D的纯度可用基尼值来度量:
Gini(D)=k=1∑k′=k∑pkpk′=1−k=1∑pk2
Gini(D)反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率大小。因此Gini(D)越小,则数据集的纯度越高。
属性a的基尼指数定义为:
Gini_index(D,a)=v=1∑V∣D∣∣Dv∣Gini(Dv).
我们在候选属性集合中,选择使得划分后基尼指数最小的属性作为最优划分属性。
4、剪枝处理——处理过拟合
为了防止决策树分支过多导致过拟合。可以主动去掉一些分支来降低过拟合风险。
4.1、预剪枝
首先将一部分数据分为训练数据,剩下的数据分为测试数据。
在每一步进行属性划分时,用测试数据比较分类后的准确率是增加了还是减少了,如果增加了就进行划分,如果没有增加(减少或者不变)就不进行划分。
4.2、后剪枝
后剪枝先要生成一棵完整的决策树。从最末端的节点开始,比较去除该节点与不去除该节点决策树整体的准确率是上升还是下降,如果上升就去除该结点,如果不上升(下降或者不变)就不删除该结点。然后依次往上判断是否删除某个结点。
5、连续与缺失值
5.1、连续值处理
给定样本集D和连续属性a,假定a在D上出现了n个不同的取值,将这些值从小到大排序,记为{a1,...,an}.基于划分点t可以将D分为Dt−和Dt+。考察包含n−1个元素的候选划分点集合
Ta={2ai+ai+1∣1≤i≤n−1∣},
然后我们像考虑离散属性一样来考察这些划分点,选取最优的划分点进行样本集合划分:
Gain(D,a)=t∈TamaxGain(D,a,t)=t∈TamaxEnt(D)−λ∈{−,+}∑∣D∣∣Dtλ∣Ent(Dtλ)
其中Gain(D,a,t)是样本集D基于划分点t二分后的信息增益。得到该连续属性a的信息增益后,继续计算剩下属性的信息增益,按照ID3决策树的流程正常进行。不过,连续属性可以作为其后代结点的划分属性。
5.2、缺失值处理
给定样本集D和连续属性a,令D表示D中在属性a中没有缺失值的样本子集,假定我们为每个样本x赋予一个权重wx,并定义
ρ=∑x∈Dwx∑x∈Dwx,
pk=∑x∈Dwx∑x∈Dkwx,
rv=∑x∈Dwx∑x∈Dvwx,
基于上述定义,我们将信息增益的计算式推广为:
Gain(D,a)=ρ×Gain(D,a)=ρ×(Ent(D)−v=1∑VrvEnt(Dv))
若样本x在属性a上的取值已知,则将其划入与其取值对应的子节点上,且样本全职在子节点中保持为wx。若样本x在划分属性a上的取值未知,则将x同时划入所有子节点,且样本权值在与属性值av对应的子结点中调整为rv⋅wx。直观的看,就是让同一个样本以不同的概率划分到不同的子结点中去。
6、多变量决策树
在此类决策树中,非叶结点不再是仅对某个属性,而是对属性的线性组合进行测试,即每个非叶结点是一个形如∑i=1dwiai=t的线性分类器,其中wi是属性ai的权重。