ID3算法的核心思想
以信息熵的下降速度作为选取测试属性的标准,所选的测试属性是从根节点到当前节点的路径上尚未被考虑的具有最高信息增益的属性。
维基百科上对ID3算法有比较详细的介绍:ID3维基
计算过程相关公式
x 是一个离散型的随机变量,其概率分布为
p(x)=P(X=x),x∈X
则X的熵为
H(X)=−∑i=0np(xi)log2p(xi)
约定 0log20=0 。
n 表示有多少个分类,可以理解为所选测试属性下有多少个不同值,H越大,信息的不确定性越大,H越小,信息的不确定性越小,H等于0时最具确定性,这种情况是所有元素都归为同一类,每个值的发生都有相同的概率。参考至信息论中的信道的数学模型 ,有
U=[u1,u2,u3,...,ur] ,信源所发消息,离散随机变量;
V=[v1,v2,v3,...,vq] ,新宿所收消息,离散随机变量;
P(V|U) :转移概率表示发生为U,接收为V的概率,存在
∑(vj|ui)=1,i=1,2,...,r;j=1,2,...,qP(V|U) 可以这样理解,当一个属性中取值为 U 时,对另一个属性取值
为V 的影响程度先验概率 P(U) :信源发送消息前, U 的概率分布。其实就是上面的
p(x) 。- 后验概率 P(U|vj) : 信宿端收到消息 vj 后,U的概率分布。
- 后验熵:信宿端收到
vj
后,关于U的平均不确定性为:
H(U|vj)=−∑i=0rP(ui|vj)log2P(ui|vj),j=1,2,...,q - 条件熵:
H(U|V)=−∑j=0q∑i=0rP(ui|vj)log2P(ui|vj)
条件熵即信道疑异度,对后验熵在输出 V 集合中求期望值,表示在信宿端收到全部输出v 后,对信源端 U 尚存在的不确定性。 H(U|V)<H(U) - 信息增益:衡量通过信道传输进行通信后所消除的不确定性的大小,定义为:
I(U,V)=H(U)−H(U|V)
表示收到 V 后获得关于U 的信息量,是不确定性的消除是信宿端所获得的信息量,其中:
H(U)=−∑i=0rP(ui)log2P(ui)
H(U|V)=−∑j=0q∑i=0rP(ui|vj)log2P(ui|vj)
ID3算法步骤
计算各属性的信息增益,找出最大者为根节点
1. 先验熵:没有接收到其他属性时的平均不确定性
2. 后验熵:接收到输出符号Vj时关于信源的不确定性
3. 条件熵:对后验熵在输出符号集V中求期望,接收到全部符号后对信源的不确定性
4. 信息增益:先验熵与条件熵的差,是信宿端所获得信息量
对剩余属性重复上述步骤。递归思想。
例子后续补充