《机器学习》读书笔记4

来源:互联网 发布:昊海软件 编辑:程序博客网 时间:2024/06/05 09:39

第四章 决策树

4.1 基本流程

决策树(decision tree)主要用于分类学习任务,决策树的生成是一个递归过程。

 

4.2 划分选择

决策树学习的关键是如何选择最优划分属性。一般而言,希望随着划分不断进行,决策树的分支节点所包含的样本尽可能属于同一类别,即结点的纯度越来越高。可以用信息增益、增益率、基尼指数等指标来选择最优划分属性。

 

4.2.1 信息增益

“信息熵”(informationentropy)是度量样本集合纯度的指标,定义如下:


其中pk是集合D中第k类样本所占的比例,Ent(D)的值最小为0,此时D的纯度最高,值最大为log2|Y|。

 

“信息增益”(information gain)的定义如下,表示用属性a对样本集D进行划分所获得的信息增益:

信息增益越大,则意味着使用属性a来进行划分所得的“纯度提升”越大。

ID3决策树学习算法就是以信息增益为准则来选择划分属性。

 

4.2.2 增益率

由于信息增益对取值数目较多的属性有所偏好,为避免此问题,C4.5决策树算法使用“增益率”来选择最优划分属性,增益率定义为:


其中IV(a)为属性a的“固有值”(intrinsic value)。增益率准则对可取值数目较少的属性有所偏好,因此,C4.5算法是先从候选属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。

 

4.2.3 基尼指数

CART决策树使用“基尼指数”(Gini index)来选择划分属性,基尼指数定义为:

其中Gini(D)为“基尼值”,用来度量数据集D的纯度,基尼值越小纯度越高:

CART决策树算法中选择基尼指数最小的属性作为最优划分属性。

 

4.3 剪枝处理

剪枝(pruning)是决策树学习算法中对付“过拟合”的主要手段。

预剪枝是指在决策树生成过程中,若某个节点不能带来泛化性能提升则停止划分;后剪枝则是先生成一颗完整的决策树,然后自底向上对非叶节点进行考察,若将该节点对应的子树替换为叶节点能带来泛化性能提升,则将该子树替换为叶节点。判断决策树泛化性能是否提升的方法可以采取留出法来做性能评估。

预剪枝具有欠拟合风险,而后剪枝的欠拟合风险小,泛化性能往往优于预剪枝决策树。

在数据带有噪声时通过剪枝可将决策树的泛化性能提高25%。

 

4.4 连续值与缺失值

4.4.1 连续值处理

最简单的策略是采用二分法对连续值属性进行离散化处理。

 

4.4.2 缺失值处理

需解决两个问题:(1)如何在属性值缺失的情况下进行划分属性选择?(2)给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?

D~表示D中在属性a上没有缺失值的样本子集,D~v表示D~中在属性a上取值为v的样本子集,D~k表示D~中属于第k类的样本子集,有如下定义:


对于问题(1),可按照如下信息增益的计算式进行划分:

其中:

 

对于问题(2),若样本x在划分属性a上的取值已知,则将x划入与其取值对应的子节点,且样本权值在子节点中保持w,若样本x在划分属性a上的取值未知,则将x同时划入所有子节点,且样本权值在与属性值对应的子节点中调整为rv*w,即让同一个样本以不同的概率划入到不同的子节点中去。 

 

4.5 多变量决策树

单变量决策树(univariate decision tree)相当于在d维空间中轴平行的分类边界分段组成,“多变量决策树”(multivariate decision tree)则是能实现“斜划分”甚至更复杂划分的决策树,此类决策树中非叶结点不再仅对某个属性,而是按照属性的线性组合进行划分,即建立一个合适的线性分类器。

多变量决策树的算法主要有OC1,还有在决策树叶节点上嵌入神经网络的,如“感知机树”等。 

 

4.6 阅读材料

略。