一、基本流程
西瓜问题的一颗决策树:
二、划分选择
决策树学习的关键是如何选择最优划分属性.
一般而言,随着划分过程不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的“纯度”(purity)越来越高.
1信息增益
“信息嫡”(information entropy)是度量样本集合纯度最常用的一种指标.假定当前样本集合D中第k类样本所占的比例为 (k = 1,2,... ,|y|),则D的信息嫡定义为
Ent(D)的值越小,则D的纯度越高.Ent(D)的最小值为,最大值为。
假定离散属性α有V个可能的取值{,
,...,
},若使用a来对样本集D进行划分,则会产生V个分支结点,其中第v个分支结点包含了D中所有在属性a上取值为
的样本,记为
、我们可根据式(4.1)计算出
的信息嫡,再考虑到不同的分支结点所包含的样本数不同,给分支结点赋予权重|
I/Dl,即样本数越多的分支结点的影响越大,于是可计算出用属性a对样本集D进行划分所获得的“信息增益”(information gain)
2增益率
信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好可能带来的不利影响,者名的C4.o 伏束网算你凤a八属性﹐采用与用信息增益,而是使用“增益率”(gain ratio)来选择最优划分属性.采用与式(4.2)相同的符号表示,增益率定义为
其中 称为属性a的“固有值”(intrinsic value) [Quinlan,1993].属性a的可能取值数目越多(即V越大),则 IV(a)的值通常会越大.
3基尼指数
CART 决策树[Breiman et al.,1984]使用“基尼指数”(Gini index)来选择划分属性.数据集D的纯度可用基尼值来度量:
直观来说, Gini(D)反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率.因此,Gini(D)越小,则数据集D的纯度越高.
属性α的基尼指数定义为:
在候选属性集合A中,选择那个使得划分后基尼指数最小的属性作为最优划分属性
三、剪枝处理
剪枝(pruning)是决策树学习算法对付“过拟合”的主要手段.
预剪枝是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分个能市从练集生成一棵完整的决策树,分并将当前结点标记为叶结点。(欠拟合的风险)
后剪枝是先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点.(训练时间开销大)
四、连续与缺失值
1连续值处理
采用二分法(bi-partition)对连续属性进行处理:给定样本集D和连续属性a,假定a在D上出现了n个不同的取值将这些值从小到大进行排序,记为{ ,
,.. . ,
}.基于划分点t可将D分为子集
和
,其中
包含那些在属性a上取值不大于t的样本,而
则包含那些在属性a上取值大于t的样本.显然,对相邻的属性取值
与
来说, t在区间[
,
)中取任意值所产生的划分结果相同.因此,对连续属性a,我们可考察包含n-1个元素的候选划分点集合
即把区间[ ,
)的中位点
作为候选划分点.然后,我们就可像离散属性值一样来考察这些划分点,选取最优的划分点进行样本集合的划分.
2缺失值处理
现实任务中常会遇到不完整样本,即样本的某些属性值缺失.
给定训练集D和属性a,令表示D中在属性a上没有缺失值的样本子集.对问题(1),显然我们仅可根据
来判断属性α的优劣.假定属性a有V个可取值{
,
,.. . ,
},令
表示
中在属性a上取值为
的样本子集,
表示D中属于第k类(k= 1,2,...,|y|)的样本子集,则显然有
假定我们为每个样本x赋予一个权重
,并定义
基于上述定义,我们可将信息增益的计算式(4.2) 推广为
若样本x在划分属性a上的取值未知,则将x同时划入所有子结点,且样本权值在与属性值对应的子结点中调整为
;直观地看,这就是让同一个样本以不同的概率划入到不同的子结点中去.
五、多变量决策树
若我们把每个属性视为坐标空间中的一个坐标轴,则d个属性描述的样本就对应了d维空间中的一个数据点;对样本分类则意味着在这个坐标空间中寻找不同类样本之间的分类边界..决策树所形成的分类边界有一个明显的特点:轴平行(axis-parallel)。如下图:
“多变量决策树”(multivariate decision tree)就是能实现这样的“斜划分”甚至更复杂划分的决策树.
斜划分为例:在多变量决策树的学习过程中,不是为每个非叶结点寻找一个最优划分属性,而是试图建立一个合适的线性分类器。如下图