吃瓜教程 | 第四章 决策树

4.1 基本流程

  • 决策树(decisiontree)是一类常见的机器学习方法.。决策树是基于树结构来进行决策的,通过一系列的判断或“子决策”得到最终决策,其目的是产生一棵泛化能力强,即处理未见示例能力强的决策树。

  • 一般的,一棵决策树包含一个根结点、若干个内部结点和若干个叶结点;叶结点对应于决策结果?其他每个结点则对应于一个属性测试;每个结点包含的样本集合根据属性测试的结果被划分到子结点中;根结点包含样本全集.从根结点到每个叶结点的路径对应了一个判定测试序列.决策树学习的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树,其基本流程遵循简单且直观的"分而治之"(divide-and-conquer)策略。

     吃瓜教程 | 第四章 决策树_第1张图片

     决策树的生成是一个递归过程.在决策树基本算法中,有三种情形会导致递归返回:
    (1)当前结点包含的样本全属于同一类别,无需划分;
    (2)当前属性集为空,或是所有样本在所有属性上取值相同,无法划分;
    (3)当前结点包含的样本集合为空,不能划分.
    在第(2)和(3)种情形下,当前结点均会被标记为叶节点,区别是前者将其类别设定为该结点所含样本最多的类别,后者将其类别设定为其父结点所含样本最多的类别。

4.2 划分选择

决策树学习的关键,即如何选择最优划分属性。
一般而言,随着划分过程不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的"纯度"(purity)越来越高.

4.2.1 信息增益

信息熵”(information entropy)度量纯度的最常用指标。

 Enter(D)越小,D的纯度越高。

信息增益”:考虑到每一个结点所包含的样本数不同,那么对每一个分支节点需要赋予一定的权重

ID3决策树学习算法就是以信息增益为准则来划分属性。

 4.2.2 增益率

信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好可能带来的不利影响,可使用“增益率”来选择最优划分属性, C4.5 决策树算法就是如此。增益率定义如下:

吃瓜教程 | 第四章 决策树_第2张图片

其中,

 

 称为属性a的“固有值”,通常来说,属性a的可能取值数目越多,IV(a)的值通常越大。

由于增益率对可取纸数目较少的属性有偏好,所以C4.5 决策树算法也并不是直接使用增益率来选择最优划分属性,而是分为以下两步:
(1)从候选划分属性中找出信息增益高于平均水平的属性;
(2)从中选择增益率最高的属性作为最优划分属性。

 4.2.3 基尼指数

基尼值也可度量数据集D的纯度,其定义如下:

吃瓜教程 | 第四章 决策树_第3张图片

 Gini(D)反映了从数据集D中随机抽取的两个样本类别标记不一致的概率。若该概率小,那么数据集D中的样本属于同一类别的概率自然大。所以基尼值越小,数据集纯度越高。

属性a的基尼指数定义如下:

 4.3 剪枝处理

剪枝是决策树学习算法抑制过拟合的主要方法,其基本策略有“预剪枝”和“后剪枝”两种。

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

4.3.1 预剪枝

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

4.3.2 后剪枝

后剪枝决策树通常比预剪枝决策树保留了更多的分支.一般情形下,后剪枝决策树的欠拟合风险很小,泛化性能往往优于预剪枝决策树.但后剪枝过程是在生成完全决策树之后进行的7并且要白底向上地对树中的所有非叶结点进行逐一考察,因此其训练时间开销比未剪枝决策树和预剪枝决策树都要大得多.

4.4 连续与缺失值

4.4.1 连续值处理

在决策树学习中使用连续属性需要采用连续属性离散化技术,比如二分法(C4.5决策树算法中采用的机制)。

通俗点来说,就是将大于某个值的那部分数据归为一组,其他的归为另外一组,对信息增益的公式进行一定的改进后,变为:

吃瓜教程 | 第四章 决策树_第4张图片

 要注意的是,与离散属性不同,若当前结点划分属性为连续属性,该属性还可作为其后代结点的划分属性。

4.4.2 缺失值处理

需要解决的两个问题

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

4.5 多变量决策树

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

但是其存在一定的缺陷,当分类边界的每一段都与坐标轴平行,这样的分类结果具有很好的解释性,但是如果分类边界过于复杂化,一来会带来开销过大,二来决策树也会很复杂,这就引出了多变量决策树

多变量决策树的结构为二叉树,实际上是多个线性模型的组合。

你可能感兴趣的:(机器学习,吃瓜教程,决策树,机器学习,人工智能)