李航《统计学习方法》中,P62页公式5.8:
计算特征A对数据集D的经验条件熵:
此处,给出条件熵()的定义:X给定条件下Y的条件概率分布的熵对X的数学期望:
在书中P61页下方给出了各类的定义:
设训练数据集为D,表示样本容量,即样本个数,设有K个类
,
。
为属于类
的样本个数,
,设特征A有n个不同 的取值{
},根据特征A的取值将D划分为n个子集
,
为
的样本个数,
,记子集
中属于类
的样本的集合为
,即
,
为
的样本个数。
那么,对于,其变形过程如下:
式中,为按P60页给出的定义:
设是一个取有限个值的离散随机变量,其概率分布为
这说明是数据集
按照特征A分类成了
类并由此计算其中的第
类的概率分布。
对于,它的含义是特征A取值
时的条件下,D的条件概率分布的熵。D是整个数据集,在
时就是上方所述的P61页给出的
定义,所以特征A取值
时的条件下D的条件概率分布的熵
。
表示由特征A对数据集D划分后形成的
子数据集的熵。那么:
,
其中是
中属于第k类的概率,即:
最终可得:
因此,经验条件熵的求解步骤:
- 确定特征A;
- 根据特征A对数据集
划分获取子集
,计算子集
的经验熵并求和;
- 对子集
分类(此处分类是按类别分,不是按特征分),获取各类对应的集合
;
- 由上一步的
和
计算第
类在子集
中的概率分布
;
- 按公式计算出子集
的经验熵;
- 对子集
- 求子集
对于数据集
的概率分布
;
- 步骤2、3中的数据对应相乘后相加。