最近在学机器学习的相关内容,看到决策树这一块提到了信息增益等内容,在此做下笔记
信息&信息熵&信息增益
信息
所谓信息,引用香农的话,信息即消除不确定性的东西,十分形象
定义系统(X),发生了事件(x_i),其中(i∈{0,1,2,···,n})
则从事件(x_i)中可以得到的信息量为
(I(x_i)=-log_2(P(x_i)))
解释:概率越接近1可用的信息量就越少,系统就越确定,概率越接近0各种鱼龙混杂的信息就浮现出来了,所以信息量大,至于为什么公式长这个样子,可能它更加契合世界的规律吧。
信息熵
和物理学中的熵相似,表示的事物的混乱程度,熵越大,系统就越混乱,信息也是如此。
信息熵越大,这个系统就越混乱,不确定性就越大,透露出的信息(有用无用的都有)就越多。
(H(X) = Sigma I(x_i) p_i)
当概率为0或者1时,信息熵为0,系统确定,在二分问题中概率达到0.5时,信息熵达到最大值1
信息增益
指的是增加相关信息所带来的熵的增减
为了获得信息增益,就必须建立起条件熵的概念
(H(Y | X)=sumlimits_{i=1}^{n}P(x_i)H(Y|X=x_i))
其中X表示n个特征组成的特征空间,分别在(x_i)下得到的条件熵的总期望就是总的条件熵。
然后给定条件X,Y的信息熵是多少,从而得出信息增益
(IG(X) = H(Y) - H(Y | X))
举一个网上看到的例子,假如说Y表示的是下雨这一事件,X表示的是阴天这一条件,如果
(H(Y) = 2),而(H(Y|X)=0.01)
很明显可以看出,对于增加了阴天这一条件之后信息熵减少了1.99之多,是巨大的,相应的信息增益
(IG(X) = H(Y)-H(Y|X) = 1.99)
在古典概型下的信息熵和信息增益
训练数据的集合D,|D|表示样本的个数,将D划分为k个类((C_1,C_2,C_3,...,C_k)),然后再用特征A将D划分为n个子集((D_1,D_2,D_3,...,D_i)),用(D_{ik})表示(D_i)和(C_k)之间的交集,即条件A下还能取到哪些值。
则信息经验熵
(H(D) = -sumlimits_{k=1}^{K}frac{|C_k|}{|D|}log_2frac{|C_k|}{|D|})
选定条件A的经验条件熵
(H(D|A) = sumlimits_{i=1}^{n}frac{|D_i|}{|D|}H(D_i)=-sumlimits_{i=1}^{n}frac{|D_i|}{|D|}sumlimits_{k=1}^{K}frac{|D_{ik}|}{|D|}log_2frac{|D_{ik}|}{|D|})
信息增益
(g(D,A) = H(D) - H(D|A))