决策树的构建与处理

文章介绍了决策树的基本结构和学习过程,涉及ID3、C4.5和CART等经典算法,强调了如何选择最优划分属性以增强泛化能力,并讨论了过拟合问题及预剪枝和后剪枝策略。还提及了处理连续属性的离散化方法和多变量决策树的特性。
摘要由CSDN通过智能技术生成

决策树=结点+有向边

利用决策树进行决策,首先从根节点开始,逐步向下,直到符合条件的叶节点为止,得到最终结论或是进一步的判定问题。根节点到每个叶节点的路径对应了一个判定测试序列。

决策树学习:

目的:产生一棵泛化能力强处理未见示例能力强的决策树。

过程:设训练集为D,属性集为A

1.生成节点;

2.判断:

(1)D均属于同一类别,则直接将节点标记为此类的叶节点,结束;

(2)A空,或者D中样本在A上取值相同,则直接将节点标记为D中样本数最多的类的叶节点,结束;

(3)否则,选择一个最优划分属性,为其每个值在节点上生成一个分支,并将D中取值为a_i的样本记作D_i

3.当D_i为空时,对应的分支节点直接标记为叶节点,类别标记为其父节点样本数最多的类的叶节点,结束;

否则,在此节点上重复以上过程。

这个过程产生了一些问题,比如,如何选择最优划分属性

经典的划分方法有ID3,C4.5,CART等。

ID3:

(信息熵:度量样本的信息纯度。设样本集D中第k类样本所占比例为p_k(k=1,2,...,\left | y \right |),则信息熵Ent(D)=-\sum_{k=1}^{\left | y \right |}p_klog_2p_k

对于离散属性a,可能有多个取值\left \{ a_1,a_2,...,a_n \right \},用它划分会产生n个分支节点,其中第i个节点包含了样本集中所有在a上取值为a_i的样本,将这一子集记作D^i,于是信息增益Gain(D,a)=Ent(D)-\sum_{i=1}^{n}\frac{\left | D^i \right |}{\left |D \right |}Ent(D^i)

但是,信息增益对取值范围较大的属性有相当大的偏好。例如,编号的信息增益一般远大于其他属性,但不能认为编号是最优划分属性。否则,这样得到的决策树缺少泛化能力。

为了解决取值范围的问题,增益率应运而生。增益率Gain\_ratio(D,a)=\frac{Gain(D,a)}{IV(a)},其中IV(a)=-\sum_{i=1}^{n}\frac{\left | D^i \right |}{\left | D \right |}log_2\frac{\left | D^i \right |}{\left | D \right |}为属性a的“固有值”

然而,增益率也对取值范围小的属性有所偏好。为此,C4.5算法结合了二者:先找增益高于平均的,再找其中增益率最高的,有效规避了二者的短处。

CART:

基尼系数:概率分布的基尼系数Gini(D)=\sum_{k=1}^{\left | y \right |}p_k(1-p_k),反映了随机抽取两个样本,类别标记不一致的概率。

属性a的基尼系数Gini_{index}(D,a)=\sum_{i=1}^{n}\frac{\left | D^i \right |}{\left | D \right |}Gini(D^i),以划分后基尼系数最小的作为最优划分依据。

为了解决过拟合问题,还需要对该树做剪枝处理,以提升其泛化性能。

剪枝包括预剪枝和后剪枝两种基本策略。

所谓预剪枝,就是通过提前停止树的构建,实现剪枝,主要方法有:预设高度、检测特征向量、设置实例数量最小值、增益评估。问题在于,预剪枝依赖的参数基本是超参数,即难以预估何时剪枝;有些分支不能提高性能,但后续却可以,而预剪枝禁止了这个分支的生长,存在欠拟合风险。

后剪枝,就是在整棵树构建完成后,自底向上,由叶节点开始尝试,对精度有提高的直接剪掉,否则保留。这种方法有效避免了过拟合,同时泛化性能强,但开销大。

对于连续属性,我们不能直接处理无限多个值,但可以用二分法离散化:

1.将连续属性aD上的所有取值从小到大排列,记作a_1,a_2,...,a_n,基于划分点tD分为D_t^+(大于t)和D_t^-(不大于t)两部分,而划分点集合T_a=\{ \frac{a_i+a_{i+1}}{2}|1\leq i\leq n-1\}

2.计算划分点的增益,选取最优的划分点进行划分。Gain(D,a)=\underset{t\in T_a}{max}Gain(D,a,t)=\underset{t\in T_a}{max}Ent(D)-\sum_{i=-}^{+}\frac{\left | D_t^i \right |}{\left | D \right |}Ent(D^i_t)

对于多变量决策树,非叶结点本质上是对属性的线性组合,是类似于\sum_{i=1}^{n}w_ia_i=t的线性分类器。

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值