上一节我们解说了决策树的破裂前提以及评价纯度的个中一个体式格局,基尼系数。本节的话,我们再解说一个评价纯度的体式格局,基于信息增益的体式格局,即ID3树运用的评价体式格局。它办的事跟Gini系数一样,也是评价纯度,然则它更客观一点,但它算起来比Gini系数稍慢一点,它办的事跟Gini系数一样,也是评价纯度,然则它更客观一点,算起来比Gini系数稍慢一点,更正确一点。这是两种分歧的评价体式格局。

目次

1-信息增益

2-信息增益率

1-信息增益

带着信息两字就离不开熵,熵首先是一个热力学的观点,好比一个罐子,内里有许多气体份子,份子在做随机无规则的活动,叫热活动,活动的越猛烈,体系内的熵就越高。它的泉源是一个热力学上的观点。引入到信息论里的熵,虽然照样这个字,但已跟本来的热力学没有直接的关系了,只不过公式情势是一样的。即:

                                               

我们显着的发明它分为两局部,一局部是pi,pi代表标签值或许种别值在这个体系里的占比另外一局部是log pi。我们称 叫做信息它的单元是bit,0和1的比特。信息的原始公式是:。举个例子来申明下:假定无线电测验做弊,挑选题是ABCD四个选项,用0和1编码的话,不殽杂的状况下,区分四个选项。应当怎样的设置这个记号?最直观的要领就是下面这类透露表现要领:即A透露表现为00,B透露表现为01,C透露表现为10,D透露表现为11。在不晓得它们的几率的状况下,这么选最合适。然则这类每次发的话若是有24道题,就会发48个数字。若是收费是按数字来的话有无相对更经济点的体式格局能少发点总次数让谜底还不被丧失的传过去?如果测验95%的谜底都是C,还用两位数字编码就有点浪费了。我们自然而然想到的是让谜底对照多的选项用只管少的位数透露表现。假定ABCD的几率散布是1/8,1/8,1/2,1/4,C涌现的几率最高。我用0透露表现C,若是用D透露表现1 的话,为了不殽杂的话,A,B只能用两位以上的透露表现01或许10,100等 ,若是发过去的是01,那末谜底究竟是一个C,一个D 照样A或许B。以是以是为了制止殽杂,1就再也不克不及零丁再透露表现谜底了。那甚么能够用呢?两位的能够用。如果D设为10的话,01还能再用于其余谜底吗?不克不及,由于好比来一个0010,不晓得是两个0,一个10。照样一个0,一个10和0。10被D用的话,11还能在用吗?不克不及了。由于若是A设置为为11的话,末了剩一个谜底B从000~111都不克不及透露表现了,都邑和11殽杂。以是11在D为10的前提下不克不及再用了。以是两位的只能用10。即D用10。剩下A,B的透露表现都是三位数了。有兴致的能够试下在C 用0透露表现,D用10透露表现,A用111,B用101透露表现不会被殽杂。如果我们40道题,20道题是C,10道题是D,5道题是B,5道题是A,如今只须要发送20*1+10*2+5*3+5*3=70。对照均匀编码长度,都是两位的话。40*2=80,少发送了10个字节。在完全无损的状况下,我们只用了一点点的小技能,就能使数据举行紧缩。而且紧缩是免费的。

我们来看下一个信息的盘算。-log2(1/2)=1,-log2(1/4)=2,-log2(1/8)=3。当几率为1/2的时刻,用一名编码处置责罚,几率为1/4的时刻能够用两位编码处置责罚,而1/8的时刻用三位编码处置责罚。发明信息的值恰好和位数对应上,以是这也就是为何用-log2Pi来透露表现信息的观点。它的单元真的是比特。它是无损紧缩的理论上限,意义就是说你再怎样耍技能。要想把信息完全的发过去,最少须要这么多信息。这也是信息的泉源。而我们的熵实在就是均匀码长。盘算体式格局为1/8*3+1/8*3+1/2*1+1/4*2。意义就是说有两个1/8的数须要3个码长,1/2的数须要1个码长,1/4的数须要2个码长,以是全部体系发送过去均匀发送一个谜底须要1/8*3+1/8*3+1/2*1+1/4*2这么多的码长。这个就是熵。如果谜底全部是A,或许内里谜底只要1个A的时刻,现实上我们就不须要发送那末多码长了,直接发送A的编号,或许不发,由于我们已晓得谜底就是A了。以是这个体系内里谜底越纯,发送的信息越少。而内里谜底越多,越没有纪律可循,我们就须要用越大的信息来发送。以是我们就用熵的观点来透露表现决策树分类的子集的纯度。关于纯度来讲,纯度的pi代表标签值在这个体系里的占比,纯度越纯代表熵越低,我们用信息熵来评价纯度,它实在思绪和基尼系数一样,基尼系数越低越纯,熵也是,越低越纯。

相识完熵的观点,我们再说下信息增益:破裂前的信息熵 减破裂后的信息熵。它一样也须要在前面加一个权重。

                                              IG= H(D)- H(D1)*|D1|/|D|- H(D2)*|D2|/|D|。
如果以下数据:

 

破裂之前的熵是H(D)=-log2(0.2)-log2(0.8)。破裂以后的熵是H(D1)=-log2(0.3)-log2(0.7)和H(D1)=-log2(0.5)-log2(0.5).那末信息增益IG=H(D)-(D1/D*H(D1)+D2/D*H(D2))=H(D)-(100/1000*H(D1)+900/1000*H(D2))。若是不乘以比重的话如果一个节点内里就分了一个数据,另外一个节点分了许多的数据。会致使一个加权的很高,一个加权的很低,很不公道。以是须要乘以各自数据所占的比重。信息增益是正数照样负数呢?我们来推想下,熵是越分越低好,照样越分越高好,一定是越分越低好,越低代表越纯。也就是说本来体系对照杂沓,越分背面越清晰,越纯,以是我们一开始的熵是对照高的,背面越来越低,而信息增益是拿之前的熵减去以后的熵,以是一定是个正数。这个正数越大越好,由于越大代表此次破裂使体系的杂沓水平下降的越多。

我们来看一个现实运用信息增益处置责罚生涯中的一个案例:

以下是一个统计用户流失度的一个数据,is_lost是它的标签,第一列是用户ID,第二列gender是性别,第三列act_info是活跃度,第四列is_lost是不是流失。我们愿望经由过程剖析找到最能影响用户流失的要素。

个中重点说下第三列,自身来讲活跃度应当是个连续性数据,这里做了一些处置责罚。由于信息增益生成对连续性数据支撑的不是迥殊好。这里连续性练习集交给盘算机的数据,一样平常是把同一个区间段的归为一类让它酿成离散型数据。好比身高是连续性数据,以10厘米一组的话,就会分红各个组,每组的数据再举行统计。我们在做其他算法模子的时刻有时刻还会对处置责罚完后的离散数据举行one-hot编码,如果练习集里有四个都市,北京,上海,广州,深圳,在统计上就是表中的某一列,要怎样把它转化成盘算机数据?北京为1,广州为2,上海为3,深圳为4,直观的讲岂非深圳>北京,以是如许的数据交给算法是不合适的。以是这里我们用one-hot编码对数据举行处置责罚,即把一个维度上的四个值拆成四列,is北京,is广州,is上海,is深圳,这四列里只会同时有一个为1,若是住在北京,那末北京是1,其它为0。即把原本在一个维度上提取下来的数据,强迫地拆成若干个列的这类体式格局叫做one-hot编码,所谓one-hot,即独热编码,就是这四项里边只要一个被点亮了。一般关于没有巨细递次的数据我们一定要运用one-hot编码。本例中由于只是纯真看下活跃度的数据状况各个占比对团体用户丧失状况的影响,以是没必要再转成one-hot编码。我们对上面的数据举行一个统计:

这内里positive是没有流失,对应数值1。negative是流失,对应数值是0。以是第二行的统计现实上就是在男性的前提下,positive为3,能够用前提几率透露表现成p(y=1|x=man)=3/8。我们看下上面两个前提破裂下各自的信息增益。

15个样本,个中负例有10个,正例有5个。P1对应着10/15,P2对应着5/15,以是原始的团体熵H(D)。

                       

假定挑选男女作为破裂前提,则性别熵是:男是g1,女是g2。相当于分红两个子树。

                                                                       

                                                                     

则性别信息增益:由于男性占8/15,女性占7/15,又乘以各自比例,以是:

                                                                    

同理盘算活跃度的熵:相当于分红3个子树。

                                                            则

活跃度信息增益:

                                                            

很显着活跃度的信息增益对照大,申明熵减的凶猛,也就是意味着活跃度对用户流失的影响更大。

2-信息增益率

如果不幸以这uid一列作为破裂前提去挑选了,我们的目的是挑选信息增益最大的体式格局去破裂,甚么状况下信息增益最大?当分了一个和用户数量一样多分枝的子节点,15个子节点的时刻,此时信息增益是最大的,由于一切叶子节点都最纯了,只要一个数据,则每个节点的熵都是-log2(1)=0,依照信息增益的盘算公式IG=E(s)-0=E(s),相当于没减,那末信息增益一定是最大的。但如许会致使甚么题目呢,过拟合题目。对练习集分的迥殊圆满。为了去责罚这类破裂体式格局,我们引入另外一个盘算纯度的盘算体式格局:信息增益率。

盘算公式为:信息增益/种别自身的熵。

                                                    

既然是熵,公式情势就是- ∑Pi*log2Pi的情势,算熵就须要pi,要pi就须要把本来的数据分为几堆。本来是靠yi=label来分堆的,那末好比30,30,10,p1=3/10,p2=3/10,p3=0.1,来算节点内部的pi,而如今的pi是总的体系的pi,体系分红三份了,就有三类数据,此时的pi就是以节点的数据占总的数据占比为根据,而不是以看节点内y的label 标签为根据。好比下图:

 

我们盘算此次破裂状况的种别自身的熵时应当把D1,D2,D3都斟酌进去。D1个数占总数为50/350,以是T1/T=-50/350,顺次类推。以是SIS=-50/350*log250/350-100/350*log100/350-200/350*log200/350,为此次破裂状况下种别自身的熵。若是我们依照之前盘算用户保存的例子来讲,依照序号来分的话,分红15个节点,此时的信息增益异常异常大。然则份子SIS会变大照样小呢?我们能够直观地感觉下,此时分红的15个子节点,每个子节点都只包罗一个数据,而盘算SIS的时刻是斟酌一切节点的,以是相当于把分红的15个节点算作一个团体,每个子节点都是一个子集,此时这个体系内里种别迥殊多,以是迥殊杂沓,团体熵一定越高。以是把这个数放在分母上,即使本来的信息增益很大,但由于除一个很大的分母,以是团体值也变小。所以我们要想使得信息增益率大就须要分母越小,即体系自身的熵越小,申明分的节点不是那末多,而且作为一个体系来讲,相对种别纯一点,没有那末多节点,团体体系熵就越低。份子越大,即信息增益又很大,申明本次分类使体系杂沓水平下降的越多。

以是信息增益率能自动的帮我们挑选分几支,用甚么前提分最好的题目,为何要引入信息增益率呢?现实上背地是相符最大熵模子的。

我们总结下分类树怎样破裂?即遍历一切能够的破裂要领。 能够运用3种体式格局推断纯度 即 Gini系数对应CART树, 信息增益 对应ID3树, 信息增益率对应 C4.5树。

下一节我们解说另外一种破裂体式格局,回归树。

Last modification:March 25, 2020
如果觉得我的文章对你有用,请随意赞赏