[机器学习]决策树相关知识点

决策树算法是基于树结构进行决策学习的,目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树,其基本流程遵循简单而直观的“分而治之”的策略。
决策树基本学习算法
导致递归返回的情形(即无划分行为):

  1. 无需划分:当前结点包含的样本全属于同一类别
  2. 无法划分:当前属性集为空,或是所有样本在所有属性上取值相同
    我们把当前结点标记为叶结点,井将其类别设定为该结点所含样本最多的类别
  3. 不能划分:当前结点包含的样本集合为空
    同样把当前结点标记为叶结点,但将其类别设定为其父结点所含样本最多的类别

最优划分属性
随着划分过程不断进行,希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的“纯度”越来越高。
信息熵就是度量样本集合纯度最常用的一种指标,假定当前样本集合 D D 中第 k k 类样本所占的比例为 p k ( k = 1 , 2 , , y ) p_k(k=1,2,…,|y|) ,则 D D 信息熵
E n t ( D ) = k = 1 y p k log 2 p k Ent(D)=-\sum_{k=1}^{|y|} p_k\log_{2} p_k
信息熵越小,集合纯度越高。
可计算出用属性 α α 对样本集 D D 进行划分所获得的信息增益
G a i n ( D , a ) = E n t ( D ) v = 1 V D v D E n t ( D v ) Gain(D,a)=Ent(D)-\sum_{v=1}^{V} \frac{|D^v|}{|D|}Ent(D^v)
一般而言,信息增益越大,则意味着使用属性 α α 来进行划分所获得的纯
度提升越大.
总结,在确定决策树时信息熵越大越好,在选择属性划分时信息增益越大越好。(ID3算法用的是信息增益)

给出西瓜书上的一个西瓜例子:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(C4.5用的是信息增益率)
信息增益率
G a i n r a t i o ( D , a ) = G a i n ( D , a ) I V ( a ) Gainratio(D,a)=\frac{Gain(D,a)}{IV(a)}
其中
I V ( a ) = v = 1 V D v D log 2 D v D IV(a)=-\sum_{v=1}^{V} \frac{|D^v|}{|D|} \log_{2}\frac{|D^v|}{|D|}
称为属性 a a 的固有值,属性 α 的可能取值数目越多(即 V 越大),则 IV(α) 的值通常会越大.
需注意的是,增益率准则对可取值数目较少的属性有所偏好,因此,C4.5算法并不是直接选择增益率最大的候选划分属性,而是使用了一个启发式: 先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的.
(Cart用的是基尼指数)
数据集的纯度用基尼指数来衡量
在这里插入图片描述
在这里插入图片描述
基尼指数越小越好。

剪枝处理
剪枝是决策树学习算法对付“过拟合”的主要手段。
在学习过程中,节点划分过程不断重复,有时候会造成分支过多,以致于把训练集自身的一些特点当作所有数据都具有的一般性质而导致过拟合。因此可以主动剪枝降低过拟合风险。
主要分为预剪枝和后剪枝,预剪枝是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点;后剪枝则是先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点.
这里带来一个问题,怎么去判断决策树泛化性能是否提升。(可采用交叉验证、留出法等)
对于预剪枝,
在这里插入图片描述
于预页剪枝使得决策树的很多分支都没有"展开试时间开销.但另一方面,有些分支的当前划分虽不能提升泛化性能、甚至可能导致泛化性能暂时下降?但在其基础上进行的后续划分却有可能导致性能显著提高;预剪枝基于"贪心"本质禁止这些分支展开 7 给预剪枝决策树带来了欠拟含的风险。

对于后剪枝,
(从下至上看)
在这里插入图片描述
(注:若遇到剪枝后的精度无变化,根据奥卡姆提到准则,应该选择剪枝)

后剪枝决策树一般比预剪枝决策树保留了更多的分支,后剪枝的欠拟合风险小,泛化性能要优于预剪枝,但是后剪枝的训练时间要比未剪枝和预剪枝都要大得多。

对于连续值的决策树学习
连续属性离散化技术,最简单的策略是采用二分法对连续属性进行处理,C4.5算法中即采用这种策略。
略 后续补全

缺失值处理
我们需解决两个问题:

  1. 如何在属性值缺失的情况 F进行划分属性选择?
  2. 给定划分属性?若样本在该属性上的值缺失,如何对样本进行划分?

    在这里插入图片描述
    (C4.5即用了这种方法)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    若能使用斜的划分边界,则决策树模型将大为简化。“多变量决策树” (multivariate decision tree) 就是能实现这样的"斜划分"甚至更复杂划分的决策树。
    于是,与传统的"单
    变量决策树" (univariate decision tree) 不同,在多变量决策树的学习过程中,不是为每个非叶结点寻找一个最优划分属性,而是试图建立一个合适的线性分类器。

几个算法(ID3、Cart、C4.5、C5.0)

发布了40 篇原创文章 · 获赞 0 · 访问量 589

猜你喜欢

转载自blog.csdn.net/Helslie/article/details/104966728
今日推荐