第五章 决策树——学习笔记
(一)决策树模型与学习
(二)特征选择
熵(entropy): H ( x ) = H ( p ) = − ∑ n j = 1 p i l o g p i H(x)=H(p)=- \underset {j=1}{\overset n {\sum}}p_ilogp_i H(x)=H(p)=−j=1∑npilogpi对数底为2单位是比特(bit),自然对数单位为纳特(nat)。
条件熵(conditional entropy): H ( Y ∣ X ) = ∑ n j = 1 p i H ( Y ∣ X = x i ) H(Y|X)=\underset {j=1}{\overset n {\sum}}p_iH(Y|X=x_i) H(Y∣X)=j=1∑npiH(Y∣X=xi)其中 p i = P ( X = x i ) , i = 1 , 2 , . . . , n p_i=P(X=x_i),i=1,2,...,n pi=P(X=xi),i=1,2,...,n。
信息增益(information gain):得知特征 X X X的信息而使得类 Y Y Y的信息的不确定性减少的程度。 g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g(D,A)=H(D)−H(D∣A)经验熵 H ( D ) H(D) H(D)表示对数据集 D D D分类的不准确性,经验条件熵 H ( D ∣ A ) H(D|A) H(D∣A)表示在特征 A A A给定的条件下对数据集 D D D分类的不准确性。因此,信息增益大意味着更好的分类能力。
一般的,熵 H ( Y ) H(Y) H(Y)与条件熵 H ( Y ∣ X ) H(Y|X) H(Y∣X)的差称为互信息(mutual information)。在决策树中,信息增益与互信息二者等价。
算法(信息增益)
输入:训练数据集 D D D和特征 A A A;
输出:特征 A A A对训练数据集 D D D的信息增益 g ( D , A ) g(D,A) g(D,A)
(1)计算数据集 D D D的经验熵: H ( D ) = − ∑ K k = 1 ∣ C k ∣ ∣ D ∣ l o g 2 ∣ C k ∣ ∣ D ∣ H(D)=-\underset {k=1}{\overset K {\sum}}\frac{|C_k|}{|D|}log_2\frac{|C_k|}{|D|} H(D)=−k=1∑K∣D∣∣Ck∣log2∣D∣∣Ck∣
(2)特征 A A A对训练数据集 D D D的经验条件熵: H ( D ∣ A ) = ∑ n i = 1 ∣ D i ∣ ∣ D ∣ H ( D i ) = − ∑ n n = 1 ∣ D i ∣ ∣ D ∣ ∑ K k = 1 ∣ D i k ∣ ∣ D i ∣ l o g 2 ∣ D i k ∣ ∣ D i ∣ H(D|A)=\underset {i=1}{\overset n {\sum}}\frac{|D_i|}{|D|}H(D_i)=-\underset {n=1}{\overset n {\sum}}\frac{|D_i|}{|D|}\underset {k=1}{\overset K {\sum}}\frac{|D_{ik}|}{|D_i|}log_2\frac{|D_{ik}|}{|D_i|} H(D∣A)=i=1∑n∣D∣∣Di∣H(Di)=−n=1∑n∣D∣∣Di∣k=1∑K∣Di∣∣Dik∣log2∣Di∣∣Dik∣
(3)计算信息增益: g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g(D,A)=H(D)−H(D∣A)
例:贷款申请样本数据集如下,根据信息增益准则选择最优特征。
ID | 年龄 | 有工作 | 有自己的房子 | 信贷情况 | 类别 |
---|---|---|---|---|---|
1 | 青年 | 否 | 否 | 一般 | 否 |
2 | 青年 | 否 | 否 | 好 | 否 |
3 | 青年 | 是 | 否 | 好 | 是 |
4 | 青年 | 是 | 是 | 一般 | 是 |
5 | 青年 | 否 | 否 | 一般 | 否 |
6 | 中年 | 否 | 否 | 一般 | 否 |
7 | 中年 | 否 | 否 | 好 | 否 |
8 | 中年 | 是 | 是 | 好 | 是 |
9 | 中年 | 否 | 是 | 非常好 | 是 |
10 | 中年 | 否 | 是 | 非常好 | 是 |
11 | 老年 | 否 | 是 | 非常好 | 是 |
12 | 老年 | 否 | 是 | 好 | 是 |
13 | 老年 | 是 | 否 | 好 | 是 |
14 | 老年 | 是 | 否 | 非常好 | 是 |
15 | 老年 | 否 | 否 | 一般 | 否 |
解:
Step1:计算经验熵,类别分为两类,有 H ( D ) = − 9 15 l o g 2 9 15 − 6 15 l o g 2 6 15 = 0.971 H(D)=-\frac{9}{15}log_2\frac{9}{15}-\frac{6}{15}log_2\frac{6}{15}=0.971 H(D)=−159log2159−156log2156=0.971
Step2:计算每个特征对数据集的增益
(1)年龄 青年: H ( D 1 ) = − 2 5 l o g 2 2 5 − 3 5 l o g 2 3 5 青年:H(D_1)=-\frac{2}{5}log_2\frac{2}{5}-\frac{3}{5}log_2\frac{3}{5} 青年:H(D1)=−52log252−53log253 中年: H ( D 2 ) = − 3 5 l o g 2 3 5 − 2 5 l o g 2 2 5 中年:H(D_2)=-\frac{3}{5}log_2\frac{3}{5}-\frac{2}{5}log_2\frac{2}{5} 中年:H(D2)=−53log253−52log252 老年: H ( D 3 ) = − 4 5 l o g 2 4 5 − 1 5 l o g 2 1 5 老年:H(D_3)=-\frac{4}{5}log_2\frac{4}{5}-\frac{1}{5}log_2\frac{1}{5} 老年:H(D3)=−54log254−51log251 g ( D , A 1 ) = H ( D ) − 5 15 H ( D 1 ) − 5 15 H ( D 2 ) − 5 15 H ( D 3 ) = 0.971 − 0.888 = 0.083 g(D,A_1)=H(D)-\frac{5}{15}H(D_1)-\frac{5}{15}H(D_2)-\frac{5}{15}H(D_3)=0 .971-0.888=0.083 g(D,A1)=H(D)−155H(D1)−155H(D2)−155H(D3)=0.971−0.888=0.083
(2)工作 有工作: H ( D 1 ) = − 5 5 l o g 2 5 5 − 0 5 l o g 2 0 5 有工作:H(D_1)=-\frac{5}{5}log_2\frac{5}{5}-\frac{0}{5}log_2\frac{0}{5} 有工作:H(D1)=−55log255−50log250 没工作: H ( D 2 ) = − 4 10 l o g 2 4 10 − 6 10 l o g 2 6 10 没工作:H(D_2)=-\frac{4}{10}log_2\frac{4}{10}-\frac{6}{10}log_2\frac{6}{10} 没工作:H(D2)=−104log2104−106log2106 g ( D , A 2 ) = H ( D ) − 5 15 H ( D 1 ) − 10 15 H ( D 2 ) = 0.324 g(D,A_2)=H(D)-\frac{5}{15}H(D_1)-\frac{10}{15}H(D_2)=0.324 g(D,A2)=H(D)−155H(D1)−1510H(D2)=0.324
(3)房子 g ( D , A 3 ) = 0.420 g(D,A_3)=0.420 g(D,A3)=0.420
(4)信贷 g ( D , A 4 ) = 0.363 g(D,A_4)=0.363 g(D,A4)=0.363
对比四个特征,发现房子的信息增益最大。
信息增益比(information gain ratio):信息增益存在偏向于选择取值较多的特征的问题,故有信息增益比 g R ( D , A ) = g ( D , A ) H A ( D ) g_R(D,A)=\frac{g(D,A)}{H_A(D)} gR(D,A)=HA(D)g(D,A)
(三)决策树的生成
1. ID3算法
在各个节点上应用信息增益准则选择特征,迭代至结束。
2. C4.5算法
在各个节点上应用信息增益比选择特征,迭代至结束。
(四)决策树的剪枝
为提升泛化能力裁剪掉一些子树和节点。示意图如下:
设树 T T T的叶结点个数为 ∣ T ∣ |T| ∣T∣, t t t是树 T T T的叶结点,该叶结点有 N t N_t Nt个样本点,其中 k k k类的样本点有 N t k N_{tk} Ntk个, k = 1 , 2 , . . . , K , H t ( T ) k=1,2,...,K,H_t(T) k=1,2,...,K,Ht(T)为叶结点 t t t上的经验熵, α ≥ 0 \alpha\geq0 α≥0为参数,则决策树学习的损失函数可定义为 C α ( T ) = ∑ t = 1 ∣ T ∣ N t H t ( T ) + α ∣ T ∣ C_{\alpha}(T)=\overset {|T|} {\underset{t=1} \sum}N_tH_t(T)+\alpha |T| Cα(T)=t=1∑∣T∣NtHt(T)+α∣T∣ = C ( T ) + α ∣ T ∣ =C(T)+\alpha|T| =C(T)+α∣T∣其中经验熵为 H t ( T ) = − ∑ k N t k N t l o g N t k N t H_t(T)=-\underset {k} {\sum} \frac{N_{tk}}{N_t}log\frac{N_{tk}}{N_t} Ht(T)=−k∑NtNtklogNtNtk那么, C ( T ) , ∣ T ∣ C(T),|T| C(T),∣T∣就分别表示训练误差与模型复杂度。
(五)CART算法
CART算法=决策树生成+决策树剪枝
1. CART生成
1.1. 回归树的生成
算法(最小二乘回归树生成算法)
输入:训练集数据 D D D
输出:回归树 f ( X ) f(X) f(X)
在输入空间中递归地将每个区域二分:
(1)选择最优切分变量 j j j与切分点 s s s,求解 m i n j , s [ m i n c 1 ∑ x i ∈ R 1 ( j , s ) ( y i − c 1 ) 2 + m i n c 2 ∑ x i ∈ R 2 ( j , s ) ( y i − c 2 ) 2 ] \underset{j,s} {min}[\underset{c_1}{min}\underset{x_i\in R_1(j,s)}{\sum}(y_i-c_1)^2+\underset{c_2}{min}\underset{x_i\in R_2(j,s)}{\sum}(y_i-c_2)^2] j,smin[c1minxi∈R1(j,s)∑(yi−c1)2+c2minxi∈R2(j,s)∑(yi−c2)2]
(2)用选定的对 ( j , s ) (j,s) (j,s)划分区域并决定相应的输出值 R 1 ( j , s ) = { x ∣ x ( j ) ≤ s } , R 2 ( j , s ) = { x ∣ x ( j ) > s } R_1(j,s)=\{x|x^{(j)}\leq s\},R_2(j,s)=\{x|x^{(j)}> s\} R1(j,s)={x∣x(j)≤s},R2(j,s)={x∣x(j)>s} c ^ m = 1 N m ∑ x i ∈ R m ( j , s ) y i , x ∈ R m , m = 1 , 2 \hat c_m=\frac 1 {N_m}\underset{x_i\in R_m(j,s)}{\sum}y_i,x\in R_m,m=1,2 c^m=Nm1xi∈Rm(j,s)∑yi,x∈Rm,m=1,2
(3)反复调用(1)(2)至满足条件
(4)将空间划分为 M M M个区域 R 1 , R 2 , . . . , R M R_1,R_2,...,R_M R1,R2,...,RM,生成决策树 f ( x ) = ∑ m = 1 M c ^ m I ( x ∈ R m ) f(x)=\overset {M}{\underset{m=1}{\sum}}\hat c_mI(x\in R_m) f(x)=m=1∑Mc^mI(x∈Rm)
1.2. 分类树的生成
分类树采用基尼指数选择最优特征,同时决定该特征的最优二值切分点。
定义(基尼指数)
分类问题中,假设有 K K K类,样本属于第 k k k类的概率为 p k p_k pk,则概率分布的基尼指数定义为 G i n i ( p ) = ∑ k = 1 K p k ( 1 − p k ) = 1 − ∑ k = 1 K p k 2 Gini(p)=\overset {K}{\underset{k=1}{\sum}}p_k(1-p_k)=1-\overset {K}{\underset{k=1}{\sum}}p_k^2 Gini(p)=k=1∑Kpk(1−pk)=1−k=1∑Kpk2 对于二分类问题,有 G i n i ( p ) = 2 p ( 1 − p ) Gini(p)=2p(1-p) Gini(p)=2p(1−p) 对于给定样品集 D D D其基尼指数为 G i n i ( D ) = 1 − ∑ k = 1 K ( ∣ C k ∣ ∣ D ∣ ) 2 Gini(D)=1-\overset {K}{\underset{k=1}{\sum}}(\frac{|C_k|}{|D|})^2 Gini(D)=1−k=1∑K(∣D∣∣Ck∣)2这里 C k C_k Ck是 D D D中属于第 k k k类的样本子集, K K K是类的个数。
若 D D D根据特征 A A A取某一可能值 a a a被分割成 D 1 , D 2 D_1,D_2 D1,D2两部分,则在特征 A A A的条件下,集合 D D D的基尼指数定义为 G i n i ( D , A ) = D 1 D G i n i ( D 1 ) + D 2 D G i n i ( D 2 ) Gini(D,A)=\frac{D_1}{D}Gini(D_1)+\frac{D_2}{D}Gini(D_2) Gini(D,A)=DD1Gini(D1)+DD2Gini(D2) 基尼指数 G i n i ( D ) Gini(D) Gini(D)表示集合 D D D的不确定性; G i n i ( D , A ) Gini(D,A) Gini(D,A)表示经 A = a A=a A=a分割后集合 D D D的不确定性。
例:如上样本表,应用CART算法生成决策树。
解:(1)年龄 G i n i ( D ∣ A 1 = 青年 ) = 5 15 ( 2 × 2 5 × 3 5 ) + 10 15 ( 2 × 7 10 × 3 10 ) = 0.44 Gini(D|A_1=青年)=\frac{5}{15}(2\times \frac{2}{5}\times \frac{3}{5})+\frac{10}{15}(2\times \frac{7}{10}\times \frac{3}{10})=0.44 Gini(D∣A1=青年)=155(2×52×53)+1510(2×107×103)=0.44 G i n i ( D ∣ A 1 = 中年 ) = 0.48 Gini(D|A_1=中年)=0.48 Gini(D∣A1=中年)=0.48 G i n i ( D ∣ A 1 = 老年 ) = 0.44 Gini(D|A_1=老年)=0.44 Gini(D∣A1=老年)=0.44
(2)工作 G i n i ( D ∣ A 2 = 1 ) = 0.32 Gini(D|A_2=1)=0.32 Gini(D∣A2=1)=0.32
(3)房子 G i n i ( D ∣ A 3 = 1 ) = 0.27 Gini(D|A_3=1)=0.27 Gini(D∣A3=1)=0.27
(4)信贷 G i n i ( D ∣ A 4 = 1 ) = 0.36 Gini(D|A_4=1)=0.36 Gini(D∣A4=1)=0.36 G i n i ( D ∣ A 4 = 2 ) = 0.47 Gini(D|A_4=2)=0.47 Gini(D∣A4=2)=0.47 G i n i ( D ∣ A 4 = 3 ) = 0.32 Gini(D|A_4=3)=0.32 Gini(D∣A4=3)=0.32可知, A 3 A_3 A3为最优特征,依此类推。
2. CART剪枝
1. 剪枝,形成子树序列
2. 在子树序列中通过交叉验证选取最优子树
第五章 决策树——学习笔记相关推荐
- 【西瓜书】第4章决策树---学习笔记
1.基本流程 createBranch()函数的伪代码: 检测数据集中的每个子项是否属于同一分类: If so return 类标签: Else 寻找划分数据集的最好特征 划分数据集 创建分支节点 f ...
- 计算机网络(BYSEE)第五章 运输层 学习笔记(0606)
第 5 章 运输层 5.1 运输层协议概述 5.1.1 进程之间的通信 向应用层提供通信服务 运输层属于面向通信部分的最高层,同时也是用户功能中的最低层 只有网络边缘部分的主机的协议栈才有运输层,网络 ...
- 计算机网络第五章-运输层学习笔记
5.1 运输层协议概述 5.1.1 进程之间的通信 为何需要运输层? 运输层协议和网络层协议的主要区别 5.1.2 运输层中的两个协议 UDP TCP 5.1.3 端口 使用端口对应用进程进行唯一标识 ...
- 机器学习理论《统计学习方法》学习笔记:第五章 决策树
机器学习理论<统计学习方法>学习笔记:第五章 决策树 决策树 5.1 决策树模型与学习 5.1.1 决策树模型 5.1.2 决策树与if-then规则 5.1.3 决策树与条件概率分布 5 ...
- 第五章——决策树笔记(《统计学习方法》-李航)
第五章--决策树笔记(<统计学习方法>-李航) 本文主要记录自己学习李航的小蓝书的过程,之前的4张有时间再补上.本文只做知识点整理,不做详细的见解,因为我认为,依照本人的知识水平,不可能比 ...
- cart算法_决策树学习笔记(三):CART算法,决策树总结
点击上方"Python数据科学",选择"星标公众号" 关键时刻,第一时间送达! 作者:xiaoyu 介绍:一个半路转行的数据挖掘工程师 推荐导读:本篇为树模型系 ...
- 小五思科技术学习笔记之SSH
下面介绍一下相关概念: SSH的概念: SSH的英文全称为Secure Shell,SSH使用TCP的22号端口,其目的是要在非安全的网络上提供安全的远程登陆和其他安全的网络服务, 为什么要使用SSH ...
- 控制系统仿真与CAD-薛定宇-第四章matlab学习笔记
控制系统仿真与CAD-薛定宇-第四章matlab学习笔记 04-02传递函数模型 tfdata() 传递函数属性法 04-07典型系统连接计算 pretty 用法 04-08方框图简化 04-09代数 ...
- 电气EPlan软件第一章到第五章的学习
电气–EPlan软件第一章到第五章的学习 1.Eplan软件的简单介绍? ①介绍:CAD不能满足工程需要,所以用到Eplan,Eplan结合了windows和CAD的操作风格,使用户有了更好的体验.E ...
最新文章
- WebSocket API简介
- Android常见控件— — —EditText
- 10、查看索引(SHOW INDEX)
- harbor镜像仓库-https访问的证书配置 (docker配置harbor https证书)
- 读取STM32单片机-ID操作
- dell服务器r730安装esxi系统,安装Esxi系统重装Esxi系统
- netty在项目中实际使用_聚合氯化铝在实际使用中的用法和用量
- 学习设计模式——工厂方法模式
- Linux—文件命令之touch命令
- 杜工部蜀中离席 [唐] 李商隐
- DevExpress v17.2新版亮点——XAF篇
- Linux 信息的各种查询(系统发行版本、内核版本、系统位数)
- AI语音克隆软件安装和使用教程
- android 测试手机屏幕,如何才能知道自己手机屏幕质量如何 安卓手机专业测屏神器体验...
- 第十届计算机大赛获奖作品,我校获第10届中国大学生计算机设计大赛一等奖
- 如何将TS格式的视频转换成mp4格式
- 干货:我的web3研究框架分享
- java swap_Java中swap()方法的实现
- 十字隧道工程盾构机穿过马骝洲水道
- php 三维数组合并成二维数组_Excel VBA 数组知识点,数组能不能用好,就看这个你学会没有...