【统计机器学习-李航】第5章 决策树
概述:
决策树是一种基本的分类与回归方法,表示基于特征对实例进行分类的过程。可看作 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章 决策树相关推荐
- 复现经典:《统计学习方法》第 5 章 决策树
本文是李航老师的<统计学习方法>[1]一书的代码复现. 作者:黄海广[2] 备注:代码都可以在github[3]中下载. 我将陆续将代码发布在公众号"机器学习初学者", ...
- 《机器学习》第四章决策树答案
1.证明对于不含冲突数据(即特征向量完全相同但标记不同)的训练集,必存在与训练集一致(即训练误差为0)的决策树 anser 1:假设不存在与训练集一致的决策树,那么训练集训练得到的决策树至少有一个节点 ...
- 统计学习方法 李航---第7章 支持向量机
第7章 支持向量机 支持向量机(support vector machines, SVM)是一种二类分类模型.它的基本模型是定义在特征空间上的间隔最大的线性分类器:支持向量机还包括核技巧,这使它成为实 ...
- 统计学习方法-李航(4)
统计学习方法-李航(第一章4) 泛化能力 泛化误差 泛化误差上界 考虑二分类问题的泛化误差上界 泛化误差上界定理 泛化误差上界定理证明 泛化能力 泛化误差 学习方法的泛化能力是指由该方法学习到的模型对 ...
- 统计学习方法-李航(3)
统计学习方法-李航(第一章3) 模型评估与模型选择 训练误差与测试误差 过拟合与模型选择 例如:多项式拟合 正则化和交叉验证 正则化 例如:回归问题 交叉验证 简单交叉验证 S折交叉验证(S-fold ...
- 统计学习方法-李航(2)
统计学习方法-李航(第一章2) 如何对经验风险进行矫正 经验风险最小化(ERM) 缺点 结构风险最小化 极大似然估计和贝叶斯估计(PR) 极大似然估计 贝叶斯估计 如何对经验风险进行矫正 在现实中,由 ...
- 统计学习方法-李航(1)
统计学习方法-李航(第一章1) 第一章 统计学习概论 1.1 统计学习 1.2 监督学习 1.3 统计学习的三要素 第一章 统计学习概论 1.1 统计学习 1.统计学习是关于计算机基于数据构建概论统计 ...
- 第五章——决策树笔记(《统计学习方法》-李航)
第五章--决策树笔记(<统计学习方法>-李航) 本文主要记录自己学习李航的小蓝书的过程,之前的4张有时间再补上.本文只做知识点整理,不做详细的见解,因为我认为,依照本人的知识水平,不可能比 ...
- 【机器学习实战】第3章 决策树(Decision Tree)
第3章 决策树 <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/ ...
最新文章
- IPFS + 区块链 系列】 入门篇 - IPFS + Ethereum (中篇)-js-ipfs-api - 图片上传到IPFS以及下载
- 用aspect在springboot中记录操作日志至数据库的详细过程
- 使用 read_graphviz 将 GraphViz Dot 文本图加载到 BGL adjacency_list 图的简单示例
- php魔术变量的概念_PHP 魔术变量和魔术函数详解
- Taro+react开发(68):页面数据太长不走url走localstorage
- 在ARM Cortex-M上实现FreeRTOS性能计数器
- 蚂蚁集团暂缓两地上市,重新上市或推迟半年,阿里股价相继大跌...
- NYOJ2-括号配对问题
- 电脑坏掉之后,Oracle数据恢复
- Azure Kinect微软摄像头Unity开发小结
- VmWare配置网络桥接模式,实现虚拟机联网。
- 使用AutoHotKey将多行内容转成单行并翻译或获取中文拼音
- 吃透Redis系列(五):RDB和AOF持久化详细介绍
- 7z制作自解压安装包(转载)
- 计算机软考职称属于哪个大类,计算机软考职称是什么
- 【NFS共享存储服务】
- git常用命令-zqh
- 何谓三十而立 四十不惑 五十知天命 六十知耳顺?
- CNCF对象存储工具之MinIO:3:客户端mc安装与设定
- 跑得快人工智能自动代打训练程序设计