开篇这篇文章主要介绍信息熵(Information Entropy)这个概念,也是为了我的专栏下一讲做前期的知识准备。 信息理论是数学的重要分支,主要是解决数据在噪音通道的传输问题。其中,信息理论里程碑的贡献是量化了一个事件或者随机变量所包含的信息,也叫做熵(Entropy)。 熵的计算在机器学习中有着广泛的应用,如逻辑回归(Logistic Regression),决策树(Decision Tree)等等分类模型。 这些看似深奥的知识,背后的逻辑并不难。 大纲
信息理论简介熵(Entropy)这个概念在学大学物理的时候,有所涉及。熵可以被看做一个系统混乱度的度量。熵值越大,系统越混乱。 也许你听过,宇宙在朝着熵增的方向发展着。 信息理论中,最基础的概念就是信息(Information)。信息值可以将事件、随机变量中所含的信息量化。 问题:六月飘雪和六月下雨哪个事件的信息量大? 六月下雨太正常了,一点都不惊讶,这是常识,信息量相对较少。六月飘雪就不正常了,小概率事件背后是不是有冤情,信息量满满。 信息理论中:
信息量的计算也就是说,信息量和概率是负相关的。概率越小,信息量越大。所以,在信息理论中,会用到以下的公式将信息量和概率值联系起来: 信息值计算 从下图中,可以发现公式可以很好的满足我们的需求。当事件发生概率为100%的时候,信息值为0。 信息值~概率 拿抛硬币为例,正反出现的概率各为50%,P=0.5。代入公式,出现正面这个事件的信息值为1。 熵的计算熵这个概念有点类似期望值。这次拿掷骰子为例,骰子有1,2,3,4,5,6 六个面。 如果有人和你赌钱:
你觉得公平吗?当然不,为什么呢?这就撤出了 期望值的概念。 骰子的六个面任意一面出现的概率为 1/6。 那么将 每个面的点数*点数出现的概率 求和,这就是期望值。掷骰子这个事件的期望值为(1+2+3+4+5+6)* 1/6 = 3.5。 怎么理解期望值呢?其实可以理解为,多次试验结果的平均值。也就是说,掷骰子无数次,骰子点数的平均值是3.5。这样就好理解上面这个游戏是否公平了。明显被占了便宜。 熵的概念类似期望值,是计算 P * (-ln(P)) 的和,-ln(P)就是该事件的信息量IV。 熵 = (事件发生概率 * 事件信息量)的和 掷骰子的熵 事件符合的概率分布多种多样,均匀分布,高斯分布等等。不同的分布,计算的熵是什么个规律呢?
这也好理解,还是掷硬币为例。但是这次的硬币是做了手脚的,出现正面的概率为80%,反面的概率为20%。这和50%正反的情况的熵值孰高孰低呢? 万变不离其宗。 我们来看下,熵和概率的曲线变化。概率越集中在0.4~0.6之间,(事件发生概率 * 事件信息量)的值越大。而大概率事件和小概率事件的(事件发生概率 * 事件信息量)值都会急剧减小。因为小概率事件,虽然信息量大,但是发生概率小,相互抵消。反之亦然。 或许这样更加清晰,我们制作一系列的6个作弊骰子,正面朝上的概率分别为0%,10%,20%,30%,40%,50%。分别算一下投骰子这个事件的熵。可以看到,均匀的骰子产生的熵最大。 熵和概率分布 总结这是为了专栏下一讲逻辑回归的知识小结,对于信息值和熵,我相信大家有了一个基本的概念。总结如下: 信息值:
熵:
喜欢我的文章,可以关注我的专栏。在专栏中,细致讲解了机器学习的相关知识,并且每一个模型,都会通过python进行底层的模型编程。让你从只是会用市面上流行的机器学习Package,到自己真正理解机器学习各个模型背后的原理。 |
|
来自: taotao_2016 > 《it》