经验条件熵公式的推导

H(D|A=a_i)李航《统计学习方法》中,P62页公式5.8:

计算特征A对数据集D的经验条件熵H(D|A):

H(D|A)=\sum_{i=1}^{n}\frac{D_i}{D}H(D_i)=-\sum_{i=1}^{n}\frac{|D_i|}{|D|}\sum_{k=1}^{K}\frac{|D_{ik}|}{|D_i|}{log_{2}}^{\frac{|D_{ik}|}{|D_i|}}

此处,给出条件熵(H(Y|X))的定义:X给定条件下Y的条件概率分布的熵对X的数学期望:

H(Y|X)=\sum_{i=1}^{n}P_iH(Y|X=x_i)

在书中P61页下方给出了各类的定义:

设训练数据集为D,|D|表示样本容量,即样本个数,设有K个类C_kk=1,2,...,K|C_k|为属于类C_k的样本个数,\sum_{k=1}{K}|C_k|=|D|,设特征A有n个不同 的取值{a_1,a_2,.....,a_n},根据特征A的取值将D划分为n个子集D_1,D_2,...D_n|D_i|D_i的样本个数,\sum_{i=1}^{n}|D_i|=|D|,记子集D_i中属于类C_k的样本的集合为D_{ik},即D_{ik}=D_i\cap C_k|D_{ik}|D_{ik}的样本个数。

那么,对于H(D|A),其变形过程如下:

H(D|A)=\sum_{i=1}^{n}p_iH(D|A=a_i)

式中,P_i为按P60页给出的定义:

X是一个取有限个值的离散随机变量,其概率分布P(X=x_i)=p_i,i=1,2,3....,n

这说明P_i是数据集D按照特征A分类成了n类并由此计算其中的第i类的概率分布

对于H(D|A=a_i),它的含义是特征A取值a_i时的条件下,D的条件概率分布的熵。D是整个数据集,在A=a_i时就是上方所述的P61页给出的D_i定义,所以特征A取值a_i时的条件下D的条件概率分布的熵H(D|A=a_i)=H(D_i)

H(D_i)表示由特征A对数据集D划分后形成的D_i子数据集的熵。那么:

H(D_i)=-\sum_{k=1}^{K}p_k{log_{2}}^{p_k},

其中p_kD_i中属于第k类的概率,即:

p_k=\frac{|D_{ik}|}{|D_i|}

最终可得:

H(D|A)=\sum_{i=1}^{n}\frac{D_i}{D}H(D_i)=-\sum_{i=1}^{n}\frac{|D_i|}{|D|}\sum_{k=1}^{K}\frac{|D_{ik}|}{|D_i|}{log_{2}}^{\frac{|D_{ik}|}{|D_i|}}

因此,经验条件熵的求解步骤:

  1. 确定特征A;
  2. 根据特征A对数据集D划分获取子集D_i,(i=1,2,....i,....n),计算子集D_i的经验熵并求和;
    1. 对子集D_i分类(此处分类是按类别分,不是按特征分),获取各类对应的集合D_{ik}
    2. 由上一步的D_{ik}D_i计算第k类在子集D_i中的概率分布|D_{ik}|/|D_i|
    3. 按公式计算出子集D_i的经验熵;
  3. 求子集D_i对于数据集D的概率分布p_i
  4. 步骤2、3中的数据对应相乘后相加。

 

你可能感兴趣的:(经验条件熵公式的推导)