统计学习方法5.2 - 5.5 笔记

5.2 决策树 -- 条件概率分布

如果有10个条件概率分布,对应特征空间的10个划分,相当于构建了10棵决策树。
特征空间由特征向量组成,特征向量表示输入的每一个实例。一般认为输入空间与特征空间相同

决策树可以看作是ifthen规则构成的集合

5.2 决策树 -- 决策树学习

目的:构造决策树,对实例正确分类

n=特征=3

构造决策树的问题:
哪个特征作为首选?第二第三个特征怎么确定?(特征选择)
什么时候构建好特征树?(生成)

5.3 决策树:信息增益(特征选择)

不同首要特征的选择构成的决策树不同。信息增益是由熵构成。熵起源于热力学,香农引入信息论中,如果随机变x量有n个取值,每个随机变量所对应的概率是pi,那么随机变量x的熵是H(x)如下。熵与x的随机分布有关,可以表现成H(p)的形式,p对应随机变量的分布。

那么随机变量如何取值的时候,熵最小和最大呢?
像掷骰子,每个点的概率都是1/6,相应熵是最大。如果有n个取值,pi=1/n的时候,相应熵最大。当点数确定的时候,熵最小。熵理解为不确定性
为什么等概率分布的时候熵最大?

当x只有1和0两个取值,分别是p和q(即1-p),那么H(x)如蓝笔书写,在坐标轴上当p取0.5,H(p)最大,H(p)=1就是n取2的时候(n是随机变量的取值数),log以2为底,log2=1。证实了左下角的不等式
如果函数是凹函数,可以用求导来求H(x)的最大值

如果取最小值,函数是凸函数才可以

因为概率p(x)的的取值是0到1,所以log2p(x)<0

所以为了保证信息熵是正,要加负号


如果已知x,怎么求y的熵?

条件熵就是负的pi乘以随机变量X取xi的时候y的熵,pi就是X=xi的概率(pi=P(X=xi),n对应X的n个取值)。
当熵和条件熵都是训练数据得到的,也就是都是估计值而不是真实值,称经验熵和经验条件熵。若对应真实分布时,那时是理想化的熵和条件熵,所谓真实熵和真实条件熵
信息增益:熵 - 条件熵 (都是训练数据得到的)
D对应训练数据集,H(D)是不知道任何特征信息时所得的熵,如果知道X的特征信息(A),训练数据集有了重新分类,此时的熵是根据特征信息A发生的变化,变化越小说明更加确定,哪个特征所带来的信息增益越大,哪个特征就是最优特征

算信息增益的步骤:(具体看后面例题)

例题:
样本D=15
类别K=2
Ck是不附加任何特征时属于的类别
H(D)是不加特征时所得的训练数据集的熵:

加上了特征后的熵:经验条件熵
加上年龄这个特征,将数据划分为D1、2、3。经验条件熵就是在给定A之后得到的n个子集,每个子集计算熵,加权求和。权重是Di中的个数/数据集D中的个数,也就是pi的估计值。i=1,pi=5/15,经验熵的计算方式如蓝色书写。

经验条件熵:H(D|A1)的计算通过pi、p2、p3和H(D1)、H(D2)、H(D3)得到:

给定有工作这个特征,将数据划分为D1、2

由于D1这个子集不包含不同意贷款,所以不同意贷款是不可能事件,所以携带信息量为0,所有样本归属同意贷款这类,所以对应-5/5log2 5/5这部分是完全确定性事件,携带信息量为0,因此D1的经验熵为0。D2和之前的计算方式一样

给定有房子这个特征,将数据划分为D1、2

给定信贷情况这个特征,将数据划分为D1、2、3

信息增益g(D,A):

那个特征的信息增益更大?它便是最优特征。可以放在根结点处,下面的每一个内部结点,也可以根据信息增益的方法,寻找最优特征

信息增益比

信息增益倾向于选择具有更多取值的的那个特征。比如刚才“有自己的房子”有3个取值,比其他的特征要多。怎么消除取值较多带来的影响呢,就需要信息增益比,在信息增益的基础上加一个惩罚项,是D关于特征A的熵的倒数,也就是信息增益比gR(D,A)/HA(D),想计算特征A单位取值个数下的信息增益,就把特征取值个数这个因素所带来的影响消除了。是D关于A的熵
怎么计算HA(D)?找到每个子集对应的样本个数
比如A1是年龄,D1、2、3个数分别是5、5、5,A2是有工作,D1、2、3个数分别是5、10、0,HA1(D)和HA2(D)计算方式如图

计算信息增益比:

确定性强(条件熵小),信息增益高。
只看信息增益比的话,选择信息增益比高的。但说不清信息增益和信息增益比孰优孰劣。信息增益比倾向于选择具有更少取值的的那个特征

5.4 决策树的生成 -- ID3算法

信息增益来进行特征选择

如果不需要特征选择,可以直接生成决策树。用于①所有实例同属一类的情况(单结点数)、②特征集A=∅(空集)的时候(20天中18天是晴天,2天不是,没有温度湿度的信息,分类时归一类,生成单结点树)
需要特征选择
选择信息增益最大的特征(记作Ag),作为根节点。决策树是否只包含一个结点?需要用阈值ε判断,若信息增益小于ε,说明Ag不会给分类带来更多确定性,既然信息增益最大的特征都没有给树确定性,可以认为是单结点树。怎么确定类别?找到包含实例点最多的类别Ck,这个类别作为结点的类标记得到决策树

若信息增益大于ε
根据D的特征取值来划分,比如取值为a1,归为D1子集。划分为n个子集。若D1……Dn都是单结点树便可停止,若不认为是这样接着选信息增益最大的特征,继续做决策树,相当于D1回到D做循环处理,选择特征时减去已经用过的Ag。

当所有特征的信息增益都小于ε,便划分完毕

决策树的生成 -- C4.5算法

信息增益比来进行特征选择
好处:克服偏向取值较多的特征,可以处理连续型特征。
坏处:计算麻烦(低效)

决策树的生成 -- 例子:

有四个特征,A≠∅,计算信息增益
信息增益如上图,若ε=0.001,四个信息增益都大于ε,不可以认为是单节点决策树
选择信息增益最大的特征来作为根节点
A3将D划分为D1、2
D1中只有一类,是叶结点
D2中有两类,再进行特征选择,将D2作为新训练数据集,A1、2、4作为新特征集,计算各特征的信息增益
对于A1(年龄)的信息增益:

同理计算A2、4的信息增益。
已经得到D2的经验熵,以D2作为新训练数据,A1、2、4作为新特征集,分别计算出经验条件熵,经验熵 - 经验条件熵得到信息增益。

“有工作”的信息增益最大,接下来的内部结点对应这个特征

5.5 决策树 -- 剪枝

评判是不是好的决策树:
能力是不是强:对已知和未知数据的分类能力
结构是不是简单

深度:所有结点的最大层次数
根节点深度0,往下结点深度+1

剪枝的目的:减少过拟合

预剪枝:若结点不能提高泛化能力,则不划分,记为叶结点
后剪枝:自底而上,若变为叶可以提高泛化能力,则剪掉

预剪枝

①设定深度(决策树层数),多余的层数,数一下哪个类别最多,就直接分为哪个类。

②阈值设定大,决策树简单
③设置指标:基于测试集上的误差率
(测试集中错误分类的实例占比)
划分前后若测试集上误差率降低,则划分,若不变或升高,则剪枝。

后剪枝

自下而上

降低错误剪枝(REP)

降低测试集的错误率

悲观错误剪枝(PEP)

只需训练集,计算训练集的错误率时用了修正方法,从离散二项分布到连续正态分布,加0.5来处理

每个叶结点上的误差率:error(Leafi):叶结点上犯错个数比上全部样本个数为误差率
目标子树总的修正误差Error(T):每个叶结点上的误差率之和。表示目标子树上所有的误判样本+修正部分(0.5×叶子结点个数L),也就是剪枝前的修正误差率。这个误差率为犯错概率。
再得到误判个数期望值,对于二项分布,期望是N×T,N是样本数,×犯错率是Error(T)。
再算标准差,对于二项分布,方差是npq,p是错误率,q是1-p,标准差是根号下方差。
计算误判上限:期望值+一个标准差

计算剪枝后的误差,剪枝后目标子树变成叶结点,误差率是多少?同样做修正,先看犯错的样本个数是多少(error(Leaf)),+0.5,除以N。
求剪枝后误判个数期望值
剪枝后误判个数与剪枝前误判上限比较
如果剪枝后误判个数期望值小于剪枝前误判上限,则剪枝,用叶结点替换

例子:
剪枝前修正误差Error(T)= 剪枝前误判个数(3+2+1=6)+0.5×3(3个叶结点)/ 30(目标子树所有样本N)

②根据修正后错误率计算期望和方差(误判个数的期望值和误判个数的标准差)
期望E(T)= N×T=30×Error(T)= 7.5
方差Var(T)= npq=30×7.5/30×(1-7.5/30)=5.625
标准差std(T)= 方差开根号 = 2.37

剪枝前误判个数上限 = 期望 + 标准差 =7.5 + 2.37 = 9.87

剪枝后误差Error(Leaf) = 13(剪枝后,因为17>13,所以此叶结点为正类,那么误判个数为13)+ 0.5/30 = 13.5/30 。因为是一个叶结点,加一个0.5就可以了

剪枝后误判个数期望值E(Leaf)= 30 × 13.5/30 = 13.5

比较
9.87<13.5 剪枝后误判个数期望值比剪枝前误判上限大,所以不剪枝

最小误差剪枝(MEP)

最小分类错误概率

m表示了先验概率对于后验概率的影响程度

Prk(T):先验概率=1/K(样本属于每个类的概率相同),当m=K(此处指定)

计算T7和T8的预测错误率:
Error(T7)= 2(不属于正类的个数)+ 1(K-1) /11(样本总数)+ 2 (正负两个类别,K=2)= 3/13
Error(T8)= 1+1 / 9+2 = 2/11

加权的方式:
T7处权重:11 / 20(一共是20个样本)
T8处权重:9 / 20

剪枝前目标子树的预测错误率:Error(Leaf)= 11/20 × 3/13 +9 / 20 × 2/11 =0.2087

剪枝后(直接将T5划为叶结点,正负的个数相同,不妨就归正类)
Error(T5)=10(判错的样本)+1 /20 + 2 = 0.5

0.2087<0.5,所以剪枝后预测错误率增大

基于错误剪枝(EBP)

此处对应视频p51的内容,先不做学习要求。
【合集】十分钟 机器学习 系列视频 《统计学习方法》_哔哩哔哩_bilibili

p52 代价复杂度剪枝(CCP)
【合集】十分钟 机器学习 系列视频 《统计学习方法》_哔哩哔哩_bilibili

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容