决策树笔记(未完待续)

决策树笔记(未完待续)

决策树

决策树基本知识

决策树的生成是一个递归的过程。在决策树基本算法中,有三种情形会导致递归返回:
①当前结点包含的样本全属于同一类别,无需划分。②当前属性集为空,或是所有样本在所有属性上取值相同,无法划分。③当前结点包含的样本集合为空,不能划分。

划分选择

1.信息增益

信息熵是度量样本集合纯度最常用的一种指标。
假定当前样本集合D中第k类样本所占的比例为pk(k=1,2,……|Y|),则D的信息熵为:
信息熵
Ent(D)的值越小,D的纯度越高。

若离散属性a有V个可能的取值(a1,a2,……aV),使用a对D进行划分,则会产生V个分支结点,Dv记为D中所有在属性a上取值为a(v)的样本,信息增益为:
信息增益
一般而言,信息增益越大,则意味着使用属性a划分的纯度提升越大,所以我们可以将信息增益进行决策树的划分属性选择。著名的ID3决策树学习算法就是以信息增益为准则。

2.增益率

在一般的处理中,会有意选择忽略“编号”,不把它作为划分属性,显然,这是合理的,因为选用“编号”时,n个样本则会产生n个分支,每个分支结点只包含一个样本,纯度已达最大,这样的决策树完全不具有泛化能力,故不可取。

实际上,使用信息增益时会偏好那些可取值多的属性,故为减少这种偏好可能的不利影响,著名的C4.5决策树算法不直接使用信息增益,而是选择用增益率。
增益率
IV(a)称为a的固有值需要注意的是,增益率对可取值少的属性有偏好
注意: C4.5算法并不直接选择增益率最大的候选划分属性,而是:先从候选划分属性中选出信息增益高于平均水平的,然后再从中选择增益率最高的。

基尼指数

CART决策树使用基尼指数来选择划分属性。
基尼值:
基尼值
基尼值越小,数据集D的纯度越高。

基尼指数:
基尼指数
我们选择基尼指数最小的属性作为最优划分属性。

3.剪枝处理

剪枝是决策树学习算法对付“过拟合”的主要手段。
在决策树学习过程中,为了尽可能正确分类样本,结点划分过程将不断重复,有时会导致分支过多,这时则会对训练样本学习得太好以至于把仅属于训练集的一些特点也作为数据的一般性质,因此,我们需要主动剪枝来降低过拟合的风险。

剪枝分为“预剪枝”和“后剪枝”。
预剪枝:在决策树生成的过程中,对每个结点在划分前进行估计,若不能带来泛化能力的提升,则停止划分并将当前结点标记为叶节点。
后剪枝:先从训练集生成一棵完整的决策树,然后自底向地对非叶节点进行考察,若将该结点对应的子树替换为叶节点能提升泛化性能,则将该子树标记为叶节点。

预剪枝

预剪枝使得决策树的很多分支都没有展开,这不仅降低了过拟合的风险,还显著减少了决策树的训练时间开销和测试时间开销,但另一方面,有些分支的当前划分虽不能提升泛化性能、甚至会导致泛化性能暂时下降,但在其基础上的后续划分却有可能导致性能显著提升,即预剪枝可能带来欠拟合风险。

后剪枝

后剪枝决策树通常比预剪枝决策树保留了更多的分支,一般情况下,后剪枝决策树的欠拟合风险很小,泛化性能往往优于预剪枝决策树,但后剪枝过程需要在决策树完全生成后进行,并且要自底向上逐一考察,所以会花费大量训练时间。

4.连续与缺失值

连续值处理

上述只讨论了基于离散属性的决策树,现实学习任务中会遇到连续属性,优于连续属性的可取值数目不再有限,因此,不能直接根据可取值来进行划分。
此时,需要用到连续属性离散化。其中最简单的策略是选用二分法,这正是C4.5决策树算法中采用的机制。

给定样本集D和连续属性a,假定a在D上出现了n个不同的取值,则将这n个值从小到大排序,记为{a1,a2,……an}。基于划分点t可将D分为Dt-(在属性a上取值不大于t的样本),Dt+(在属性a上取值大于t的样本)。

对相邻的属性取值ai和a(i+1)来说,t在区间[ai,a(i+1)]中取任意值所产生的划分效果相同,因此,对连续属性a,我们可考察包含n-1个元素的候选划分集合
Ta

即把区间[ai,a(i+1))的中位点(ai+a(i+1))/2作为候选划分点,然后就可以像处理离散型一样处理:
Gain(D,a)
注意: 与离散属性不同,若当前结点划分属性为连续属性,该属性还可作为后代结点的划分属性。

缺失值处理

很多情况下某些样本的某些属性是缺失的,如果简单地丢弃不完整样本,仅使用无缺失值的样本来进行学习,显然是对数据信息的浪费。

现在有2个问题:在属性值缺失的情况下,如何进行划分属性选择。
给定划分属性,若样本在该属性上缺失,如何划分。

问题①:仅可根据~D来判断属性a的优劣。
ρ表示无缺失值样本所占的比例
~p(k)表示无缺失值样本中第k类所占的比例
~r(v)表示无缺失值样本中在属性a上取值为a(v)的样本所占的比例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
问题②:
若样本x在划分属性a上的取值已知,则将x划入与其取值对应的子结点,且样本权值在子节点中保持为w(x)。
若样本x在划分属性a上的取值未知,则将x同时划入所有子结点,且样本权值在与属性值a(v)对应的子结点中调整为~r(v)*w(x)。

5.多变量决策树

发布了25 篇原创文章 · 获赞 19 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_42605042/article/details/85217905
今日推荐