概述
参考了wiki百科(其中列出几篇paper,并提到基于信息熵计算的方法比较主流),U.M. Fayyad&IRANI的93年paper(版本印刷质量太差,没有看完),一篇standford的若干人等的paper,及国内的一篇各种离散化方法比较的paper.
其实我只是想了解U.M. Fayyad&IRANI的方法,但找到的版本质量太差,错别字一堆,公式也很不清楚,没有看完。。追求实用的话standford篇倒是值得一看,对这两位阁下的方法精简讲了一番(但是电子版的质量真的也不怎么好。。凑合着能用吧)。
问题描述:
对于某个连续属性A,样本集S,如何将之离散化?(有指导的情况)
问题解决:
可以简化为两大步:
一,二分递归地寻找断点。
候选断点: 找不同类的相邻点,取它们之间的某点(如中点)。
每次在区间内寻找断点时,有若干候选断点(例如所有样本的该属性值)。每个候选断点T都能将S划分为两个子集,分别计算这个子集的信息熵,然后加权求和,得到关于T的分类信息熵Ent(A,T,S)。取使得分类信息熵最小的断点T,作为最终选定断点。
二,确定递归停机条件。
在此引入了MDLP(最小描述距离长度法则):总体信息量=描绘理论所需信息量+描绘不满足理论的异常所需信息量。总之,这个东东就是对模型的复杂度和错误率做了一个折中。在连续变量离散化的问题中,需要的额外信息量是用来来描述断点位置。
停机条件是:信息增益<log(N-1)/N+q(A,T,S)/N. 其中信息增益=Ent(A,T,S)-Ent(S),q(A,T,S)是一个和信息熵有关的式子,打不出来- -(csdn的数学公式功能ms不太好)
值得一提的是,standford那篇paper有说连续属性离散化明显提高了贝叶斯分类器的分类效果,而基于熵的方法又是离散化中效果最好的。
另外,U.M. Fayyad&IRANI的方法是一个一个属性地找对应的断点的。因此,在找断点前应该要先将样本按该属性值从小到大排序。而各个属性所对应的断点个数也有可能是不同的。
再另外,找断点时如果有一种极端情况是,前一部分都属于一类,后一部分都属于另一类,那断点必然在这两部分的交界处,这由概率和熵的基础知识很容易推出。(在没有简化找断点的条件时发现的)
最后
以上就是多情外套为你收集整理的连续属性的离散化的全部内容,希望文章能够帮你解决连续属性的离散化所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复