第7章信息论方法7.1信息论原理7.2决策树方法7.1信息论原理信息论是C.E.Shannon为解决信息传递(通信)过程问题而建立的理论,也称为统计通信理论。1.信道模型一个传递信息的系统是由发送端(信源)和接收端(信宿)以及连接两者的通道(信道)三者组成。信道u1,u2….ur信源Uv1,v2….vrP(V|U)信宿V在进行实际的通信之前,收信者(信宿)不可能确切了解信源究竟会发出什么样的具体信息,不可能判断信源会处于什么样的状态。这种情形就称为信宿对于信源状态具有不确定性。而且这种不确定性是存在于通信之前的。因而又叫做先验不确定性,表示成信息熵H(U)在进行了通信之后,信宿收到了信源发来的信息,这种先验不确定性才会被消除或者被减少。如果干扰很小,不会对传递的信息产生任何可察觉的影响,信源发出的信息能够被信宿全部收到,在这种情况下,信宿的先验不确定性就会被完全消除。一般情况下,干扰总会对信源发出的信息造成某种破坏,使信宿收到的信息不完全。先验不确定性不能全部被消除,只能部分地消除。通信结束之后,信宿仍然具有一定程度的不确定性。这就是后验不确定性,用条件熵表示H(U/V)。后验不确定性总要小于先验不确定性:H(U/V)H(U)如果后验不确定性的大小正好等于先验不确定性的大小,这就表示信宿根本没有收到信息。如果后验不确定性等于零,这就表示信宿收到了全部信息。可见,信息是用来消除(随机)不确定性的度量。信息量用互信息来表示,即:I(U,V)=H(U)-H(U/V)互信息的计算1.定义(1)设S为训练集,有n个特征(属性),表示为(A1,A2,...,,An)。|S|表示例子总数。(2)S中有U1,U2两类。|Ui|表示Ui类例子数。(3)特征Ak处有m个取值,分别为(V1,V2,...,,Vm)。2.Ui类出现概率为:P(Ui)=|Ui|/|S|3.Ui类中在特征Ak处取值Vj的例子集合Vij的条件概率为:P(Vj|Ui)=|Vij|/|Ui|4.在特征Ak处,取Vj值的例子集合的概率为:P(Vj)=|Vj|/|S|5.在特征Ak处取Vj值的例子,属于Ui类的例子集合Uij的条件概率为:P(Ui|Vj)=|Uij|/|Vj|6.信息熵(1)消息传递系统由消息的发送端(信源)和接收端(信宿)以及连接两者的通道(信道)三者组成。(2)消息(符号)Ui(i=1,2,...,q)的发生概率P(Ui)组成信源数学模型(样本空间或概率空间)UPUUUPUPUPUqq,()()()1212(7.2)=[](3)自信息:消息Ui发出后所含有的信息量。它反映了消息Ui发出前的不确定性(随机性)。定义为:以2为底,所得的信息量单位为bit。(4)信息熵:自信息的数学期望。即信源输出后,每个消息所提供的信息量,也反映了信源输出前的平均不确定性。定义为:IUPUPUiii()log()log()1=-iiiiiiUPUPUPUPUH)(log)()(1log)()(=∑=-∑=例如:两个信源,其概率空间分别为:则信息熵分别为:H(X)=-0.99log0.99-0.01log0.01=0.08bitH(Y)=-0.5log0.5-0.5log0.5=1bit可见H(Y)H(X)故信源Y比信源X的平均不确定性要大。XPXaa()..12099001YPYbb()..120505信息熵H(U)是信源输出前的平均不确定性,也称先验熵。H(U)的性质:(1)H(U)=0时,说明只存在着唯一的可能性,不存在不确定性。(2)如果n种可能的发生都有相同的概率,即所有的Ui有P(Ui)=1/n,H(U)达到最大值logn,系统的不确定性最大。P(Ui)互相接近,H(U)就大。P(Ui)相差大,则H(U)就小。7.互信息(1)后验熵当信宿没有接收到输出符号V时,已知输入符号U的概率分布为P(U),而当接收到输出符号V=Vj后,输入符号的概率分布发生了变化,变成后验概率分布P(U|Vj)。其后验熵为:后验熵是接收到单个输出符号Vj后关于信息源U的不确定性(信息度量)。ijijijVUPVUPVUH)|(1log)|()|(=∑7.互信息(2)条件熵后验熵对输出符合V(全部符号)求平均值(数学期望),得到条件熵jijijijVUPVUPVPVUH)|(1log)|()()|(∑=∑这个条件熵称为信道疑义度。它表示在输出端收到全部输出符号V后,对于输入端的符号集U尚存在的不确定性(存在疑义)。从上面分析可知:条件熵小于无条件熵,即H(U|V)H(U)。说明接收到符号集V的所有符号后,关于输入符号U的平均不确定性减少了。即总能消除一些关于输入端X的不确定性,从而获得了一些信息。(3)互信息定义:I(U,V)=H(U)-H(U|V)I(U,V)称为U和V之间的互信息。它代表接收到符号集V后获得的关于U的信息量。可见,熵(H(U)、H(U|V))只是平均不确定性的描述。熵差(H(U)-H(U|V))是不确定性的消除,即互信息才是接收端所获得的信息量。对输入端U只有U1,U2两类,互信息的计算公式为:HUPUPUiii()()log()112HUVPVPUVPUVjmjijiji(|)()(|)log(|)1121IUVHUHUV(,)()(|)==∑∑∑=-7.2决策树方法7.2.1决策树概念决策树是用样本的属性作为结点,用属性的取值作为分支的树结构。决策树的根结点是所有样本中信息量最大的属性。树的中间结点是该结点为根的子树所包含的样本子集中信息量最大的属性。决策树的叶结点是样本的类别值。决策树是一种知识表示形式,它是对所有样本数据的高度概括。决策树能准确地识别所有样本的类别,也能有效地识别新样本的类别。7.2.2ID3方法基本思想最有影响的决策树方法首推J.R.Quinlan的ID3。首先找出最有判别力的特征,把数据分成多个子集,每个子集又选择最有判别力的特征进行划分,一直进行到所有子集仅包含同一类型的数据为止。最后得到一棵决策树。J.R.Quinlan的工作主要是引进了信息论中的互信息,他将其称为信息增益(informationgain),作为特征判别能力的度量,并且将建树的方法嵌在一个迭代的外壳之中。一、ID3基本思想例如:关于气候的类型,特征为:天气取值为:晴,多云,雨气温取值为:冷,适中,热湿度取值为:高,正常风取值为:有风,无风每个实体在世界中属于不同的类别,为简单起见,假定仅有两个类别,分别为P,N。在这种两个类别的归纳任务中,P类和N类的实体分别称为概念的正例和反例。将一些已知的正例和反例放在一起便得到训练集。表3.1给出一个训练集。由ID3算法得出一棵正确分类训练集中每个实体的决策树,见下图。NO.属性类别天气气温湿度风1晴热高无风N2晴热高有风N3多云热高无风P4雨适中高无风P5雨冷正常无风P6雨冷正常有风N7多云冷正常有风P8晴适中高无风N9晴冷正常无风P10雨适中正常无风P11晴适中正常有风P12多云适中高有风P13多云热正常无风P14雨适中高有风N天气湿度风晴雨多云高正常有风无风PNNPPID3决策树决策树叶子为类别名,即P或者N。其它结点由实体的特征组成,每个特征的不同取值对应一分枝。若要对一实体分类,从树根开始进行测试,按特征的取值分枝向下进入下层结点,对该结点进行测试,过程一直进行到叶结点,实体被判为属于该叶结点所标记的类别。现用来判一个具体例子,某天早晨气候描述为:天气:多云气温:冷湿度:正常风:无风它属于哪类气候呢?从图中可判别该实体的类别为P类。ID3就是要从表的训练集构造出这样的决策树。实际上,能正确分类训练集的决策树不止一棵。Quinlan的ID3算法能得出结点最少的决策树。二、ID3算法(一)主算法⒈从训练集中随机选择一个既含正例又含反例的子集(称为窗口);⒉用“建树算法”对当前窗口形成一棵决策树;⒊对训练集(窗口除外)中例子用所得决策树进行类别判定,找出错判的例子;⒋若存在错判的例子,把它们插入窗口,转2,否则结束。主算法流程用下图表示。其中PE、NE分别表示正例集和反例集,它们共同组成训练集。PE‘,PE’‘和NE’,NE‘’分别表示正例集和反例集的子集。主算法中每迭代循环一次,生成的决策树将会不相同。训练集PE、NE取子集建窗口窗口PE`、NE`生成决策树测试集PE、NE扩展窗口PE`=PE`+PE``NE`=NE`+NE``此决策树为最后结果存在错判的PE``,NE``吗是否ID3主算法流程(二)建树算法⒈对当前例子集合,计算各特征的互信息;⒉选择互信息最大的特征Ak;⒊把在Ak处取值相同的例子归于同一子集,Ak取几个值就得几个子集;⒋对既含正例又含反例的子集,递归调用建树算法;⒌若子集仅含正例或反例,对应分枝标上P或N,返回调用处。NO.属性类别天气气温湿度风1晴热高无风N2晴热高有风N3多云热高无风P4雨适中高无风P5雨冷正常无风P6雨冷正常有风N7多云冷正常有风P8晴适中高无风N9晴冷正常无风P10雨适中正常无风P11晴适中正常有风P12多云适中高有风P13多云热正常无风P14雨适中高有风N实例计算对于气候分类问题进行具体计算有:⒈信息熵的计算对9个正例和5个反例有:P(u1)=9/14P(u2)=5/14H(U)=(9/14)log(14/9)+(5/14)log(14/5)=0.94bit⒉条件熵计算条件熵:A1=天气取值v1=晴,v2=多云,v3=雨在A1处取值晴的例子5个,取值多云的例子4个,取值雨的例子5个,故:P(v1)=5/14P(v2)=4/14P(v3)=5/14取值为晴的5个例子中有2个正例、3个反例,故:P(u1/v1)=2/5,P(u2/v1)=3/5同理有:P(u1/v2)=4/4,P(u2/v2)=0P(u1/v3)=2/5,P(u2/v3)=3/5H(U/V)=(5/14)((2/5)log(5/2)+(3/5)log(5/3))+(4/14)((4/4)log(4/4)+0)+(5/14)((2/5)log(5/2)+(3/5)log(5/3))=0.694bit⒊互信息计算对A1=天气处有:I(天气)=H(U)-H(U|V)=0.94-0.694=0.246bit类似可得:I(气温)=0.029bitI(湿度)=0.151bitI(风)=0.048bit⒋建决策树的树根和分枝ID3算法将选择互信息最大的特征天气作为树根,在14个例子中对天气的3个取值进行分枝,3个分枝对应3个子集,分别是:F1={1,2,8,9,11},F2={3,7,12,13},F3={4,5,6,10,14}其中F2中的例子全属于P类,因此对应分枝标记为P,其余两个子集既含有正例又含有反例,将递归调用建树算法。天气1,2,8,9,114,5,6,10,14晴雨多云P⒌递归建树分别对F1和F3子集利用ID3算法,在每个子集中对各特征(仍为四个特征)求互信息.(1)F1中的天气全取晴值,则H(U)=H(U|V),有I(U|V)=0,在余下三个特征中求出湿度互信息最大,以它为该分枝的根结点,再向下分枝。湿度取高的例子全为N类,该分枝标记N。取值正常的例子全为P类,该分枝标记P。(2)在F3中,对四个特征求互信息,得到风特征互信息最大,则以它为该分枝根结点。再向下分枝,风取有风时全为N类,该分枝标记N。取无风时全为P类,该分枝标记P。这样就得到图8.5的决策树天气湿度风晴雨多云高正常有风无风PNNPP对ID3的讨论⒈优点ID3在选择重要特征时利用了互信息的概念,算法的基础理论清晰,使得算法较简单,是一个很有实用价值的示例学习算法。该算法的计算时间是例子个数、特征个数、结点个数之积的线性函数。用4761个关于苯的质谱例子作了试验。其中正例2361个,反例2400个,每个例子由500个特征描述,每个特征取值数目为6,得到一棵1514个结点的决策树。对正、反例各100个测试例作