本文主要是介绍信息熵与信息增益的概念,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
关于熵的概念:
熵是一个信息论中很抽象的概念,从熵定义的角度来看,熵表示一组信息中,所有随机变量出现的期望,他的计算公是:
Entropy(S):H(x)=∑p(xi)*log1/(p(xi)) (i=1,2,..n)=-∑p(xi)*log(p(xi)) (i=1,2,..n)其中log的底数是2.
公式的理解是:p(i)表示第i个变量出现的概率,则1/p(i)表示若p(i)发生的样本容量,如果用二进制来表示样本容量,则n=log2 1/p(i),所以将所有的随机的变量和用二进制表示的样本容量的二进制数的容量相加就得到熵。
从中可以看到,熵表示了一个分类中数据的杂乱程度,熵越小的话,分类就越有规律,所以我们自然会联想到,若要在数据挖掘中使得分类的效果最好,就要设法减小这个信息熵。从而我们又引入了信息增益的概念。因为对于一个集合,可能有多种分类的方法,那么哪种分类是最优呢?如果原来的分组的信息熵记为H(x),
那么划分后的分组的信息熵我们用计算公式:I(X; split) =p(good)*H(g)+p(wrong)*H(w),
这里的p(good)是符号化表示。我假如将一箱苹果数目为x,其中有好有坏,按一种标准比如外观将好的分为一堆(good)有g个,则p(good)=g/x。H(g)的计算方法同信息熵的计算方法。
的信息增益的公式为:Gain(X;split)=H(x)-I(X;split);当然得到的Gain()的值越大表示分配的越好。
这篇关于信息熵与信息增益的概念的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!