决策树,条件熵,相对熵,互信息

决策树:决策树最大的好处就是训练速度快
从n个特征中选择一个来分成若干份。如果是离散的,就分成若干份,如果是连续的,就取某一个值作为阈值分类,那么现在的问题转化成为我们要选取哪一个特征来分类。因为有不同的标准,所以有了ID3,C4.5,CART这三种决策树。

决策树,条件熵,相对熵,互信息_第1张图片

假如现在有一个数据集,分别是红色的圆点和绿色的圆点,红色有70个,绿色有65个,把他们放到一起,随机抓取一个,它的颜色是红色还是绿色?我们可以算它的概率。红色概率有70/135,绿色概率为65/135。那我们可以预测是红色的,即使概率很接近百分之50。
但是在这个数据中,我们中间切一刀,假设左边的点红色10个,绿色60个,那么红色概率为1/7,绿色概率为6/7。如图2,下面两张图代表着切4刀和切5刀的情况。

信息熵:
一件事情发生的概率,和这个事件蕴含的信息量是有关系的。概率越低,它蕴涵的信息量越高。
概率是一个0-1之间的数。信息量是一个随着概率增加,不断减小的一个降函数,0的时候是一个很大的数,当概率为1的时候,我们可以认为信息量就是0,也就是说当概率是1的时候,就是没有任何信息量,他一定会发生,但是当概率等于0的时候,就是及其不可能发生的事情发生了。
我们知道如果事件x和y如果独立,那么有P(x,y)=P(x)*P(y),现在我们希望如果x和y独立,那么让P(x)和P(y)做加减法,那么我们就可以取对数,就有:lnP(x,y)=lnP(x)+lnP(y)。H(x,y)=H(x)+H(y)我们现在求期望:E(lnP)=-(1-p)ln(1-p)-plnp.这就是我们信息熵的公式

条件熵:
当一件事情发生的概率是0,那么他的熵就是0,如果一件事情发生的概率是1,那么他的熵也是0,当这件事情的概率为0.5的时候,熵是最大的
我们知道H(x)表示的是x的不确定性,H(x,y)表示的是事件x和事件y发生的不确定性,那么H(y|x)=H(x,y)-H(x),也就是说x发生的前提下,y发生的不确定性。我们可以想到,当x和y的不确定性减去x的不确定性,那么就是x确定的情况下y的不确定性。条件熵的意义就是度量随机变量距离的物理量
条件熵公式的推导:
决策树,条件熵,相对熵,互信息_第2张图片
相对熵:
决策树,条件熵,相对熵,互信息_第3张图片

相对熵:

我们可以度量两个变量的距离,可以算P对Q的相对熵,也能算Q对P的相对熵,二者之间是不一样的。
KL(p||q)=pln(p/q)=plnp-plnq
=-(-p
lnp+plnq)。我们发现,其实-plnp就是p的信息熵:H§,所以式子我们可以化简为-[H§+p*lnq]=-[H§+lnqp],假设p是我们的样本,q是我们预测的分布,现在我们希望让q与p尽量的靠近,就以kl散度:KL(p||q)作为我们的目标函数,所以KL(p||q)越小越好

互信息
决策树,条件熵,相对熵,互信息_第4张图片
P(x,y)是联合概率,P(x)*P(y)是两个随机变量概率的乘积,他们的乘积就意味着如果x,y是独立的,那么P(x,y)等于P(x)*P(y),所以他们的乘积就意味着我认为x,y独立。也就是想看一看P(x,y)和P(x)*P(y)有多大的距离,这个距离就可以认为是他们的互信息,如果他们相等,那么log(p(x,y)/p(x)p(y))就是0,那么期望就是0,所以独立的时候,他们的互信息就是0,那么我们可以再进一步,如果用y的熵减去互信息是什么呢?决策树,条件熵,相对熵,互信息_第5张图片
就是y对x的条件熵。这就是互信息的意思。
决策树,条件熵,相对熵,互信息_第6张图片

决策树,条件熵,相对熵,互信息_第7张图片
左边的圆是X的信息熵,右边的圆是Y的信息熵,并集的地方是联合熵,交集的地方就是互信息,如果X中去掉Y的这部分那就是H(X|Y)的条件熵。根据图,我们甚至还能推导出:
决策树,条件熵,相对熵,互信息_第8张图片
那么我们现在用熵来做决策树。
例子:
决策树,条件熵,相对熵,互信息_第9张图片
现在我们有一个是否出门打网球的数据,yes有9个,n有5个
在根节点的时候,一共有14个样本,他的信息熵是-[9/14ln(9/14)+5/14ln(5/14)]。
我们现在希望做的是在4个特征中选择一个,把数据分成若干份。比如我们选了outlook。在out中,我们有sunny,raniny,overcast,所以分为了三类,有5个sunny,在sunny下的时候,有2个yes和3个no,所以他也可以算熵,就是-[2/5ln2/5+3/5ln3/5]。同样在overcast中,也可以算出熵,我们可以发现overcast中都是yes,所以他的熵就是0。在windy中,他的熵同样是-[2/5ln2/5+3/5ln3/5]。
我们把outlook的熵记为H0,huminity的熵记为H1,yes的熵记为H2,windy的熵记为H3.H1中有5个样本,H2中有4个样本,H3中有5个样本,我们要保证,当我们选择了outlook作为他的分类依据,在子节点的三个加权值H0要比H0小。因为他的熵变小,就意味着他的不确定程度变低,就以为这走向了确定的道路上。从humidity到yes和no的时候,确定性又走了一步,当我们走到了最后的叶子的时候,最激进的一种状态就是所有的训练数据上熵都变为0,这就是最确定的情况,熵等于0就代表着不是变量,而实确定的值。所以我们现在做的决策树,就是做一个熵不断下降的数。从根节点的时候(熵比较大)到叶子(使得熵降为0),当然我们可以做一个预剪枝,不要让熵减到0这样的情况,因为降成0可以造成过拟合。
决策树,条件熵,相对熵,互信息_第10张图片

决策树,条件熵,相对熵,互信息_第11张图片

ID3用的方法:我们从一个根节点往下做分类的时候,特征是有若干个的,f1,f2,f3…fn,我们应该用哪一个特征分类呢?我们就看一下哪一个特征可以使他的熵下降最快,用根节点的熵减去两个叶子节点的加权之后的熵,越大的结果代表降低的越多。也就是f1:H(X)-H(X|f1),f2:H(X)-H(X|f2),fn:H(X)-H(X|fn),看谁最大。这其实就是信息增益,给定了某一个特征,使得这个信息熵增加了多少。其实和我们刚刚推导的一样,本质就是I(x,f1),就是x和f1的互信息。

除了做信息增益率,我们也可以:
决策树,条件熵,相对熵,互信息_第12张图片
Gini系数。度量社会贫富差距往往使用Gini系数,我们如何理解Gini系数呢,我们知道y=-lnx的图像是这样的决策树,条件熵,相对熵,互信息_第13张图片
。在(0,1)点的时候,斜率是1,那我们画一条直线y=1-x。我们知道熵是x*lnx取加和。那么现在用1-x来替换lnx,那么这就是Gini系数,x(1-x)取加和
决策树,条件熵,相对熵,互信息_第14张图片
所以Gini系数就是熵的一阶近似,所以可以用Gini系数作为决策树的度量标准。

你可能感兴趣的:(决策树,条件熵,相对熵,互信息)