概述:

决策树是一种基本的分类与回归方法,表示基于特征对实例进行分类的过程。可看作 if-then规则的集合,也可认为是 定义在特征空间与类空间上的条件概率分布。

主要优点:模型可读性高,分类速度快;

决策树学习包括3个步骤:

1. 特征选择;

2. 决策树生成

3. 决策树修剪

经典算法: ID3算法、C4.5算法、CART算法

5.1 决策树模型与学习

5.1.1 决策树模型

定义5.1 (决策树)分类决策树模型是一种 描述对实例进行分类的树形结构,由结点node和有向边directed edge组成,结点有2种结构:内部节点internal node表示一个特征或属性,和 叶节点leaf node表示一个类别。

从根节点开始,对实例的某一特征进行测试,根据测试结果将实例分配到其子结点,
每一个子结点对应 该特征的一个取值。
如此递归地对实例进行测试并分配,直至达到叶节点。

5.1.2 决策树:if-then 规则的集合

由根节点到叶节点的每一条路径构建一条规则,路径上内部节点的特征对应着规则的条件,叶节点的类对应着规则的结论。

具有互斥且完备的重要性质:每一个实例有且只会被一条路径或规则所覆盖。

5.1.3 决策树:给定特征条件下的条件概率分布

决策树所表示的条件概率分布由 各个单元(互不相交的特征空间partition)给定条件下类的条件概率分布组成。

5.1.4 决策树学习

数据集                   

N为样本容量,n为特征个数,xi为一个输入实例(特征向量)。

目标:一个与训练数据矛盾较小的决策树,同时具有很好的泛化能力。通常是 递归地选择最优特征,并根据该特征对训练数据进行分割,使得各子数据集再当前条件下拥有好的分类结果。如可被基本正确分类,则构建叶节点,并将子集分到所对应的叶结点中去。如此递归,直至所有训练数据子集被分到叶节点,拥有明确的类。

但是会产生过拟合现象,如何解决?

对已生成的树进行自下而上的剪枝。具体地,去掉过于细分的叶节点,使其退回到父节点,甚至更高的结点,并将他们改为新的叶节点。

进行特征选择,避免模型选择 那些可能特征取值很多的特征项。

策略:确定损失函数为正则化的极大似然估计,最小化loss。

5.2 特征选择

5.2.1 特征选择问题

选择对训练数据分类能力强的特征,会提高决策树的学习效率,而 如果根据某个特征进行分类,其结果与随机分类结果没有差别,则可以不考虑这些特征。

一般来说,给定一组训练数据,我们可以使用不同的特征作为根节点,对数据进行划分子集,由此得到不同的决策树。但问题是:究竟选择哪个特征来划分特征空间,来得到一颗效率和准确率更高的决策树(使得各个子集在当前条件下有最好的分类)?

答案是:使用信息增益准则。

5.2.2 信息增益

熵(entropy):表示随机变量不确定性的度量,记 H(X) 或 H(p)

设X是 取有限个值的离散随机变量,其概率分布为:

则 随机变量X的熵为:

熵越大,随机变量的不确定性越大,且 

条件熵(conditional entropy):表示在已知随机变量X的条件下,随机变量Y的不确定性,记 H(Y|X)。

设随机变量(X, Y)的联合概率分布为: 

信息增益(information gain)表示 得知特征X的信息而使得类Y的信息的不确定性减少的程度。

定义5.2(信息增益)特征A对训练数据集D的信息增益 g(D, A),定义为 集合D的经验熵H(D) 与 特征A在给定条件下 D 的经验条件熵 H(D|A) 之差,即

H(D) 表示了对数据集D进行分类的不确定性;H(D|A)则表示 在特征A给定的条件下,对数据集 D 进行分类的不确定性。显然,不同的特征将导致不同的信息增益。

信息增益等价于 训练数据集中 类与特征的互信息。

算法 5.1 (信息增益算法)

输入:D 和 A

输出:A 对 D 的信息增益g(D, A).

1)计算D的经验熵 H(D):

2) 计算 A 对 D 的条件经验熵 H(D|A):

3) 计算信息增益:

5.2.3 信息增益比(information gain ratio)

定义5.3 (信息增益比)

特征 A 对训练数据集 D 的信息增益比  定义为 其信息增益 与 D的经验熵 之比:

5.3 决策树的生成

5.3.1   ID3生成算法:在决策树各个结点上应用信息增益准则选择特征,递归地构建决策树。

可参考【机器学习-西瓜书】第4章 4.2节

算法 5.2 (ID3 算法)

输入:D, A, ε

输出:T

1)若 D 中所有实例属于同一类Ck,则T 为单结点树,类Ck作为该结点的类标记,返回T;

2)若A = ,则T为单结点树,并将 D中实例树最大的类Ck作为该结点的类标记,返回T;

3)否则,计算 A 中各个特征对 D 的信息增益,选择信息增益最大的特征Ag;

4)若 g(D, Ag) 小于 阈值ε,则T为单结点树,并将 D 中实例数最大的 类Ck作为该结点的类标记,返回T;

5)否则,对Ag的每一个可能取值ai,根据Ag = ai,将 D 分割为若干非空子集Di,将 Di 中实例数最大的类 作为类标记,构建子结点,由结点及其子结点构成数T,返回T;

6)对第 i 个子结点,以 Di 为训练集,以 A - {Ag} 为特征集,递归调用 1)~5) 步,得到子树 Ti,返回Ti。

5.3.2  C4.5生成算法:使用信息增益比 来选择特征。

算法过程参见 ID3

5.4 决策树的剪枝:简化已生成的树的过程

定义决策树学习的损失函数:

t表示 树T的叶结点,Nt表示该结点t 由Nt的样本点,Ntk表示 Nt个样本中 Ntk个属于类别k,Ht(T)表示 叶结点t的经验熵。

C(T)表示 模型对训练数据的预测误差,即拟合程度,|T|表示模型复杂度,α的取值较大时,模型简单,较小时模型复杂。

剪枝 ==  当α确定时,选择损失函数最小的模型。(α确定时,子树越大,拟合度高,但复杂度也高,反之亦然)

算法 5.4 (树的剪枝算法)

输入:已产生的整个树T, α

输出:子树 

1)计算每个结点的经验熵

2)递归地从树的叶结点向上回缩:

设 回缩前和回缩后的树分别为 ,其对应损失函数分别为 

如果  , 则进行剪枝,将父结点变为新的叶结点

3) 返回2)直至不能继续为止,得到损失函数最小的子树 

5.5 CART算法:P(Y|X),等价于递归地二分每个特征,将特征空间划分为有限个单元,并在其上确定预测的概率分布。

分为2步:

1. 决策树生成:决策树尽量大

2. 决策树剪枝:使用验证集 对已生成的树 进行剪枝并选择最优子树,使用最小化损失函数策略。

5.5.1 CART生成

1. 回归树生成:最小二乘法

一个回归树 对应着特征空间的一个划分以及在划分单元上的输出值。模型可表示为:

M个划分单元,每个单元上 有一个固定输出值

2.  分类树生成

定义 5.4 (基尼指数)

假设有 K 个类,样本点属于第k类的概率为 pk,则概率分布的基尼指数为:

二分类问题中,属于第1类的概率为p,则概率分布的基尼指数为:

给定样本集合D,其基尼指数为:

Ck代表 D中属于 第k类的样本子集,总共有K个类别。

集合 D 根据 A 是否取值为a 可被分割为 D1 和 D2, 此时 D 的基尼指数定义为:

基尼指数值越大,样本集合的不确定性就越大。

5.5.2 CART剪枝

由两步组成:

1)从以生成决策树T0底端开始不断剪枝,直到T0的根结点,形成子树序列

2)通过交叉验证法 在验证集上,对子树序列进行测试,从中选择最优子树。

 表示 使得损失函数  最小的子树。α 用来 模型拟合能力 和 模型复杂度。较大值的α 时最优子树Tα偏小,而较小值的α时Tα偏大。

对于T0中每一个内部节点t,计算

上式g(t)表示 剪枝后整体损失函数较少的程度。从T0中剪去 g(t)最小的Tt,将得到的子树作为 T1,同时将最小的g(t)设为α1。T1为区间[α1, α2)的最优子树。

【统计机器学习-李航】第5章 决策树相关推荐

  1. 复现经典:《统计学习方法》第 5 章 决策树

    本文是李航老师的<统计学习方法>[1]一书的代码复现. 作者:黄海广[2] 备注:代码都可以在github[3]中下载. 我将陆续将代码发布在公众号"机器学习初学者", ...

  2. 《机器学习》第四章决策树答案

    1.证明对于不含冲突数据(即特征向量完全相同但标记不同)的训练集,必存在与训练集一致(即训练误差为0)的决策树 anser 1:假设不存在与训练集一致的决策树,那么训练集训练得到的决策树至少有一个节点 ...

  3. 统计学习方法 李航---第7章 支持向量机

    第7章 支持向量机 支持向量机(support vector machines, SVM)是一种二类分类模型.它的基本模型是定义在特征空间上的间隔最大的线性分类器:支持向量机还包括核技巧,这使它成为实 ...

  4. 统计学习方法-李航(4)

    统计学习方法-李航(第一章4) 泛化能力 泛化误差 泛化误差上界 考虑二分类问题的泛化误差上界 泛化误差上界定理 泛化误差上界定理证明 泛化能力 泛化误差 学习方法的泛化能力是指由该方法学习到的模型对 ...

  5. 统计学习方法-李航(3)

    统计学习方法-李航(第一章3) 模型评估与模型选择 训练误差与测试误差 过拟合与模型选择 例如:多项式拟合 正则化和交叉验证 正则化 例如:回归问题 交叉验证 简单交叉验证 S折交叉验证(S-fold ...

  6. 统计学习方法-李航(2)

    统计学习方法-李航(第一章2) 如何对经验风险进行矫正 经验风险最小化(ERM) 缺点 结构风险最小化 极大似然估计和贝叶斯估计(PR) 极大似然估计 贝叶斯估计 如何对经验风险进行矫正 在现实中,由 ...

  7. 统计学习方法-李航(1)

    统计学习方法-李航(第一章1) 第一章 统计学习概论 1.1 统计学习 1.2 监督学习 1.3 统计学习的三要素 第一章 统计学习概论 1.1 统计学习 1.统计学习是关于计算机基于数据构建概论统计 ...

  8. 第五章——决策树笔记(《统计学习方法》-李航)

    第五章--决策树笔记(<统计学习方法>-李航) 本文主要记录自己学习李航的小蓝书的过程,之前的4张有时间再补上.本文只做知识点整理,不做详细的见解,因为我认为,依照本人的知识水平,不可能比 ...

  9. 【机器学习实战】第3章 决策树(Decision Tree)

    第3章 决策树 <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/ ...

最新文章

  1. IPFS + 区块链 系列】 入门篇 - IPFS + Ethereum (中篇)-js-ipfs-api - 图片上传到IPFS以及下载
  2. 用aspect在springboot中记录操作日志至数据库的详细过程
  3. 使用 read_graphviz 将 GraphViz Dot 文本图加载到 BGL adjacency_list 图的简单示例
  4. php魔术变量的概念_PHP 魔术变量和魔术函数详解
  5. Taro+react开发(68):页面数据太长不走url走localstorage
  6. 在ARM Cortex-M上实现FreeRTOS性能计数器
  7. 蚂蚁集团暂缓两地上市,重新上市或推迟半年,阿里股价相继大跌...
  8. NYOJ2-括号配对问题
  9. 电脑坏掉之后,Oracle数据恢复
  10. Azure Kinect微软摄像头Unity开发小结
  11. VmWare配置网络桥接模式,实现虚拟机联网。
  12. 使用AutoHotKey将多行内容转成单行并翻译或获取中文拼音
  13. 吃透Redis系列(五):RDB和AOF持久化详细介绍
  14. 7z制作自解压安装包(转载)
  15. 计算机软考职称属于哪个大类,计算机软考职称是什么
  16. 【NFS共享存储服务】
  17. git常用命令-zqh
  18. 何谓三十而立 四十不惑 五十知天命 六十知耳顺?
  19. CNCF对象存储工具之MinIO:3:客户端mc安装与设定
  20. 跑得快人工智能自动代打训练程序设计

热门文章

  1. 将PDF文件转换为Word文档和其他格式
  2. 2022,再见,2023,我来了!
  3. python实现打开笔记本摄像头
  4. 黑苹果系统更换SSD的方法
  5. 计算机软考抵个税,软考证书怎么来抵扣个税
  6. Excel汉字转换得到其拼音函数
  7. 在android studio下 如何去掉任务栏以及显示全屏
  8. /proc/mtd 各个参数含义 -- linux内核
  9. 博客2.0时代——读者的赞赏,才是原创的动力
  10. 运维部奖励员工之大连游记