《机器学习(周志华)》——第4章 决策树

1、决策树(decision tree)

(1)是基于树结构来进行决策的,通常来说,一颗决策树包含一个根节点、若干个内部节点和若干个叶节点,叶节点对应于决策结果,其他每个节点对应于一个属性测试。

(2)决策树学习的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树,遵循“分而治之”(divide-and-conquer)策略。

(3)决策树生成是一个递归的过程,有3种情形会导致递归:

① 当前结点包含的样本全属于同一类别,无需划分;

② 当前属性集为空,或是所有样本在所有属性上取值相同,无法划分;

③ 当前结点包含的样本集合为空,不能划分。

 

2、划分选择

(1)决策树学习的关键是选择最优的划分属性,即让决策树的分支结点所包含的样本尽可能属于同一类别,即结点的“纯度”(purity)越来越高。

(2)信息熵(informationentropy):假定当前样本集合D中第k类样本所占的比例为pk(k=1,2,.....,|y|),则D的信息熵为:


Ent(D)的值越小,则D的纯度越高。

(3)假定离散属性a有V个可能取值{a1, a2,…., aV},若使用a对样本集D进行划分,产生V个分支结点,其中第v个分支结点包含了D中在属性a上取值为av的样本,记为Dv;可计算出Dv的信息熵,再考虑不同分支结点包含的样本数不同,给分支结点赋予权重|Dv|/|D|,即样本数越多的分支结点影响越大,可计算属性a对样本集D进行划分所获得的“信息增益”(information gain) :


信息增益越大,说明使用属性a划分所获得的纯度越大。(如著名的ID3决策树即以信息增益为标准划分属性)

(4)增益率(gain ratio)

信息增益准则对取值数目较多的属性有所偏好,为减少这种不利影响,有的算法采用“增益率”来选择最优划分属性(如C4.5决策树算法),定义为:


其中:


称为a的固有值(intrinsic value),属性a的可能取值数目越多(即V越大),则IV(a)的值通常会越大;

       由于增益率准则对可取值数目较少的属性有所偏好,所以并不是直接选择增益率最大的候选划分属性,而是先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率较高的。

(5)基尼系数(Gini index)

       数据集D的纯度可用基尼值来度量:


       Gini(D)反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率,因此Gini(D)越小,则数据集D的纯度越高。(如CART决策树)

       属性a的基尼指数定义为:


       选择候选属性集合A中,选择划分后基尼指数最小的属性作为最优。

3、剪枝处理(pruning)

(1)预剪枝(prepruning):指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶节点;

(2)后剪枝(postpruning):先从训练集生成一棵完整的决策树,然后自底向上地对非叶节点进行考察,若将该结点对应的子树替换为叶结点能提升泛化能力,则将该子树替换为叶结点;

(3)预剪枝使得决策树的很多分支没有展开,降低了过拟合风险,也显著减少了决策树训练和测试时间开销,但也带来了“欠拟合”的风险;后剪枝的“欠拟合”风险小,泛化性能往往优于预剪枝,但训练开销要大得多。

4、连续和缺失值

(1)采用二分法(bi-partition)对连续属性处理(如C4.5决策树算法采用):

给定样本集D和连续属性a,假定a在D上出现了n个不同的取值,将这些值从大到小排序,记为{a1, a2, ….., an},基于划分点t可将D分为子集Dt-和Dt+,其中Dt-包含哪些在属性a上取值不大于t的样本,而Dt+则包含哪些在属性a上取值大于t的样本;显然相邻属性取值ai和ai+1来说,t在区间[ai, ai+1)中取任意值所产生的划分结果相同;因此我们可以考察包含n-1个元素的候选划分点集合:


即把区间[ai,ai+1)的中位点作为候选划分点,这样就可以像离散属性那样,选取最优的划分点进行样本集合的划分:


其中Gain(D,a, t) 表示样本集D基于划分点t二分后的信息增益。

(2)与离散属性不同,若当前结点划分属性为连续属性,该属性还可作为其后代结点的划分属性

(3)处理缺失值

       给定训练集D和属性a,令~D表示D中在属性a上没有缺失值的样本子集,假定属性a有V个可取值{a1, a2,…, aV},令~Dv表示中在属性a上取值为av的样本子集,~Dk表示中属于第k类(k = 1, 2, …, |y|) 的样本子集,假定我们为每一个样本x赋一个权重ωx,并定义:

对于属性a,ρ表示无缺失值样本所占比例,~pk表示无缺失值样本中第k类所占比例,~rv表示无缺失值样本中在属性a上取值av的样本所占的比例,则信息增益:


       若样本x在划分属性a上的取值已知,则将x划入与其取值对应的子节点,且样本权值在子节点中保持为ωx ;若样本x在划分属性a上取值未知,则将x同时划入所有子结点,且样本权值在与属性值av对应的子节点中调整为rv· ωx


5、多变量决策树 (multivariate decision tree)

(1)若把每个属性视作坐标空间中的一个坐标轴,d个属性即表示d维空间,决策树所形成的的分类边界有一个明显的特点——轴平行(axis-parallel),即分类边界由若干个与坐标轴平行的分段组成

(2)在多变量决策树(斜决策树)中,非叶节点不再是仅针对某个属性,而是对属性的线性组合进行测试;在多变量决策树的学习过程中,不是为每个非叶节点寻找一个最优划分属性,而是试图建立一个合适的线性分类器。


6、决策树算法

(1)最著名的代表是ID3,C4.5和CARTC4.5 Rule是一个将C4.5决策树转换为符号规则的算法,决策树的每个分支可以容易地重写为一条规则,C4.5 Rule算法转化过程会涉及规则前件合并、删减等操作,最终规则集的泛化性能甚至可能优于原决策树;

(2)在数据带噪声时,通过剪枝甚至可将决策树的泛化性能提高25%;

(3)多变量决策树算法主要有OC1,OC1先寻找每个属性的最优权值,在局部优化的基础上再对分类边界进行随机扰动以试图找到更好的边界;有的甚至在决策树的叶结点引入了线性分类学习器的最小二乘法或者嵌入神经网络

(4)部分决策树算法可进行“增量学习”(incremental learning),即在接收到新样本后,对已学得的模型进行调整,而不用完全重新学习,主要通过调整分支路径上的划分属性次序对树进行部分重构。(如ID4,ID5R,ITI等)

猜你喜欢

转载自blog.csdn.net/codesamer/article/details/80888579
今日推荐