【机器学习】决策树

时间:2020-10-05 22:31:25   收藏:0   阅读:37

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)

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

预剪枝

后剪枝

连续值和缺失值处理

连续值处理

缺失值处理

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

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

训练算法

决策树有一些常用的训练算法,是对以上知识点的整合应用。例如 CART,ID3,C4.5

*多变量决策树

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

评论(0)
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!