dw吃瓜task3

决策树

1. 基本流程

        以二分类任务为例,从给定训练集中学得一个模型用以对新示例进行分类,这个分类的任务可以看作是对“当前样本属于正类吗?”这个问题的“决策”和“判断”过程。显然,这个决策过程是基于树的结构。

        一般地,一个决策树包含一个根节点,若干内部节点和叶子结点;其中,叶子结点为决策结果(即为“是”和“否”);其他各结点均为对属性的判断,根节点判断时包含所有的样本,每经过一个内部节点,均会被筛选出一部分数据。基本决策树算法如下图

 图1 决策树学习基本算法

显然,决策树的遍历是一个递归过程,一共有三种情况可能导致递归返回:(1).当前结点所包含数据均为同一类别,无需再分:(2).当前属性集为空,或所有样本在所有属性上均取值相同,无法划分;(3).当前结点包含数据集合为空,无法划分。

2. 划分选择

        由图1可看出,算法的重点为第八行,即如何选择最优划分属性。一般而言,随着数据不断划分,我们更希望每一个类别被划分的更加精细,即结点“纯度”越来越高。

2.1 信息增益

        “信息熵”被用于度量样本集合纯度,其定义为

Ent(D)=-\sum_{k=1}^{\left | y \right |}p_{k}log_{2}p_{k}

式(1)

其中,假定当前样本集合D中第k个样本所占比例为p_{k}(k=1,2,...,\left | y \right |);Ent(D)值越小,D的纯度越高。

假定离散属性a有V 个可能的取值\left \{ a^{1},a^{2},...,a^{V} \right \} ,若使用a 来对样本集D进行划分,则会产生V个分支结点,其中第v 个分支结点包含了D中所有在属性a上取值为a^{v}的样本, 记为 D^{v} . 我们可根据式( 1) 计算出D^{v}的信息熵,再考虑到不同的分支结点所包含的样本数不同,给分支结点赋予权重\left | D^{v} \right |/\left | D \right |,即样本数越多的分支结点的影响越大,于是可计算出用属性a对样本集D进行 划分所获得的"信息增益"
Gain(D,a)=Ent(D)-\sum_{v=1}^{V}\frac{\left | D^{v} \right |}{\left | D \right |}Ent(D^{v})
式(2)
一般而言,信息增益越大,则意味着使用属性a 来进行划分所获得的"纯 度提升"越大.因此,我们可用信息增益来进行决策树的划分属性选择,即在图1 算法第8 行选择属性 \omega =\underset{a\in A}{arg max}Gain(D,a) . 著名的 ID3 决策树学习算法[Quinlan 1986] 就是以信息增益为准则来选择划分属性.

2.2. 增益率

        实际上,信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好可能带来的不利影响,著名的 C4.5 决策树算法 [Quinlan 1993J 不直接使用信息增益,而是使用"增益率"来选择最优划分属性.采用与(2) 相同的符号表示,增益率定义为

Gain_ratio(D,a)=\frac{Gain(D,a)}{IV(a)}

式(3)

其中,

IV(a)=-\sum_{v=1}^{V}\frac{\left | D^{v} \right |}{\left | D \right |}log_{2}\frac{\left | D^{v} \right |}{\left | D \right |}

图4

        称为属性a的"固有值" [Quinlan , 1993]. 属性a 的可能取值数目越多(即V越大),则 IV(α) 的值通常会越大.
        需注意的是,增益率准则对可取值数目较少的属性有所偏好,因此, C4.5 算法并不是直接选择增益率最大的候选划分属性,而是使用了一个启发式[Quinlan 1993]: 先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的.

2.3 基尼指数

        CART 决策树 [Breiman et al., 1984] 使用"基尼指数" (Gini index) 来选择划分属性.采用与式(1) 相同的符号,数据集D的纯度可用基尼值来度量:

Gini(D)=\sum_{k=1}^{\left | y \right |}\sum_{k'\neq k}^{}p_{k}p_{k'}

=1-\sum_{k=1}^{\left | y \right |}p_{k}^{2}

式(5)

        直观来说,Gini(D) 反映了从数据集D 中随机抽取两个样本,其类别标记 不一致的概率.因此, Gini(D) 越小,则数据集D 的纯度越高.
        采用与式(4.2) 相同的符号表示,属性a 的基尼指数定义为
Gain_index(D,a)=\sum_{v=1}^{V}\frac{\left | D^{v} \right |}{\left | D \right |}Gini(D^{v})
式(6)
        于是,我们在候选属性集合A中,选择那个使得划分后基尼指数最小的属 性作为最优划分属性,即a_{*}= \underset{a\in A}{argmin}Gini_index(D,a).

3 剪枝处理

        剪枝(pruning) 是决策树学习算法对付"过拟合"的主要手段.在决策树学习中,为了尽可能正确分类训练样本,结点划分过程将不断重复,有时会造成决策树分支过多,这时就可能因训练样本学得"太好"了,以致于把训练集自身的一些特点当作所有数据都具有的一般性质而导致过拟合.因此,可通过主动去掉一些分支来降低过拟合的风险.

        决策树剪枝的基本策略有"预剪枝" (prepruning) 和"后剪枝 "(post" pruning) [Quinlan, 1993]. 预剪枝是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点;后剪枝则是先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点.

4连续与缺失值

4.1连续值处理

        给定样本集D 和连 续属性a ,假定a在D 上出现n 个不同 的取值,将这些值从小到大进行排序,记为\left \{ \alpha ^{1},\alpha ^{2},...,\alpha ^{n} \right \}. 划分点t可将D 分为子 D_{t}^{-}D_{t}^{+},其中 Dt 包含那些在属性a 上取值 不大于t 样本,而D_{t}^{+} 包含那些在属性a 上取值大于t 的样本.显 然,对相邻 的属性 取值a^{i}a^{i+1} 来说, t在区间 [a^{i},a^{i+1})中取任意值所产生的划分结果相同.因此,对连续属性 α, 我们可考察包含n-1个元素的候选划分点集合
T_{a}=\left \{ \frac{a^{i}+a^{i+1}}{2} |1\leqslant i\leqslant n-1\right \}
式(7)
即把区间 [a^{i},a^{i+1})  的中位点\frac{a^{i}+a^{i+1}}{2}作为候选划分点.然后,我们就可像离散属性值一样来考察这些划分点,选取最优的划分点进行样本集合的划分.

4.2 缺失值处理

        我们需解决两个问题: (1) 如何在属性值缺失的情况 进行划分属性选择? (2) 给定划分属性?若样本在该属性上的值缺失,如何对样本进行划分?
        给定训练集D和属性a  ,令D\tilde{} 表示D中在属性a上没有缺失值的样本子 集.对问题(1) ,显然我们仅可根据D\tilde{}来判断属性a的优劣.假定属性a有V个可取值 \left \{ \alpha ^{1},\alpha ^{2},...,\alpha ^{V} \right \},令 D\tilde{}^{v}表示D\tilde{}中在属性a上取值为a^{v}的样本子集,D\tilde{}_{k}表示D\tilde{}中属于第k类 (k = 1 , 2 , .. . , ly l)的样本子集,则显然有D\tilde{}=\bigcup _{k=1}^{\left | y \right |}D\widetilde{}_{k} ,D\bar{}=\bigcup _{k=1}^{V}D\widetilde{}^{v}假定我们为每个样本x赋予一 个权重\omega _{x},并定义
\rho =\frac{\sum_{x\in D\widetilde{} }^{}\omega _{x}}{\sum_{x\in D}^{}\omega _{x}}
式(9)
\rho\widetilde{}_{k} =\frac{\sum_{x\in D\widetilde{}_{k} }^{}\omega _{x}}{\sum_{x\in D\widetilde{}}^{}\omega _{x}}
式(10)
r\widetilde{}_{v} =\frac{\sum_{x\in D\widetilde{}_{v} }^{}\omega _{x}}{\sum_{x\in D\widetilde{}}^{}\omega _{x}}
式(11)
直观地看,对属性a,\rho表示 无缺失值样本所占的比例 ,p\widetilde{}_{k} 表示无缺失值样本中第k类所占的比例,r\widetilde{}_{v} 则表示无缺失值样本中在属性a 上取值a^{v}的样本所占的比例.显然, \sum_{k=1}^{\left | y \right |}p\widetilde{_{k}}=1,\sum_{v=1}^{V}r\widetilde{}_{v}=1
  • 21
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值