4.1 基本流程
决策树基于”树“结构进行决策,每个“内部节点”对应于某个属性上的”测试“;每个分支对应于该测试的一种可能结果(即该属性的某个取值);每个”叶结点“对应于一个”预测结果“。决策树基本流程可大致分为学习过程和预测过程。
学习过程:通过对训练样本的分析来确定”划分属性“(即内部节点所对应的属性)。
预测过程:将测试示例从根结点开始,沿着划分属性所构成的”判定测试序列“下行,直到叶结点。
决策树学习的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树,其基本流程遵循简单且直观的"分而治之" 策略,如图所示。
(1) 当前结点包含的样本全属于同一类别,无需划分;(2) 当前属性集为空,或是所有样本在所有属性上取值相同,无法划分;(3) 当前结点包含的样本集合为空,不能划分。
4.2 划分选择
4.2.1 信息增益
"信息熵"是度量样本集合纯度最常用的一种指标。假定当前样本集合D中第k类样本所占的比例为 ,则D的信息熵定义为
的值越小,则D的纯度越高。信息增益直接以信息熵为基础,计算当前划分对信息熵所造成的变化。
假定离散属性a有V个可能的取值,若使用a来对样本集D进行划分,则会产生V个分支结点,其中第v个分支结点包含了D中所有在 属性a上取值为
的样本,记为
。以属性a对数据集D进行划分所获得的信息增益为:
以以下图表为例,该数据集包含17个训练样例,显然,,则根结点的信息熵为
然后,我们要计算出当前属性集合{色泽,根蒂,敲声,纹理,脐部,触感} 中每个属性的信息增益。以属性”色泽“为例,可能取值为:{青绿,乌黑,浅白},则(色泽=青绿),
(色泽=乌黑),
(色泽=浅白)。可计算出用”色泽“划分后所获得的3个分支结点的信息熵为。
于是,属性”色泽“的信息增益为
类似的,我们可以计算出其他属性的信息增益:
显然,属性”纹理“的信息增益最大,于是它被选为划分属性,如下图。
然后,决策树学习算法将每一个分支结点做进一步划分。
4.2.2 增益率
信息增益对可取值数目较多的属性有所偏好,但也有明显弱点,例如:考虑”编号“作为一个属性。为了减少这种偏好可能带来的不利影响,故使用”增益率“来选择最优划分属性。
属性a的可能取值数目越多(即V越大),则IV(a)的值通常就越大。启发式,先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。
4.2.3 基尼指数
决策树使用”基尼指数“来选择划分属性,其定义式为
4.3 剪枝处理
研究表明,划分选择的各种准则虽然对决策树的尺寸有较大影响,但对泛化性能的影响很有限。例如信息增益与基尼指数产生的结果,仅在约2%的情况下不同。剪枝方法和程度对决策树泛化性能的影响更为显著,在数据带噪时甚至可能将泛化性能提升25%。
为了尽可能正确分类训练样本,有可能造成分支过多,过拟合可主动去掉一些分支来降低过拟合的风险。决策树剪枝的基本策略有"预剪枝" 和"后剪枝"。预剪枝是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点;后剪枝则是先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点。
4.3.1预剪枝
4.4 缺失值处理
现实任务中常会遇到不完整样本,即样本的某些属性值缺失。使用带缺失值的样例,需要解决:如何进行划分属性选择?此外,给定划分属性,若样本在该属性上的值缺失,如何进行划分?其基本思路为样本赋权,权重划分。
仅通过无缺失值的样例来判断划分属性的优劣。学习开始时,根结点包含样例集D中全部17个样例,权重均为1。以属性“色泽”为例,该属性上无缺失值的样例子集包含14个样例,信息熵为
令,
,
分别表在属性"色泽"上取值为"青绿" “乌黑"以及"浅白"的样本子集,有
因此,样本子集上属性"色泽"的信息增益为
于是,样本集D上属性"色泽"的信息增益为
类似地可计算出所有属性在D上的信息增益:
参考文献:《机器学习》周志华