1.信息熵
   (1).熵
    熵代表随机分布不确定程度,熵越大,不确定越大。随机变量X熵的定义如下:
H(X)=i=1np(xi)logp(xi)=xp(x)logp(x)dx H(X)=-\sum_{i=1}^{n}p(x_i)log\,p(x_i)=-\int_{x}p(x)log\,p(x)dx
   注:
    熵只依赖于随机变量的分布,与随机变量取值无关;
    定义0log0=0(因为可能出现某个取值概率为0的情况);
    熵越大,随机变量的不确定性就越大,分布越混乱,随机变量状态数越多。
   (2)联合熵
    推广到多维随机变量的联合分布,其联合信息熵为:
H(X,Y)=i=1nj=1mp(xi,yj)logp(xi,yj) H(X,Y)=-\sum_{i=1}^{n}\sum_{j=1}^{m}p(x_i,y_j)log \, p(x_i,y_j)
   (3)条件熵
    在X给定条件下,Y的条件概率分布的熵对X的数学期望,(X,Y)发生所包含的熵,减去X单独发生包含的熵:在X发生的情况下,Y发生“新”带来的熵。
H(YX)=H(X,Y)H(X)=x,yp(x,y)logp(x,y)+xp(x)logp(x)=x,yp(x,y)logp(x,y)+x(p(x,y))logp(x)=x,yp(x,y)logp(x,y)+x,yp(x,y)logp(x)=x,yp(x,y)logp(x,y)p(x)=x,yp(x,y)logp(yx) \begin{aligned} H(Y|X)=&H(X,Y)-H(X) \\ =&-\sum_{x,y}p(x,y)log\,p(x,y) + \sum_{x}p(x)log\,p(x)\\ =&-\sum_{x,y}p(x,y)log\,p(x,y) + \sum_x(\sum p(x,y))log\,p(x) \\ =&-\sum_{x,y}p(x,y)log\,p(x,y) + \sum_{x,y}p(x,y)log\,p(x)\\ =& - \sum_{x,y}p(x,y)log \frac{p(x,y)}{p(x)} \\ =&- \sum_{x,y}p(x,y)log\,p(y|x) \end{aligned}
    根据条件熵的定义式,可以得到
H(YX)=x,yp(x,y)logp(yx)=xyp(x,y)logp(yx)=xyp(yx)p(x)logp(yx)=xp(x)yp(yx)logp(yx)=xp(x)(yp(yx)logp(yx))=xp(x)H(YX=x) \begin{aligned} H(Y|X)=&- \sum_{x,y}p(x,y)log\,p(y|x) \\ =&-\sum_{x}\sum_{y}p(x,y)log\,p(y|x)\\ =&-\sum_{x}\sum_{y}p(y|x)p(x)log\,p(y|x)\\ =&-\sum_xp(x)\sum_yp(y|x)log\,p(y|x)\\ =&\sum_xp(x)(-\sum_yp(y|x)log\,p(y|x))\\ =&\sum_xp(x)H(Y|X=x)\\ \end{aligned}
   (4)互信息
    一个随机变量由于已知另一个随机变量而减少的不确定性。
I(X,Y)=H(X)H(XY=y)=H(Y)H(YX=x)=H(X)+H(Y)H(X,Y) \begin{aligned} I(X,Y)=&H(X)-H(X|Y=y)=H(Y)-H(Y|X=x)\\ =&H(X)+H(Y)-H(X,Y) \end{aligned}
2.决策树学习算法
   (1) 决策树
    决策树是一种树形模型,其中每一个内部节点表示在一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一个类别。
    决策树采用的是自顶向下的递归方法,其基本思想是以信息熵为度量构造一颗熵值下降最快的树,到叶子节点处熵值为0,此时在每个节点中的实例都属于同一个类别。
    决策树特点:可以自学习,不需要使用者了解过多背景知识,只需要对训练数据做好标记,是一个有监督学习,从一类无序无规则的事务中推断出决策树表示的规则。决策树示意图如下:
决策树和随机森林(1)
   (2) 决策树生成算法
    建立决策数的关键是在当前状态下选择哪个属性作为分类依据。根据不同的目标函数,决策树主要有三种算法:ID3,C4.5,CART。
   (3)信息增益
    概念:表示得知特征A的信息而使得类X的不确定性减少的程度。当熵和条件熵中的概率由数据估计(特别是极大似然估计)得到时,所对应的熵和条件熵分别称为经验熵和经验条件熵。
    数学定义:特征A对训练数据集D的信息增益g(D,A)g(D,A),定义为集合D的经验熵H(D)H(D)与特征A给定条件下D的经验条件熵H(DA)H(D|A)之差,即:
g(D,A)=H(D)H(DA) g(D,A)= H(D) - H(D|A)
    信息增益计算方法:
      记号:训练数据集D,D|D|表示样本个数;设有K个类Ck(k=1,2,,K)C_k(k=1,2,\cdots,K)Ck|C_k|属于类CkC_k的样本个数,则有kCk=D\sum_k|C_k|=|D|;设特征A有n个不同的取值{a1,a2,,an}\{a_1,a_2,\cdots,a_n\},根特征A将D划分为n个子集D1,D2,,DnD_1,D_2,\cdots,D_nDi|D_i|DiD_i的样本个数,有iDi=D\sum_i|D_i|=|D|;记子集|D_i|中,属于类CkC_k的样本的集合为DikD_{ik}Dik|D_{ik}|DikD_{ik}的样本个数。
      计算方法:
      (i)计算数据D的经验熵H(D)=k=1KCkDlogCkDH(D)=-\sum_{k=1}^{K}\frac{|C_k|}{|D|}log\frac{|C_k|}{|D|}
      (ii)遍历所有特征,对特征A有:
         计算特征A对数据集D的经验条件熵H(DA)H(D|A)
         计算A的特征增益g(D,A)=H(D)H(DA)g(D,A)= H(D) - H(D|A)
         选择信息增益最大的特征作为当前的分裂特征。
      经验条件熵:
H(DA)=i,kp(Dk,Ai)logp(DkAi)=i,kp(Ai)p(DkAi)logp(DkAi)=i=1nk=1Kp(Ai)p(DkAi)logp(DkAi)=i=1np(Ai)k=1Kp(DkAi)logp(DkAi)=i=1nDiDk=1KDikDilogDikDi \begin{aligned} H(D|A)=&-\sum_{i,k}p(D_k,A_i)log\,p(D_k|A_i)\\ =&-\sum_{i,k}p(A_i) p(D_k|A_i)log\,p(D_k|A_i)\\ =&-\sum_{i=1}^{n}\sum_{k=1}^{K}p(A_i) p(D_k|A_i)log\,p(D_k|A_i)\\ =&-\sum_{i=1}^{n}p(A_i)\sum_{k=1}^{K}p(D_k|A_i)log\,p(D_k|A_i)\\ =&-\sum_{i=1}^{n}\frac{|D_i|}{|D|}\sum_{k=1}^{K}\frac{|D_{ik}|}{|D_i|}log\frac{|D_{ik}|}{|D_i|} \end{aligned}
   (4)信息增益率
gr(D,A)=(D,A)H(A) g_{r}(D,A)=\frac{(D,A)}{H(A)}
   (5)Gini系数
Gini(p)=k=1Kpk(1pk)=1k=1Kpk2=1k=1K(CkD)2 Gini(p)=\sum_{k=1}^{K}p_k(1-p_k)=1-\sum_{k=1}^{K}p_k^2=1-\sum_{k=1}^{K}(\frac{|C_k|}{|D|})^2
   (6)三种决策树学习算法
     ID3使用信息增益进行选择,取值多的属性,更容易使数据更纯,其信息增益更大,训练得到一颗庞大且深度较浅的树:不合理;
     C4.5使信息增益率;
     CART使用基尼系数。

相关文章: