决策数总结

决策数总结

1.基本流程

决策数学习的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策数,其基本流程为:

输入:
    训练集 D={(X1,y1),(X2,y2),...,(Xm,ym)}
    属性集 A={a1,a2,...,ad}
过程:函数 TreeGenerate(D,A)
    生成结点 node;
    if D中样本全属于同一类别C then
        将node标记为C类叶结点; return
    end if
    if A=or D中样本在A上取值相同 then
        将node标记为叶结点,其类别标记为D中样本数最多的类; return
    end if

   从A中选择最优划分属性a*;

   for a* 的每一个值 a*_v do
        为node生成一个分支; 令Dv表示D中在a*上取值为a*_v的样本子集;
        if Dv 为空 then
            将分支结点标记为叶结点,其类别标记为D中样本最多的类; return
        else
            以TreeGenerate(D, A \ {a*})为分支结点
        end if
    end for
输出:以node为根结点的一棵决策树

有三种情形导致递归返回:

  • 当前节点包含的样本全属于同一类别,无需划分。
  • 当前属性集为空,或是所有样本在所有属性上取值相同,无法划分。(此时将所含样本最多的类别设置为该叶子节点类别)
  • 当前节点包含的样本集合为空,不能划分。(将其父节点中样本最多的类别设置为该叶子节点的类别

2.划分选择

信息增益 (ID3算法)
  • 信息熵:度量样本集合纯度最常用的一种指标。
    在这里插入图片描述
    Ent(D)的值越小,则D的纯度越高
  • 假定离散属性a有V个可能取值{a1,a2,a3,…,aV},若使用a对样本D进行划分,则会产生V个分支节点,其中第v个分支结点包含了D中所有在属性a上取值为av的样本,记为Dv。信息增益就是通过度量不同分支结点所包含的样本数不同,给分支结点赋予权重|Dv|/|D|,即样本数越多的分支结点影响越大,于是信息增益(information gain)定义如下
    在这里插入图片描述
    一般来说,信息增益越大说明使用属性a进行划分所获得的“纯度提升”越大,因此我们可以用信息增益作为一种属性划分的选择。
    著名的ID3决策树就是采用信息增益作为最优划分选择。选择对应的信息增益最大的属性作为根节点的分裂属性.
增益率(C4.5算法)

有了信息熵,当我选择用样本的某一个属性a来划分样本集合D时,就可以得出用属性a对样本D进行划分所带来的“信息增益”,为了减少信息增益对样本偏好的影响,提出信息增益率来选择优化模型,C4.5就是采用这样的决策。增益率定义为:
在这里插入图片描述
其中IV(a)为:
在这里插入图片描述
属性a的取值数目越多的时候,对应的IV值越大。

基尼指数(CART决策数)

基尼值:
在这里插入图片描述
Gini(D)反映从数据集D中随机抽取两个样本,其类别标记不一致的概率。因此Gini(D)越小,则数据集D纯度越高
基尼指数:
在这里插入图片描述
选择基尼指数最小的属性作为最优化的划分

在这里插入图片描述

3.剪枝处理

决策树剪枝的基本策略有“预剪枝”和“后剪枝”。预剪枝是指在决策数生成过程中对每个节点在划分前先进行估计,若当前节点的划分不能带来决策数泛化性能的提升,则停止划分并将当前节点标记为叶节点;后剪枝则是先从训练集生成一颗完整的决策数,然后自底向上地对非叶节点进行考察,若将该节点的子树替换为叶节点能带来决策数泛化能力的提升,则将该子树替换为叶节点。
在这里插入图片描述
                剪枝过程可查看预剪枝与后剪枝

4.连续与缺失值

连续值处理

因为连续属性的可取值数目不再有限,因此不能像前面处理离散属性枚举离散属性取值来对结点进行划分。因此需要连续属性离散化,常用的离散化策略是二分法,这个技术也是C4.5中采用的策略。·
方法如下:
1.对特征的取值进行升序排序

2.两个特征取值之间的中点作为可能的分裂点,将数据集分成两部分,计算每个可能的分裂点的信息增益(InforGain)。优化算法就是只计算分类属性发生改变的那些特征取值。

3.选择修正后信息增益(InforGain)最大的分裂点作为该特征的最佳分裂点

4.计算最佳分裂点的信息增益率(Gain Ratio)作为特征的增益率。注意,此处需对最佳分裂点的信息增益进行修正:减去log2(N-1)/|D|(N是连续特征的取值个数,D是训练数据数目,此修正的原因在于:当离散属性和连续属性并存时,C4.5算法倾向于选择连续特征做最佳树分裂点)

缺失值处理

现实任务中常会遇到不完整样本,即样本的某些属性值缺失。
在构造决策树时,处理含有缺失值的样本的时候,需要解决两个问题:

(1)如何在属性值缺失的情况下选择最优划分属性?

  • 计算分裂损失减少值时,忽略特征缺失的样本,最终计算的值乘以比例(实际参与计算的样本数除以总的样本数)

假如使用ID3算法,那么选择分类属性时,就要计算所有属性的熵增(信息增益,Gain)。假设10个样本,属性是a,b,c。在计算a属性熵时发现,第10个样本的a属性缺失,那么就把第10个样本去掉,前9个样本组成新的样本集,在新样本集上按正常方法计算a属性的熵增。然后结果乘0.9(新样本占raw样本的比例),就是a属性最终的熵。
(2)选定了划分属性,若样本在该属性上的值是缺失的,那么该如何对这个样本进行划分?

  • 将该样本分配到所有子节点中,权重由1变为具有属性a的样本被划分成的子集样本个数的相对比率,计算错误率的时候,需要考虑到样本权重

比如该节点是根据a属性划分,但是待分类样本a属性缺失,怎么办呢?假设a属性离散,有1,2两种取值,那么就把该样本分配到两个子节点中去,但是权重由1变为相应离散值个数占样本的比例。然后计算错误率的时候,不是每个样本都是权重为1,存在分数。

多变量决策数

若我们将每个属性视为坐标空间中的一个坐标轴,则 个属性描述的样本就对应了 维空间中的一个数据点,对样本分类则意味着在这个坐标空间中寻找不同类样本之间的分类边界。

决策树若形成的分类边界有个明显的特点:轴平行,即它的分类边界由若干个与坐标轴平行的分段组成。

以表4.5的西瓜数据3.0为例,将它作为训练集可学得图4.10所示的决策树,这棵树所对应的分类边界如图4.11所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
若能使用分类斜的划分边界,如图4.12中红色线段所示,则决策树模型将大为简化。“多变量决策模型”将能实现这样的“斜划分” 甚至更复杂划分的决策树。
在这里插入图片描述

以实现斜划分的多变量决策树为例,在此类决策树中,非叶结点不再是仅对某个属性,而是对属性的线性组合进行测试;换言之,每个非叶结点是一个形如的线性分类器,其中 是属性 的权重,和 可在该结点所含的样本集合属性集上学得。

与传统的“单变量决策树” 不同,在多变量决策树的学习过程中,不是为每个非叶节点寻找一个最优的划分属性,而是试图建立一个合适的线性分类器。如对西瓜数据3.0 ,我们可学得图4.13这样的多变量决策树,其分类边界如图4.14所示。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值