gain 基尼系数
转至:http://blog.csdn.net/bitcarmanlee/article/details/51488204
在信息论与概率统计学中,熵(entropy)是一个很重要的概念。在机器学习与特征工程中,熵的概念也用得灰常多。今天就把跟熵有关的东东稍微整理一下,权当笔记。
1.信息熵
熵是神马东东?信息论的开山祖师爷Shannon(中文翻译过来一般叫香农,总觉得很多文字经过翻译就不对劲,就跟人家老外翻译贱人就是矫情一样,感觉怪怪的。所以咱们还是用英文了,偷偷装个小逼)明确告诉我们,信息的不确定性可以用熵来表示:
对于一个取有限个值的随机变量X,如果其概率分布为:
那么随机变量X的熵可以用以下公式描述:
每次看到这个式子,都会从心底里感叹数学的伟大与奇妙。在这之前,信息这东东对于人们来说,是个看着好像挺清晰实际还是很模糊的概念。Shannon用最简洁美妙的方式,告诉了整个世界信息到底应该怎么去衡量去计算。今天每个互联网人都知道,这个衡量的标准就是bit。正是由于bit的出现,才引领了我们今天信息时代的到来。所以即使把Shannon跟世界上最伟大的那些科学家相提并论,我觉得也丝毫不为过。
举个例子,如果一个分类系统中,类别的标识是c,取值情况是c1,c2,⋯,cn,n为类别的总数。那么此分类系统的熵为:
更特别一点,如果是个二分类系统,那么此系统的熵为:
其中p(c0)、p(c1)分别为正负样本出现的概率。
2.条件熵(Conditional Entropy)与信息增益(Information Gain)
第一节我们谈到,信息的不确定性我们用熵来进行描述。很多时候,我们渴望不确定性,渴望明天又是新的一天,希望寻找新的刺激与冒险,所谓的七年之庠就是最好的例子。但是又有很多时候,我们也讨厌不确定性,比如现在的RTB广告,很多时候广告主其实希望不管什么情况下,这个广告位都是归我所有来投广告,别人都别跟我来抢,我把广告素材准备好以后,媒体按排期给我播就行了。所以在这种情况下,我们又要竭力去消除系统的不确定性。
那怎么样去消除系统的不确定性呢?当我们知道的信息越多的时候,自然随机事件的不确定性就越小。举个简单的例子:
如果投掷一枚均匀的筛子,那么筛子出现1-6的概率是相等的,此时,整个系统的熵可以表述为:
如果我们加一个特征,告诉你掷筛子的结果出来是偶数,因为掷筛子出来为偶数的结果只可能为2,4,6,那么此时系统的熵为:
因为我们加了一个特征x:结果为偶数,所以整个系统的熵减小,不确定性降低。
来看下条件熵的表达式:
1.当特征x被固定为值xi时,条件熵为: H(c|x=xi)
2.当特征X的整体分布情况被固定时,条件熵为:H(c|X)
应该不难看出:
其中,n为特征X所出现所有种类的数量。
那么因为特征X被固定以后,给系统带来的增益(或者说为系统减小的不确定度)为:
举个别人文章中例子:文本分类系统中的特征X,那么X有几个可能的值呢?注意X是一个固定的特征,比如关键词”经济”,当我们说特征”经济”可能的取值时,实际上只有两个,要么出现,要么不出现。假设x代表x出现,而x¯表示x不出现。注意系统包含x但x不出现与系统根本不包含x可是两回事。
因此固定X时系统的条件熵为:
特征X给系统带来的信息增益(IG)为:
式子看上去很长,其实计算起来很简单,都是一些count的操作。−∑ni=1p(ci)log2p(ci)这一项不用多说,就是统计各个类别的概率,将每个类别的样本数量除以总样本量即可。p(x)∑ni=1p(ci|x)log2p(ci|x)这一项,p(x)表示特征在样本中出现的概率,将特征出现的次数除以样本总量即可。p(ci|x)表示特征出现的情况下,每个类别的概率分别为多少,也全是count操作。p(ci|x¯)操作以此类推。
3.信息增益做特征选择的优缺点
先来说说优点:
1.信息增益考虑了特征出现与不出现的两种情况,比较全面,一般而言效果不错。
2.使用了所有样例的统计属性,减小了对噪声的敏感度。
3.容易理解,计算简单。
主要的缺陷:
1.信息增益考察的是特征对整个系统的贡献,没有到具体的类别上,所以一般只能用来做全局的特征选择,而没法针对单个类别做特征选择。
2.只能处理连续型的属性值,没法处理连续值的特征。
3.算法天生偏向选择分支多的属性,容易导致overfitting。
4.信息增益比(Infomation Gain Ratio)
前面提到,信息增益的一个大问题就是偏向选择分支多的属性导致overfitting,那么我们能想到的解决办法自然就是对分支过多的情况进行惩罚(penalty)了。于是我们有了信息增益比,或者说信息增益率:
特征X的熵:
特征X的信息增益 :
那么信息增益比为:
在决策树算法中,ID3使用信息增益,c4.5使用信息增益比。
5.Gini系数
Gini系数是一种与信息熵类似的做特征选择的方式,可以用来数据的不纯度。在CART(Classification and Regression Tree)算法中利用基尼指数构造二叉决策树。
Gini系数的计算方式如下:
其中,D表示数据集全体样本,pi表示每种类别出现的概率。取个极端情况,如果数据集中所有的样本都为同一类,那么有p0=1,Gini(D)=0,显然此时数据的不纯度最低。
与信息增益类似,我们可以计算如下表达式:
上面式子表述的意思就是,加入特征X以后,数据不纯度减小的程度。很明显,在做特征选择的时候,我们可以取ΔGini(X)最大的那个
在信息论与概率统计学中,熵(entropy)是一个很重要的概念。在机器学习与特征工程中,熵的概念也用得灰常多。今天就把跟熵有关的东东稍微整理一下,权当笔记。
1.信息熵
熵是神马东东?信息论的开山祖师爷Shannon(中文翻译过来一般叫香农,总觉得很多文字经过翻译就不对劲,就跟人家老外翻译贱人就是矫情一样,感觉怪怪的。所以咱们还是用英文了,偷偷装个小逼)明确告诉我们,信息的不确定性可以用熵来表示:
对于一个取有限个值的随机变量X,如果其概率分布为:
那么随机变量X的熵可以用以下公式描述:
每次看到这个式子,都会从心底里感叹数学的伟大与奇妙。在这之前,信息这东东对于人们来说,是个看着好像挺清晰实际还是很模糊的概念。Shannon用最简洁美妙的方式,告诉了整个世界信息到底应该怎么去衡量去计算。今天每个互联网人都知道,这个衡量的标准就是bit。正是由于bit的出现,才引领了我们今天信息时代的到来。所以即使把Shannon跟世界上最伟大的那些科学家相提并论,我觉得也丝毫不为过。
举个例子,如果一个分类系统中,类别的标识是c,取值情况是c1,c2,⋯,cn,n为类别的总数。那么此分类系统的熵为:
更特别一点,如果是个二分类系统,那么此系统的熵为:
其中p(c0)、p(c1)分别为正负样本出现的概率。
2.条件熵(Conditional Entropy)与信息增益(Information Gain)
第一节我们谈到,信息的不确定性我们用熵来进行描述。很多时候,我们渴望不确定性,渴望明天又是新的一天,希望寻找新的刺激与冒险,所谓的七年之庠就是最好的例子。但是又有很多时候,我们也讨厌不确定性,比如现在的RTB广告,很多时候广告主其实希望不管什么情况下,这个广告位都是归我所有来投广告,别人都别跟我来抢,我把广告素材准备好以后,媒体按排期给我播就行了。所以在这种情况下,我们又要竭力去消除系统的不确定性。
那怎么样去消除系统的不确定性呢?当我们知道的信息越多的时候,自然随机事件的不确定性就越小。举个简单的例子:
如果投掷一枚均匀的筛子,那么筛子出现1-6的概率是相等的,此时,整个系统的熵可以表述为:
如果我们加一个特征,告诉你掷筛子的结果出来是偶数,因为掷筛子出来为偶数的结果只可能为2,4,6,那么此时系统的熵为:
因为我们加了一个特征x:结果为偶数,所以整个系统的熵减小,不确定性降低。
来看下条件熵的表达式:
1.当特征x被固定为值xi时,条件熵为: H(c|x=xi)
2.当特征X的整体分布情况被固定时,条件熵为:H(c|X)
应该不难看出:
其中,n为特征X所出现所有种类的数量。
那么因为特征X被固定以后,给系统带来的增益(或者说为系统减小的不确定度)为:
举个别人文章中例子:文本分类系统中的特征X,那么X有几个可能的值呢?注意X是一个固定的特征,比如关键词”经济”,当我们说特征”经济”可能的取值时,实际上只有两个,要么出现,要么不出现。假设x代表x出现,而x¯表示x不出现。注意系统包含x但x不出现与系统根本不包含x可是两回事。
因此固定X时系统的条件熵为:
特征X给系统带来的信息增益(IG)为:
式子看上去很长,其实计算起来很简单,都是一些count的操作。−∑ni=1p(ci)log2p(ci)这一项不用多说,就是统计各个类别的概率,将每个类别的样本数量除以总样本量即可。p(x)∑ni=1p(ci|x)log2p(ci|x)这一项,p(x)表示特征在样本中出现的概率,将特征出现的次数除以样本总量即可。p(ci|x)表示特征出现的情况下,每个类别的概率分别为多少,也全是count操作。p(ci|x¯)操作以此类推。
3.信息增益做特征选择的优缺点
先来说说优点:
1.信息增益考虑了特征出现与不出现的两种情况,比较全面,一般而言效果不错。
2.使用了所有样例的统计属性,减小了对噪声的敏感度。
3.容易理解,计算简单。
主要的缺陷:
1.信息增益考察的是特征对整个系统的贡献,没有到具体的类别上,所以一般只能用来做全局的特征选择,而没法针对单个类别做特征选择。
2.只能处理连续型的属性值,没法处理连续值的特征。
3.算法天生偏向选择分支多的属性,容易导致overfitting。
4.信息增益比(Infomation Gain Ratio)
前面提到,信息增益的一个大问题就是偏向选择分支多的属性导致overfitting,那么我们能想到的解决办法自然就是对分支过多的情况进行惩罚(penalty)了。于是我们有了信息增益比,或者说信息增益率:
特征X的熵:
特征X的信息增益 :
那么信息增益比为:
在决策树算法中,ID3使用信息增益,c4.5使用信息增益比。
5.Gini系数
Gini系数是一种与信息熵类似的做特征选择的方式,可以用来数据的不纯度。在CART(Classification and Regression Tree)算法中利用基尼指数构造二叉决策树。
Gini系数的计算方式如下:
其中,D表示数据集全体样本,pi表示每种类别出现的概率。取个极端情况,如果数据集中所有的样本都为同一类,那么有p0=1,Gini(D)=0,显然此时数据的不纯度最低。
与信息增益类似,我们可以计算如下表达式:
上面式子表述的意思就是,加入特征X以后,数据不纯度减小的程度。很明显,在做特征选择的时候,我们可以取ΔGini(X)最大的那个
gain 基尼系数的更多相关文章
- 决策树与树集成模型(bootstrap, 决策树(信息熵,信息增益, 信息增益率, 基尼系数),回归树, Bagging, 随机森林, Boosting, Adaboost, GBDT, XGboost)
1.bootstrap 在原始数据的范围内作有放回的再抽样M个, 样本容量仍为n,原始数据中每个观察单位每次被抽到的概率相等, 为1/n , 所得样本称为Bootstrap样本.于是可得到参数θ的 ...
- Theoretical comparison between the Gini Index and Information Gain criteria
Knowledge Discovery in Databases (KDD) is an active and important research area with the promise for ...
- but this usually doesn’t gain you anything.
High Performance My SQL, Third Edition Date and Time Types My SQL has many types for various kinds o ...
- (转载)高速ADC的关键指标:量化误差、offset/gain error、DNL、INL、ENOB、分辨率、RMS、SFDR、THD、SINAD、dBFS、TWO-TONE IMD
(一)一个基本概念 分贝(dB):按照对数定义的一个幅度单位.对于电压值,dB以20log(VA/VB)给出:对于功率值,以10log(PA/PB)给出.dBc是相对于一个载波信号的dB值:dBm是相 ...
- 通俗易懂的信息熵与信息增益(IE, Information Entropy; IG, Information Gain)
信息熵与信息增益(IE, Information Entropy; IG, Information Gain) 信息增益是机器学习中特征选择的关键指标,而学习信息增益前,需要先了解信息熵和条件熵这两个 ...
- 增益 Gain 分贝 dB
https://zh.wikipedia.org/wiki/%E5%88%86%E8%B2%9D 分贝(decibel)是量度两个相同单位之数量比例的单位,主要用于度量声音强度,常用dB表示. “分” ...
- 基尼系数(Gini coefficient),洛伦茨系数
20世纪初意大利经济学家基尼,于1922年提出的定量测定收入分配差异程度的指标.它是根据洛伦茨曲线找出了判断分配平等程度的指标(如下图). 设实际收入分配曲线和收入分配绝对平等曲线之间的面积为A,实际 ...
- 信息增益(Information Gain)(转)
当我们需要对一个随机事件的概率分布进行预测时,我们的预测应当满足全部已知的条件,而对未知的情况不要做任何主观假设.在这种情况下,概率分布最均匀,预测的风险最小.因为这时概率分布的信息熵最大,所以称之为 ...
- xgboost 里边的gain freq, cover
assuming that you're using xgboost to fit boosted trees for binary classification. The importance ma ...
随机推荐
- Jquery倒计时源码分享
在静态页添加显示倒计时的容器,并引用下面脚本,代入时间参数即可使用. timeoutDate——到期时间,时间格式为2014/01/01或2014/1/1 D——天 H——小时 M——分钟 S——秒 ...
- VS2017 IDE中发布自包含(SCD)DotNET Core项目
根据Stack Overflow上的一个回答得知,这项功能目前VS2017并不具备,但你可以通过如下方法发布自包含项目: 1.项目文件(.csproj)中添加RuntimeIdentifier配置项, ...
- Linux运维学习笔记-定时任务知识总结
定时任务编辑规范流程: 重要知识点: 切记用全路径编写定时脚本.定时任务 大部分在 crontab 计划任务中都会年到未尾带 >/dev/null 2>&1,是什么意思呢? > ...
- iOS-----多线程之NSThread
多线程 iOS平台提供了非常优秀的多线程支持,程序可以通过非常简单的方式来启动多线程,iOS平台不仅提供了NSThread类来创建多线程,还提供了GCD方式来简化多线程编程,提供了NSOperatio ...
- mysql配置调优-开启慢查询日志-slow_query_log
工作中,会遇到需要查看mysql的top 20 慢sql,逐个进行优化,加上必要的索引这种需求,这时就需要开启数据库的慢查询日志的功能 1.查询当前慢查询日志的状态 # 默认为关闭状态 mysql - ...
- BZOJ3295: [Cqoi2011]动态逆序对(树状数组套主席树)
3295: [Cqoi2011]动态逆序对 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 7465 Solved: 2662[Submit][Sta ...
- 7-19 PAT Judge(25 分)
The ranklist of PAT is generated from the status list, which shows the scores of the submissions. Th ...
- 2018-2019-2 《网络对抗技术》Exp5 msf 20165222
本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 总计:主动:ms17_010永恒之蓝(成功): 浏览器:office_word_hta(成功): 客户 ...
- test20181021 快速排序
题意 对于100%的数据,\(n,m \leq 10^5\) 分析 考场上打挂了. 最大值就是后半部分和减前半部分和. 最小是就是奇偶相减. 方案数类似进出栈序,就是catalan数 线段树维护即可, ...
- Fortify SCA 分析代码漏洞全解
上次介绍了用FindBugs辅助分析代码漏洞.这次换了一个工具:Fortify SCA Demo 4.0.0.Fortify是一个在安全方面挺出名的公司,这里就不多说了.先介绍一下主角:Fortify ...