西瓜书第四章阅读笔记
西瓜书第四章阅读笔记
- 1、基本概念
- 1.1 基本算法
- 1.2 信息熵
- 1.3 信息增益
- 2、ID3决策树
- 3、C4.5决策树
- 4、CART决策树
- 5、剪枝操作
- 6、连续与缺失值处理
- 7、多变量决策树
- 8、 补充
1、基本概念
1.1 基本算法
决策树(decision tree) 是一种基于树结构进行决策的机器学习算法。从逻辑角度来看,决策树是许多“if-else”语句的组合;从几何角度出发,决策树就是基于某种准则划分特征空间。而其最终目的是尽可能地是样本分类越分越“纯”。
一般的,一棵决策树包含一个根结点、若干内部结点核若干叶结点;根结点包含样本全集,而叶结点对应于决策结果。其它每个结点对应于一个属性测试,结点中所包含的样本就是根据属性测试的结果划分而来的。从根结点到每个叶结点的路径对应于一个测试序列。
1.2 信息熵
信息熵(information entropy) 是度量样本集合纯度的一种常用指标。若当前样本集合D中第k类样本所占比例为 p k ( k = 1 , 2 , . . . , ∣ Y ∣ ) p_k(k=1,2,...,| \mathcal{Y}|) pk(k=1,2,...,∣Y∣),则集合D的信息熵定义如下:
E n t ( D ) = − ∑ k = 1 ∣ Y ∣ p k log b p k ( b 可取值如 2 , e 等 ) Ent(D)=-\sum_{k=1}^{|\mathcal{Y}|}p_k\log_bp_k \qquad(b可取值如2,e等) Ent(D)=−k=1∑∣Y∣pklogbpk(b可取值如2,e等)
信息熵是自信息 I ( x ) = − log b p ( x ) I(x)=-\log_bp(x) I(x)=−logbp(x) 的期望,能度量变量x的不确定性。 E n t ( D ) Ent(D) Ent(D)的值越小,则D的纯度越高,不确定性越小。
1.3 信息增益
首先简单的给出条件熵的相关概念。条件熵讲的是在变量X给定的情况下,变量Y条件概率分布的信息熵关于X的期望,其度量的是已知随机变量X的条件下随机变量Y的不确定性。条件熵数学表达为: E n t ( Y ∣ X ) = ∑ x i ∈ X p ( x ) E n t ( Y ∣ X = x i ) Ent(Y|X)=\sum\limits_{x_i\in X}p(x)Ent(Y|X=x_i) Ent(Y∣X)=xi∈X∑p(x)Ent(Y∣X=xi)。
接下来,假定离散属性a有 V V V个可能却只 a 1 , a 2 , . . . , a V {a^1,a^2,...,a^V} a1,a2,...,aV,当采用a对集合D进行划分时,将数量 V V V个分支结点,其中第 v v v个分支结点包含D中所有属性a上所有取值为 a v a^v av的样本,记为 D v D^v Dv。根据信息熵的定义式可以得到 D v D^v Dv的信息熵,考虑到不同分支结点所含样本的数量不一样,因此采用赋予权重 ∣ D v ∣ ∣ D ∣ \frac{|D^v|}{|D|} ∣D∣∣Dv∣的方法。将各个分支结点的加权信息熵求和,其实得到的就是集合D在变量属性取 V V V中各个值后的总的信息熵: ∑ v = 1 V ∣ D v ∣ ∣ D ∣ E n t ( D v ) \sum_{v=1}^{V}\frac{|D^v|}{|D|}Ent(D^v) ∑v=1V∣D∣∣Dv∣Ent(Dv),这其实也就是集合D关于属性a的条件熵。
所以,可计算用属性a划分样本集D进行划分所得的信息增益,也就是划分前后的信息熵之差: G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ E n t ( D v ) Gain(D,a)=Ent(D)-\sum_{v=1}^{V}\frac{|D^v|}{|D|}Ent(D^v) Gain(D,a)=Ent(D)−v=1∑V∣D∣∣Dv∣Ent(Dv)
信息增益值代表着在已知属性(特征)a的取值后D的不确定性减少量或纯度提升量,一般来说,信息增益值越大,获得的纯度提升也就越大,因此其可以作为决策树算法选择用来划分样本集的属性的依据。
2、ID3决策树
- 划分准则:信息增益
- 步骤:计算出样本集D对每个属性的信息增益,选择信息增益最大的属性作为划分属性来对集合中的样本进行划分。
3、C4.5决策树
- 产生背景 :信息增益准则对可取值数目较多的属性有所偏好(本质时每个取值中样本数量太少)。例如,倘若对于每个样本的有一个“编号”属性(编号不重复),则在计算各属性信息增益时,“编号”的信息增益往往会远大与其他属性,这样按“编号”划分后,每个结点仅包含一个样本,此时分支结点的纯度最大。但是这样的划分没有泛化能力,无法对新样本进行准确识别。
- 划分准则:增益率(gain_ratio)
定义为: G a i n r a t i o ( D , a ) = G a i n ( D , a ) I V ( a ) Gain_ratio(D,a)=\frac{Gain(D,a)}{IV(a)} Gainratio(D,a)=IV(a)Gain(D,a)
其中 I V ( a ) = − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ log 2 ∣ D v ∣ ∣ D ∣ IV(a)=-\sum_{v=1}^{V}\frac{|D^v|}{|D|}\log_2\frac{|D^v|}{|D|} IV(a)=−∑v=1V∣D∣∣Dv∣log2∣D∣∣Dv∣称为a的**“固有值”(intrinsic value)** ,当a的可能取值越多,V越大,IV(a)越大,一定程度上减小增益率。
- 步骤:由定义可以看出,与信息增益相反,增益率准则对可取值数目较少的属性有所偏好。所以C4.5决策树算法在增益率准则的基础上使用了启发式选择,即先从划分属性中找出信息增益高于平均水平的,在从中选择增益率高的。
4、CART决策树
- 划分准则:基尼指数(Gini index)
数据集D的基尼指数定义为: G i n i ( D ) = ∑ k = 1 ∣ Y ∣ ∑ k ′ ≠ k p k p k ′ ≠ k = ∑ k = 1 ∣ Y ∣ p k ( 1 − p k ) = 1 − ∑ k = 1 ∣ Y ∣ p k 2 Gini(D)=\sum\limits_{k=1}^{|\mathcal Y|}\sum\limits_{k' \neq k}p_kp_{k' \neq k}=\sum\limits_{k=1}^{|\mathcal Y|}p_k(1-p_k)=1-\sum\limits_{k=1}^{|\mathcal Y|}{p_k}^2 Gini(D)=k=1∑∣Y∣k′=k∑pkpk′=k=k=1∑∣Y∣pk(1−pk)=1−k=1∑∣Y∣pk2,其反映了从样本集中随机抽取两个样本的类别标记不一致的概率。即 G i n i ( D ) Gini(D) Gini(D)值越小,数据集D纯度越高。
数据集D中属性a的基尼指数定义为: G i n i _ i n d e x ( D , a ) = ∑ v = 1 V ∣ D v ∣ ∣ D ∣ G i n i ( D v ) Gini\_index(D,a)=\sum\limits_{v=1}^{V}\frac{|D^v|}{|D|}Gini(D^v) Gini_index(D,a)=v=1∑V∣D∣∣Dv∣Gini(Dv)
- 步骤:在侯选属性集合A中,对使用每个属性划分后计算 G i n i _ i n d e x ( D , a ) Gini\_index(D,a) Gini_index(D,a),选择最小的 G i n i _ i n d e x Gini\_index Gini_index对应的属性a来划分集合D。
5、剪枝操作
剪枝(pruning) 是决策树算法缓解“过拟合”的主要手段,通过主动去掉一些分支来减少把训练集的一些特点当作所有数据都具有的一般性质情况的出现,有 “预剪枝”(prepruning) 和 “后剪枝”(postpruning) 两种基本策略。
- 预剪枝:在决策树生成过程中,对每个结点在划分前先进行估计,若其划分不能带来决策树泛化性能的提升,则不进行该划分操作,并将该结点标记为叶结点。
- 后剪枝:先在训练集上生成一颗完整的决策树,然后自底向上对每个非叶结点进行考察,若将该节点对应的子树替换为叶结点能带来决策树泛化性能的提升,则将该子树替换为叶结点。
- 预剪枝 vs 后剪枝:两者都在一定程度上减小了决策树过拟合的风险。预剪枝能显著减少决策树的训练时间开销和预测时间开销,但因为其基于“贪心”的本质禁止某些分支展开,可能造成欠拟合的风险。相较之下,在一般情况下,后剪枝决策树的欠拟合风险小,泛化性性能也更好,但训练时间开销则比未剪枝决策树和预剪枝决策树大得多。
6、连续与缺失值处理
- 连续值处理:
因为连续属性的取值个数是无限的,因此不能直接跟解决连续属性的可取值来对结点进行划分,要使用离散化技术对连续属性进行处理。
如C4.5决策树算法中采用的是 二分法(bi-partition) 来对连续属性进行处理。对于样本集D和连续属性a,假设a在D上出现了n个不同取值,按从小到大排序为 a 1 , a 2 , . . . a n {a^1,a^2,...a^n} a1,a2,...an。选择一个划分点 t ,将D分为子集 D t − 与 D t + D_t^-与D_t^+ Dt−与Dt+,其中 D t − D_t^- Dt−包含在属性a上值小于 t 的样本, D t + D_t^+ Dt+包含在属性a上值大于 t 的样本。 - 缺失值处理:
缺失值处理考虑的是现实中采集到的样本往往是不完整的,可能某些样本在某些属性上的值缺失,而简单的丢弃样本往往造成信息极大的浪费。
C4.5决策树算法中对于缺失值的处理的大体思路如下:首先每个样本x赋予一个权重wx,初始值为1.然后对于每个属性ai,分别计算出 ρ ρ ρ(无缺失值样本所占的比例), p k ~ \tilde{p_k} pk~(无缺失值样本中第k类样本所占的比例), r v ~ \tilde{r_v} rv~(无缺失值样本中在属性a上取值为av的样本所占比例),然后在信息增益的计算中利用上述信息。而在给定属性划分样本时,若样本x在划分属性a上的取值已知,则将x划分入与其取值相对应的子结点,样本权重在子结点中保持为wx;若样本x在划分属性a上的取值未知,则将x同时划入所有子结点,并将样本权值wx调整为 r v ~ ⋅ \tilde{r_v} \cdot rv~⋅wx(也就是让同一个样本以不同的概率划入不同的子结点中)。
7、多变量决策树
d个属性构成一个d维空间,对样本分类意味着在这个坐标空间中寻找不同类样本之间的分类边界。而决策数所形成的分类边界的明显特点:轴平行(axis-parallel),即其分类边界由若干个与坐标轴平行的分段组成。
“多变量决策数”(multivariate decision tree) 使用斜的划分边界。该类决策树中,非叶节点不再是仅对某个属性,而是对属性的线性组合进行测试。学习过程中,不是为每一个非叶结点寻找一个最优划分属性,而是试图建立一个合适的线性分类器。
8、 补充
- 条件熵相关概念
- Datawhale决策树讲解视频
西瓜书第四章阅读笔记相关推荐
- 西瓜书第三章阅读笔记
西瓜书第三章阅读笔记 第三章 线性模型 1.机器学习三要素 2.基本形式 3.线性回归 3.1 模型 3.2 策略 3.3 求解算法 4.对数几率回归 4.1 模型 4.2 策略 4.3 求解算法 5 ...
- 周志华西瓜书第三章学习笔记
第三章学习笔记 文章目录 第三章学习笔记 1.知识脉络 2.我的笔记 参考 1.知识脉络 2.我的笔记 这一章公式推导实在太多了,需要补充的推导过程也有很多,就不写电子档了.扩展公式推导和LDA部分补 ...
- 大道至简第四章阅读笔记
第四章内容中给我们介绍了一种情况,就是当客户与调研人员在探讨需求问题时,总是因为不能很好的沟通,而把事情搞得很复杂,原因在于调研人员过分流于形式,他们总是用专业的语言向客户介绍着他们的产品项目,但对于 ...
- STA of nanometer design 第四章阅读笔记
第四章主要讲的是互连线上的寄生参数----电阻.电容 1.互连线的电阻指的是从cell的输出端到其所驱动的所有fanout的输入端的电阻. 电容指的是对地的电容以及信号线间的耦合电容 RC的等效模型有 ...
- dx12 龙书第四章学习笔记 -- Direct3D的初始化
1.预备知识: ①Direct3D 12概述: 通过Direct3D这种底层图形应用程序编程接口(Application Programming Interface, API),即可在应用程序中对图形 ...
- 《机器学习》西瓜书第四章 神经网络(南瓜书辅助)
5.1 M-P神经元 M‑P神经元(一个用来模拟生物行为的数学模型):接收n个输入(通常是来自其他神经元),并给各个输入赋予权重计算加权和,然后和自身特有的阈值 进行比较(作减法),最后经过激活函数( ...
- 西瓜书第二章阅读笔记
西瓜书第二章阅读笔记 第二章 模型评估与选择 1.经验误差与过拟合 2.模型评估方法 2.1 留出法 hold out 2.2 交叉验证法 cross valildation 2.3 自助法 boot ...
- 西瓜书第一章阅读笔记
西瓜书第一章阅读笔记 第一章 绪论 1.机器学习基本术语 2.归纳偏好 3.所有学习算法一样优秀? 4.补充资料 第一章 绪论 1.机器学习基本术语 记录:对一个事件或对象的描述,也称为"示 ...
- 《人人都是产品经理》第四章读书笔记及读后感作文2400字
<人人都是产品经理>第四章读书笔记及读后感作文2400字: 最近一直在忙别的学习,以至于好久没有更新公众号了,也好久没有写读书笔记了.<人人都是产品经理>这本书其实早在一个月前 ...
最新文章
- ECMAScript 6 未来前景
- 工作187:表单校验规则
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-系列目录
- css盒模型只能应用于html,iframe,css样式表,盒模型的使用方法-2019年9月3日
- CCF - 201412-1 - 门禁系统
- 使用android SpannableStringBuilder实现图文混排,看到许多其他
- SVN增加文件后,文件无法自动包括在项目中的原因
- [Soft]软件技术的两个趋势
- (转liigo)Rust 1.0发布一周年,发展回顾与总结
- 城市智能公交管理系统方案
- javascript常用正则表达式
- java war 打包、解压命令
- 服务器搭建网站公网ip,如何获取公网ip,自己搭建公网ip服务器的方法
- python带你采集大型网游英雄皮肤图~
- Tableau-盒须图
- 如何在GitHub上找到想要的项目?
- SCU - 1114 数字三角(dp入门ing)
- 计算机word如何插入新列表,电脑word文档中怎么给表格自动添加序号?怎么增加表目录...
- 基于Abaqus的umat子程序实现三维编织复合材料疲劳性能预测
- 电机控制----FOC框架讲解
热门文章
- MATLAB导入mat文件的方法
- Qt中使用诺基亚HERE地图的方式
- prometheus grafana graylog 钉钉告警 短信告警 电话告警系统 PrometheusAlert
- 林轩田机器学习基石入门(三)
- 全球与中国低压电气机柜市场现状及未来发展趋势(2022)
- 皮影机器人ppt_第27届计算机表演赛—智能皮影机器人
- win7 联想一键恢复工程师版7.0安装笔记
- Photoshop 22.3 mac版已原生支持Mac M1芯片 速度比intel快50%
- 推特一名股东起诉马斯克,要求法庭强制完成收购交易
- 【图文教程】Tomcat