【机器学习】决策树

Decision Tree 决策树

决策树的定义和直观解释

决策树定义

决策树是一类常见的机器学习方法。本质就是一棵树,这棵树表示的含义如下:

  • 每个非叶子结点对应一个判定问题
  • 每个叶子结点对应一个决策结果
  • 每一条从根到叶的路径对应一个完整的决策过程

决策树模型的特点

优点

  1. 可解释性极强,常用于医疗诊断等领域
  2. 计算复杂度低
  3. 可以处理不同类型的数据,包括离散值和连续值

缺点

  1. 容易过拟合,需要配合剪枝策略

不是一点点容易,真的是非常容易,因为只要有一个 outlier 就会导致决策树继续分支,最后会非常复杂。

划分指标

决策树的划分目的,是使得每个结点所包含的样本尽量属于同一类别,即“纯度” (purity)。衡量集合纯度最常用的指标是信息熵

\[Ent(D) = -\sum_{k=1}^{|{\mathcal Y}|}p_k\log_2p_k \]

信息熵越小,纯度越高

  1. 信息增益 (information gain)

    \[Gain(D, a) = Ent(D) - \sum_{v=1}^{V}\frac{|D^v|}{|D|}Ent(D^v) \]

    衡量划分后纯度的变化。不同子集合信息熵通过加权平均的方式汇总。缺点是对可取值较多的属性有偏好。

  2. 信息增益率 (information gain ratio)

    \[Gain\_ratio(D, a) = \frac{Gain(D, a)}{IV(a)}\\ IV(a)=-\sum_{v=1}^{V}\frac{|D^v|}{|D|}\log_2\frac{|D^v|}{|D|} \]

    \(IV(a)\)称为 a 的固有值(intrinsic value)。增益率对可取值较少的属性有偏好。

  3. 基尼指数 (Gini index)

    \[Gini(D) = \sum_{k=1}^{|{\mathcal Y}|} \sum_{k'\ne k}p_kp_{k'} = 1 - \sum_{k=1}^{|{\mathcal Y}|}p_k^2\\ Gini\_index(D, a) = \sum_{v=1}^V\frac{|D^v|}{|D|}Gini(D^v) \]

其实熵 (Ent) 和基尼值 (Gini) 是很类似的东西,从表达式中就可以看出:

熵就是 \(-\sum p\log p\),基尼值就是 \(-\sum p^2\),都是越小越好。二者只是对纯度的敏感程度不一样。

同理基尼指数也会对可取值较多的属性有偏好。

剪枝策略 (pruning)

剪枝策略是决策树学习算法处理过拟合的主要手段,分为预剪枝和后剪枝。两种剪枝策略都是基于泛化能力(验证集结果)进行的。

预剪枝

  • 在决策树生成过程中进行
  • 对于某一个划分,如果划分后验证集上的准确率有提升,就进行划分;反之若划分后验证集上的准确率下降,就不进行划分
  • 优点:显著减小训练时间开销
  • 缺点:本质是一种贪心策略,忽视了后续划分对泛化能力的提升,训练出的决策树往往较小,可能造成欠拟合。

后剪枝

  • 在决策树生成后进行
  • 剪枝方法同上,不过是自下而上剪枝
  • 优点:通常比预剪枝保留更多的分支,欠拟合风险很小
  • 缺点:训练开销比预剪枝,甚至未剪枝要大得多

连续值和缺失值处理

连续值处理

  • 可在训练过程中使用二分法划分连续属性

  • 连续属性可以出现在多次出现在后代中,比如使用两次二分法实现三分类。

    graph TB; A(x<=0?)--Y-->B(x<=0) A--N-->C(x<=10?) C--Y-->D(0< x<=10) C--N-->E(x>10)

缺失值处理

确实值处理需要面对两个问题:

  1. 训练过程中,如何选择划分属性 - 调整信息增益(率)的计算方式。只有存在的值能够用来计算信息增益。
  2. 预测过程中,如何划分缺值样本 - 将预测结果变为一个概率分布。缺失值可能是该属性的任意一个值,可利用该属性的分布估计不同状态下的预测结果。

训练算法

决策树有一些常用的训练算法,是对以上知识点的整合应用。例如 CART,ID3,C4.5,其中 C4.5 是由 ID3 发展而来。具体区别如下:

CART (1984) ID3 (1986) C4.5 (1993)
分支指标 GINI 系数 信息增益 信息增益率
输入变量 连续/离散 离散 连续/离散
输出变量 回归/分类 分类 分类
树结构 二叉树 多叉树 多叉树
特征重用 可重用 不可重用 不可重用
缺失值 可处理 不可处理 可处理
计算量 较高 较高
泛化误差 较大 较小 较小
适用样本 大样本 小样本 小样本
剪枝方法 代价复杂度 (CCP) 正则化损失函数 正则化损失函数

*多变量决策树

一般的决策树,每个结点只考虑一个属性,决策边界是垂直于坐标轴的;如果每个结点考虑多个属性,实现一个线性分类器,那么决策边界就能更好的拟合结果。本质类似一个树状的多层感知机。

posted @ 2020-10-05 18:48  许瑞晗  阅读(404)  评论(0)    收藏  举报