关于机器学习中比较深奥的熵的理解

机器学习里有介绍了3种分类器:

Naive Bayes

Support Vector Machine

Decision Tree

其中Decision Tree 里面引入了Entropy的概念,

为什么要引入这个呢?因为电脑不是人脑,它在做这个决策树的时候最大的问题就是不知道用哪种分类条件来对样本进行分类。

电脑必须知道哪一种分类条件最合适,怎样通过计算知道哪种最合适呢,答案就是这个熵的值。

有一个网页介绍得很好:http://stackoverflow.com/questions/1859554/what-is-entropy-and-information-gain

里面举了一个例子,并做了演示。

我再简单描述一下,通常的熵的计算公式是一个和,如果简单一点,我们只考虑有2个项,a和b,a = 3,b=4

那么p(a) = 3/7 ,p(b) = 4/7

Entropy = - 3/7*log2(3/7) - 4/7*log2(4/7) = 0.9852

这个0.9852很接近1,说明这个case很不确定,很难区分,实际上也是如此,因为a=3,b=4分布很均匀。


假如a=6,b=1

重新计算的结果变为:0.5917

计算的方法是用python,这样比较方便

>>> l1 = 3.0/7
>>> l2 = 4.0/7
>>> el = -l1*math.log(l1,2) - l2*math.log(l2,2)
>>> el
0.9852281360342516
>>> r1 = 6.0/7
>>> r2 = 1.0/7
>>> er = -r1*math.log(r1,2) - r2*math.log(r2,2)
>>> er
0.5916727785823275

由于7个里面大多数都是a,因此比较容易区分,熵的值就变低了。


需要注意的是只计算一个熵的值是无法做出决策的,必须计算出一个决策树在分支之前的熵的值,同时计算它的2个分支各自的熵的值,然后比较分支之前和分支之后,熵减少了多少。如果分支前后,熵不发生变化,则表示没有必要进行分支,如果有多种分支条件,则找出令熵的值减少最快的那个进行分支。

由此可见,熵其实就是代表复杂度,经过分支之后,它的复杂度不断下降,最后当所有分类都清晰之后,它的复杂度就降为0.

也可以想象成一种纯度,一开始不纯,后面逐步纯净的一个过程。




  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值