基于熵的特征提取

基于熵的特征提取

一、引言

最近一直在研究自然语言处理、文本分析相关的问题,看了不少论文,数据分析是一个非常有意思的东西,故准备写一些博文来分享近来的一点心得。

先来看一个有意思的例子,假设拥有很多用户手机装有哪些APP的数据,随便列举几个淘宝、美团、美柚、网易彩票等等APP,通过用户手机所安装的app来推测用户的性别,当然前提是预先有了一批数据作为训练集。那么绘制成如下表格(安装了该APP则√,否则×):

淘宝

美柚

网易彩票

性别

×

×

×

×

×

×

×

×

研究的问题明确一下,通过前面7条数据来判断最后一条数据的性别?

一眼扫过,直觉告诉我:

1、是否安装淘宝APP,对预测没有太大作用,因为男女都安装

2、安装美柚和网易彩票,貌似很有区分度,这两个因子“信息量”貌似很大。

信息量大不大,能不能定量计算呢?请接着往下看,系好安全带,我们全速前进咯。

二、熵

对于熵的定义,我百度百科摘了一段,如下:

熵的概念是由德国物理学家克劳修斯于1865年所提出。最初是用来描述“能量退化”的物质状态参数之一,在热力学中有广泛的应用。但那时熵仅仅是一个可以通过热量改变来测定的物理量,其本质仍没有很好的解释,直到统计物理、信息论等一系列科学理论发展,熵的本质才逐渐被解释清楚,即,熵的本质是一个系统“内在的混乱程度”。

最后一句话表名了熵的本质,他是描述一个系统混乱程度的,越是混乱,熵就越高,我们就越难看清真相,在上面的例子中什么信息都不知道的时候,就很难判断最后一条数据的性别。

那么物理学的概念怎么用于信息论的呢?1948年,香农提出了“信息熵”的概念,定义如下:

H(x) = -∑p(xi)log(p(xi)) (i=1,2,..n)

其中:xi表示变量x可能的取值,p(xi)表示变量xi的概率

三、信息增益

信息增益是描述知道了某个因子或者信息,整个系统混沌状态的减少量。

条件熵公式:H(x|y)=-∑p(yi)H(x|y=yi)(i=1,2,..n)

那么信息增益:IG(y)=H(x)-H(x|y)

其中IG(y)表示y因子的信息增益,H(x|y)表示y发生的情况下x的信息熵

四、计算

1、整个预测系统的信息熵

7条信息中3女、4男

H(性别)=-3/7*log3/7-4/7*log4/7=0.6829

2、知道“美柚”这个信息,预测系统的熵

安装美柚app的有4个,其中女3、男1

不安装美柚app的有3个,其中女0、男3

H(性别|y=安装美柚)=-3/4*log3/4-1/4*log1/4=0.5623

P(安装美柚)=4/7

P(性别|y=不安装美柚)=-0-3/3*log3/3=0

P(不安装美柚)=3/7

IG(美柚)=0.6829-(0.5632*4/7+0*3/7)=0.3610

3、知道“网易体育”这个信息,预测系统的熵

安装网易体育app的有3个,其中女0、男3

不安装网易体育app的有4个,其中女3、男1

P(性别|y=安装网易体育)=-0-3/3*log3/3=0

P(安装网易体育)=3/7

H(性别|y=不安装网易体育)=-3/4*log3/4-1/4*log1/4=0.5623

P(不安装网易体育)=4/7

IG(网易体育)=0.6829-(0.5632*4/7+0*3/7)=0.3610

4、知道“淘宝”这个信息,预测系统的熵

7条数据中7个用户安装淘宝app,3女4男

H(性别|y=安装淘宝)=-3/7*log3/7-4/7*log4/7=0.6829

P(安装淘宝)=7/7=1

IG(淘宝)=0.6829-0.6829*1=0

果然,知道用户安装淘宝app,对于预测系统而言,信息增益为0,那就是知道淘宝这个因子,预测不了用户的性别,那么这个因子可以排除。网易体育和美柚这个两个因子的信息增益都为0.3610,说明得到了这两个信息,整个系统系统的混沌状态减小了,那么可以作为预测模型的因子。

五、小结

我们经常说“信息量大”,实际上一个信息所携带的信息量是可以定量计算的,这是一个有意思的事情。

在使用诸如朴素贝叶斯、决策树、随机森林等等此类的机器学习算法来训练模型时,往往会需要进行特征提取,那么信息增益可以很好的实现这一点,另外还能达到降维的目的。

最后,我们设想一个这样的场景:有很多文章,文章的类别很多,有教育类、科技类、体育类等等,我们需要做的是把文章归类,以便与检索。由于数据量很大,人工归类不太可能,有没有办法让计算机帮我们做呢?或者让计算机像人一样,读一篇文章,稍微分析一下就知道了文章的类别。最初计算机可能只能识别几个类别,通过对数据的学习,它慢慢的可以识别所有类别了。这是一个挺有趣的问题,请关注第二篇博客《利用机器学习来进行文本分析》。

快乐源于分享。

   此博客乃作者原创, 转载请注明出处

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值