码迷,mamicode.com
首页 > 其他好文 > 详细

【机器学习】决策树

时间:2020-10-05 22:31:25      阅读:37      评论:0      收藏:0      [点我收藏+]

标签:树的定义   从表   play   一点   多变量   display   cal   策略   分布   

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

*多变量决策树

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

【机器学习】决策树

标签:树的定义   从表   play   一点   多变量   display   cal   策略   分布   

原文地址:https://www.cnblogs.com/xuruihan/p/13770991.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!