如何opencv人脸训练分类器非平衡数据的分类器

海量非平衡多分类数据的统计分析--《深圳大学》2015年硕士论文
海量非平衡多分类数据的统计分析
【摘要】:近年来,伴随着信息技术与互联网的飞速发展,人类进入了大数据时代。大容量数据的分析给传统的统计方法和计算带来了挑战。当数据量过大时,传统的统计估计方法难以在普通的计算机上得以实现,例如数据量超出内存或无法在可容忍的时间内得到计算结果,这些障碍极大地限制了高级统计技术的应用。应对海量数据分析的挑战,业界主要通过在大型计算机集群上布置Hadoop或Spark等分布式处理系统,然后基于MapReduce算法实现并行计算,这种方式对普通用户来说代价昂贵;另一个途径是子抽样方法,即用一个合理抽取的较小规模的子样本来代替海量的全部数据进行分析,从而达到节约计算成本的目的。在分类问题里,当数据呈现非平衡特性时,这种抽样是一个具有挑战性的问题,通常的均匀随机抽样方法存在严重的问题,这是由于类别之间的严重的分布不平衡,均匀抽出的子样本里只含极少量的少数类别样本,甚至可能根本就缺少某些类别的样本,对于这样得到的子样本,直接应用通常的分类算法都将不再有效。本文研究了对海量非平衡多分类数据以及多项Logistic回归模型的有效子抽样策略,我们证明了此时同样需要根据抽样概率比对截距项参数进行纠偏,我们给出了纠偏公式并利用统计数值模拟研究了子抽样策略的有效性。我们的主要工作如下:1.针对非平衡分类数据的多项回归模型,提出了一种基于Case-Control的子抽样方法,并给出了估计纠偏的公式。我们应用统计数值模拟比较了新方法与通常的均匀随机抽样方法的效果。2.针对超多分类的非平衡数据下的多项回归模型,提出了一种结合Case-Control抽样并将多项回归化为多个二项回归模型进行估计得新方法,并应用随机模拟方法研究了其针对海量数据和超多分类场合的有效性。3.通过统计模拟研究了多种抽样方法下估计的有效性,并比较了子抽样相对全样本下的效率损失。
【关键词】:
【学位授予单位】:深圳大学【学位级别】:硕士【学位授予年份】:2015【分类号】:O212;C81【目录】:
摘要4-5Abstract5-8第1章 导引8-12 1.1 研究背景8-9 1.2 分类与非平衡数据9-11 1.3 研究内容与意义11 1.4 论文结构11-12第2章 多分类数据的均衡抽样12-21 2.1 二项Logistic回归模型简介12-14 2.2 多项回归模型简介14-16 2.3 多项回归模型的均衡抽样策略与估计16-18 2.4 计算模拟18-21第3章 超多分类数据的子抽样策略与快速估计方法21-29 3.1 超多类别数据的子抽样策略与估计方法21-22 3.2 计算模拟22-29第4章 总结29-30 4.1 本文结论29 4.2 不足之处29-30参考 文献30-32致谢32-33
欢迎:、、)
支持CAJ、PDF文件格式
【参考文献】
中国期刊全文数据库
杨明;尹军梅;吉根林;;[J];南京师范大学学报(工程技术版);2008年04期
【共引文献】
中国期刊全文数据库
梁万路;;[J];兵工自动化;2011年04期
刘翠玲;龙瀛;;[J];地理科学进展;2015年02期
孙全尚;;[J];科教文汇(下旬刊);2013年09期
彭栋栋;曹凯;陈峰;;[J];山东理工大学学报(自然科学版);2012年01期
陈金坦;康恒政;杨燕;周伟雄;;[J];山东大学学报(工学版);2011年02期
陈斌;刘轩;;[J];中国学校卫生;2013年05期
徐丽丽;闫德勤;高晴;;[J];微型机与应用;2015年17期
中国博士学位论文全文数据库
谷琼;[D];中国地质大学;2009年
牛小飞;[D];山东大学;2012年
陆慧娟;[D];中国矿业大学;2012年
李凤岐;[D];大连理工大学;2014年
赵华;[D];西南交通大学;2014年
中国硕士学位论文全文数据库
梅玲;[D];河南大学;2011年
韩秋玲;[D];华南理工大学;2011年
赵文娟;[D];重庆理工大学;2011年
郝姝雯;[D];哈尔滨工程大学;2011年
徐红国;[D];山西大学;2011年
仲媛;[D];南京理工大学;2012年
冯丹;[D];大连海事大学;2010年
陈峰;[D];山东理工大学;2012年
刘翠玲;[D];首都师范大学;2013年
孟军;[D];南京理工大学;2014年
【二级参考文献】
中国期刊全文数据库
谢纪刚;裘正定;;[J];北京交通大学学报;2006年05期
尹军梅;杨明;;[J];南京师范大学学报(工程技术版);2008年03期
【相似文献】
中国期刊全文数据库
马兰珍;[J];工业技术经济;2000年05期
吴兆奇,张阁玉,关蓬莱;[J];沈阳航空工业学院学报;2000年03期
欧阳资生;[J];数学的实践与认识;2003年10期
吴小腊;向绪言;李泽华;;[J];湖南文理学院学报(自然科学版);2007年03期
许双安;姚宜斌;孔建;龚佩佩;;[J];大地测量与地球动力学;2010年04期
常振海;刘薇;;[J];延边大学学报(自然科学版);2012年01期
杨自强;[J];计算数学;1981年04期
,张绪军;[J];测绘学报;1988年03期
马勤;[J];黑龙江财专学报;1988年03期
丁建生;冯琪;;[J];兰州医学院学报;1990年03期
中国重要会议论文全文数据库
孙尚拱;何平平;;[A];中国现场统计研究会第12届学术年会论文集[C];2005年
张松松;沈竞;;[A];第十届中国不确定系统年会、第十四届中国青年信息与管理学者大会论文集[C];2012年
艾瑛;陈仲堂;孙海义;刘丹;;[A];第十一届沈阳科学学术年会暨中国汽车产业集聚区发展与合作论坛论文集(信息科学与工程技术分册)[C];2014年
古佳;;[A];第十二届中国青年信息与管理学者大会论文集[C];2010年
阴拥民;徐聪颖;李卫华;唐赟;刘桂霞;;[A];中国化学会第29届学术年会摘要集——第19分会:化学信息学与化学计量学[C];2014年
黄运隆;李晓钢;;[A];技术融合创新·可靠服务企业·安全产品制胜——2013年全国机械行业可靠性技术学术交流会暨第四届可靠性工程分会第五次全体委员大会论文集[C];2013年
张敏;;[A];2003中国现场统计研究会第十一届学术年会论文集(上)[C];2003年
张波;沈其君;;[A];2011年中国卫生统计学年会会议论文集[C];2011年
李志林;尹建华;;[A];中国现场统计研究会第12届学术年会论文集[C];2005年
吴利;张敏强;;[A];第十二届全国心理学学术大会论文摘要集[C];2009年
中国博士学位论文全文数据库
田茂再;[D];南开大学;2001年
李锋;[D];山东大学;2010年
杨玉娇;[D];华东师范大学;2013年
夏玮;[D];中国科学技术大学;2013年
吴鑑洪;[D];华东师范大学;2007年
曹永建;[D];中国林业科学研究院;2008年
中国硕士学位论文全文数据库
敬晓英;[D];长安大学;2011年
贾元杰;[D];中国人民解放军军事医学科学院;2012年
王微;[D];东北师范大学;2013年
苗常青;[D];扬州大学;2013年
宋涛;[D];天津财经大学;2013年
李壁涛;[D];云南大学;2015年
谭宏卫;[D];贵州民族大学;2013年
张诚;[D];合肥工业大学;2013年
张健;[D];东北农业大学;2006年
王森;[D];中央民族大学;2011年
&快捷付款方式
&订购知网充值卡
400-819-9993
《中国学术期刊(光盘版)》电子杂志社有限公司
同方知网数字出版技术股份有限公司
地址:北京清华大学 84-48信箱 大众知识服务
出版物经营许可证 新出发京批字第直0595号
订购热线:400-819-82499
服务热线:010--
在线咨询:
传真:010-
京公网安备75号非平衡数据机器学习 - 博客频道 - CSDN.NET
喜欢数据挖掘的可以一起交流。
分类:机器学习
这篇文章翻译至,作者简洁明了地阐述了非平衡数据及解决这类问题的常用方法。其实一些朴素的方法我们自己也能想到,并且也实际使用过一些,比如重采样、调整权值等。然而,我们并没有去做一些归纳。感谢作者帮我们归纳了一些思想朴素但又实际有用的方法。
什么是非平衡数据?
如果你刚开始一门机器学习课程,可能大部分数据集都相当的简单。此外,当你构建分类器时,样本的类别是平衡的,这意味着每个类别有大致相同的样本数。教师通常都采用清理过的数据集作为示例,以让教学专注于具体的算法或技术而不是其他问题。通常,你看到的是如下图所示的二维数据,图中一个点代表一个样本,不同的颜色代表不同的类别:
分类算法的目标是试图学习一条分割线(分类器)来区分这两类点。基于多种数学、统计或者几何假设,有很多方法来达到这个目的。
但是当你面对真实的世界,你注意到的第一问题就是,没有清理的数据存在许多噪声且类别不平衡。真实数据的散点图更像是这样:
主要问题是类别的不平衡:红色点的数量严重少于蓝色的。
研究不平衡类通常认为不平衡意味着少数类只占比10~20%。实际上,一些数据集远比这更不平衡。例如:
1. 每年大约有2%的信用卡账户被欺骗。(大多数欺诈检测领域严重不平衡。)
2. 状态医疗甄别通常在大量不存在此状态的人口中检测极少数有此状态的人(比如美国的HIV携带者仅占0.4%)。
3. 磁盘驱动器故障每年约1%。
4. 网络广告的转化率估计在10-3到10-6之间。
5. 工厂生产故障率通常约0.1%。
这些领域许多问题是不平衡的,我称他们为海底捞针问题,机器学习分类器从大量负类(不感兴趣的)中找到少数正类(感兴趣,或故障)。
当你遇到这样的问题,用标准算法去解决一定会很困难。传统算法往往偏向于多数类,因为他们的损失函数在没考虑数据分布的情况下优化如错误率等量。最坏的情况是,小类别样本会被认为是大类别的异常值而被忽略。学习算法简单的生成一个平凡分类器,将每个样本都分类为大类别。
这种看似病态行为但事实上并不是。事实上,如果你的目标是最大化简单精度(或者等价,最小化错误率),这是一个完全可以接受的解决方案。但是如果我们假设稀有类样本对于分类更重要,那么我们就应更小心、更精细的处理这个问题。
如果你遇到这样的问题,并想要解决他们的实用建议,继续读下去吧。
注意:这篇文章的目的是洞察和关于如何解决这类问题的实际建议。而不是一个教你逐行写代码的编码教程。我用&来实践这些想法,但这篇文章将解释一些基本思想和原则。
处理非平衡数据
非平衡数据学习在机器学习研究中已经活跃了20多年。它作为许多论文、研习班、特别会议和学位论文的主题(最近一项调查大约有220引用)。试用了大量的技术,得到了不同的结果和一些清晰的答案。数据科学家第一次遇到这类问题通常要问,数据非平衡我该怎么做?同样的问题没有确切的答案,一般化问题哪种机器学习算法最好?没有确切的答案:看什么样的数据。
这里有一个实用方法的粗糙大纲。大概排列如下:
什么都不做。有时你比较幸运什么都不用做。你可以在所谓的自然分布的数据上训练,有时它并不需要任何修改。
通过某种方法使训练集平衡:
对稀有类别过采样
对大类别欠采样
对稀有类别合成新数据
扔掉稀有类别样本,转换为一个异常检测框架。
在算法层面,或之后:
调整类权值(误分类cost)
调整决策阈值
修改现有算法让其对稀有类更敏感
构建一个对不平衡数据表现良好的全新算法
题外话:评估注意事项
首先,快速浏览。在谈论怎样训练一个针对不平衡数据的分类器之前,我们需要讨论怎样正确的评估它。这无论怎么强调都不为过。只有当你测量正确的指标,你才会取得进展。
1. 不要用精确度(或错误率)去评估你的分类器。有两个严重的问题。第一,精确度简单的以0.5为阈值来处理二分类,但当数据非平衡时这通常是错的。第二,分类精确度是基于误差的一个简单计数,你应该知道得更多。你应该知道哪些类、在哪儿被混淆。如果你不明白这些点,阅读可能会有用。你可以用一个ROC曲线,或者一个PR曲线来可视化你的分类器性能。
图 1 ROC曲线
图 2 PR曲线
2. 不要用score和predict从分类器获取硬分类(标签),而应该用proba和predict_proba获取概率估计。
3. 当你获得概率估计后,不要盲目的以0.5为阈值来划分类别。观察性能曲线,来确定将要采样的阈值。早期的论文有许多错误发生就是因为研究人员简单的以0.5截断。
4. 不管你训练什么,总是在自然分布上测试。见
sklearn.cross_validation.StratifiedKFold
5. 你可能不需要概率估计来分类,但是当你需要时,使用校准。见
sklearn.calibration.CalibratedClassifierCV
前面第一幅二维图比单个数字信息更大,但当你需要单个数字指标,其中一个比精确度更可取:
过采样和欠采样
最简单的方法需要处理步骤变化不大,只包括简单的调整样本集直到它们平衡。过采样通过随机重复少类别的样本来增加它的数量。欠采样随机对多类别样本降采样。一些数据科学家(天真的)认为过采样更优越,因为它获得更多的数据,而欠采样扔掉了。但是记住,复制数据不是没有效果—重复的数据使变量具有更低的变化。积极的结果是重复了误差的数量:如果一个分类器使原来假阴的少类别数据再重复5次,那么它将在新数据集上计算6次误差。相反,欠采样可以使独立变量看起来具有更高的方差。
因此,机器学习文献展示了自然分布下过采样和欠采样混合的结果。
大多数机器学习包可以执行简单的采样调整。R包unbalanced针对非平衡数据集实现了一系列的采样方法。scikit-learn.cross_validation包含了基本的采样算法。
Wallace等的贝叶斯参数
可能最好的理论依据和实践建议来至于论文《Class Imbalance, Redux》,作者是Wallace, Small, Brodley and Trikalinos4。他们赞成欠采样。他们以数学的切底的理论为依据,但在这里我只能介绍一个他们用到的例子来表达他们的观点。
他们认为,两个类别必须是在一些解释变量分布的尾部可分的。假设你有两个类别用一个因变量,x,每个类是一个标准差为1的高斯分布。类别1的均值是1,类别2的均值是2。我们任意的假定类别2为多类别。他们应该是这样:
给定一个x值,你会用什么阈值来确定它来自哪个类?可以清楚的知道两者之间的最佳分割线是它们的中点,x=1.5,显示为垂直的线:如果一个新的样本x落在1.5左边,它可能是类别1,相反是类别2。当从样本中学习时,我们希望判别截至1.5是我们会得到的,如果类平衡,这大概是我们应该得到的。X轴上的点显示不同分布生成的样本。
但我们类别1是少类别,所以假设其有10个样本,类别2有50个样本。很可能我们学习到一个平移过的分割线,如下:
我们可以通过下采样多类别去匹配少类别使结果更好。问题是我们学习到的分割线将有很高的可变性(因为样本更少),如下所示(10次样本导致10条不同的竖线):
因此最终的步骤是利用去联合这些分类器。主要过程如下:
这个技术在Scikit-learn中没有实现,但是文件blagging.py实现类一个BlaggingClassifier,即平衡引导样本先验聚合。
基于近邻的方法
过采样和欠采样随机选择样本来修正他们的比例。其他方法认真检查样本空间,并决定基于他们的近邻做什么。例如,Tomek链接是对对立类的实例,它们是自己的最近邻。换句话说,它们是对非常相似的对立实例。
Tomek算法查找这样的对并删掉其中多类别的实例。这个想法是净化多类别与少类别之间的边界,使少类别区域更明显。上图显示了Tomek链接删除的一个简单例子。R包unbalanced实现了Tomek链接删除,作为针对非平衡数据集的一个采样技术。Scikit-learn没有内建的模块实现此方法,但有一些独立的包(如,)。
合成新的样本:SMOTE及其衍生
另一个研究方向不涉及对样本重采样,而是合成新的样本。这种方法最著名的例子是Chawla的SMOTE(Synthetic Minority Oversampling Technique)系统。这个想法是在现有样本间插值来产生新的少类别样本。过程基本如下。假设我们有一组多类别和少类别的样本,如下:
SMOTE通常是成功的,并产生了许多变体,扩展,和适应不同概念的学习算法。SMOTE及其变体在R包和python包中都有。
注意SMOTE的大量限制很重要。因为它通过在稀有样本间插值来操作,它只能在可用样本体内产生样本,而不是外面。通常,SMOTE只能填充现有少类别样本的凸包,但是不创造其新的外部区域。
调整类权重
许多机器学习工具包都有调整某类重要性的方法。例如,Scikit-learn有许多分类器可以设置一个可选的参数class_weight,使其高于1。这里有个直接从Scikit-learn文档获得的例子,显示了增加10倍少类别权重的影响。黑色实线显示默认设置的分割边界(每个类别权重相等),虚线是将少类别参数class_weight设为10后的分割边界。
正如你所看到的,少类别获得更多重要性(他的误差被认为比其他类更贵)和调整分割超平面来减少损失。
应该注意的是,修正类重要性通常只对类误差代价有影响(假阴性,如果少数类是积极的)。它将相应地调整一个分界面来减少这些。当然,如果训练集上的分类器没有错误没有调整可能发生错误,所以改变类权重可能没有效果。
这篇文章专注与以简单易用的方法从非平衡数据中学习分类器。他们中大部分涉及修正数据之前或之后应用标准的学习算法。简要提及其他一些方法是有价值的。
学习非平衡类别是机器学习正在进行的研究领域,每年都有新的算法提出来。在结束之前,我将提到一些最近算法的进步与前景。
2014年Goh和Rudin发表类一篇文章《&Box Drawings for Learning with Imbalanced Data》,介绍了两种从具有稀有样本的数据中学习的算法。这些算法试图围绕少类别样本集群构建“盒子”。
他们的目标是开发一种简洁明了的表示少数类的方法。他们的等式惩罚盒子数量和规则化项。
他们介绍了两个算法,其中一个使用整数规划提供一个精确的但相当昂贵的解决方案。另一个使用快速聚类的方法来产生一个初始化盒子。实验结果表明,两种算法在大量的测试数据集上表现都很好。
我早期提出解决非平衡问题的一个方法是丢弃少类别样本,把它作为一个单类问题(或异常检测)。最近的一个异常检测技术对于这个目的效果好得惊人。Liu,Ting和Zhou推出了一个称为隔离森林的技术,试图通过学习随机森林识别异常数据,然后测量的平均数量决定分裂需要隔离每个特定的数据点。由此产生的数量可以用来计算每个数据点的异常分数,也可以解释为例子属于少数类的可能性。实际上,作者使用高度不平衡数据测试他们的系统,并得到很好的结果。后续论文由Bandaragoda,
Ting, Albrecht, Liu and Wells提出了最近邻集合作为一个类似的想法,能够克服隔离森林的一些缺点。
购买或者产生更多的数据
最后需要注意一点,这篇博文焦距在非平衡类情况,假设你得到的是非平衡数据,并且只需要解决非平衡。在某些情况下,比如Kaggle比赛,给你一组固定的数据,你不能要求更多。
但是你可能面临一个相关的困难的问题:你只是没有足够的稀有类的样本。上面的技术都不可能工作,你该怎么做?
现实世界某些领域你可以购买或者构造稀有类样本。这是机器学习正在进行的一个研究领域。如果稀有类数据仅仅需要可靠的人工标签,通常的方法是采用众包,比如。人工标签的可靠性可能是一个问题,但是机器学习已经完成结合人工标签增加可靠性。最后,Claudia
Perlich在&&中举例,怎样利用替代变量或问题巧妙的解决数据稀有或不存在的问题,本质上使用代理或潜在的变量使看似不可能的问题变为可能。与此相关的是使用转移学习策略去学习一个问题,并把结果转移到另一个稀有数据的问题上,就像这里所描述的那样。
评论和问题?
在这里,我试图将我大多数实用知识提炼出来。我知道有很多不足,我会重视你的反馈。我漏掉什么重要的吗?本博客欢迎任何评论和问题。
资源和进一步阅读
1. 几种Jupyter notebooks说明了非平衡学习的各方面。
◎采样的高斯:
◎Wallance方法:
2. MATLAB代码:
3. R孤立森林:
排名:千里之外
(8)(9)(2)(2)(2)非平衡类数据挖掘简介;谭琳;(南京大学计算机科学与技术系,南京210093);Abriefintroductionofmini;TanLin;(DepartmentofComputerSci;Email:tanlin@seg.nju.edu;Abstract:Recently,thepro;Keywords:class-imbalance;摘要:最近在机器学
非平衡类数据挖掘简介
(南京大学 计算机科学与技术系, 南京
A brief introduction of mining class-imbalance data
(Department of Computer Science and Technology, Nanjing University, Nanjing 210093, China)
Email:tanlin@seg.
Abstract: Recently,the problem of Class-imbalance has become a hotspot in machine learning and data mining. This is because the problem exists in a large number of domains and proposes new challenges to our traditional classifier methods and evaluation measures. In this paper, an overview of mining Class-imbalance data is given. Section 1 provides a simple introduction of this domain. Section 2 explains the meaning of class-imbalance data. Section 3 presents the problems caused by class-imbalance. Section 4 introduces several performance measures for evaluating classifier algorithms in the presence of imbalanced datasets. Section 5 concludes some resolutions for this problem. Some opinions of this problem are given at last.
Key words: class- ROC; over- under- cost- machine learning
要: 最近在机器学习和数据挖掘上,非平衡类问题成为了一个研究热点。因为该问题存在于许多现实领域,并对我们传统的分类算法和评估措施提出了挑战。本篇文章对非平衡类问题进行了一个概述。首先是对该领域的简单介绍并说明了什么是非平衡数据。接着分析了非平衡类数据引起的种种问题。然后介绍了非平衡类数据下分类算法性能的评价措施。最后简单的概括了几种解决问题的方法以及我对该问题的一些看法。
关键词: 非平衡类;稀有;测量措施;ROC;过取样;欠取样;代价敏感; 机器学习
中图法分类号: TP301
文献标识码: A
当机器学习从理论转入实践,非平衡类问题就成为了一个新的研究领域并广泛应用于商业、工业以及科学研究中。尽管有些研究者很早就发现了这个问题,但仅仅在十多年前,非平衡类数据问题才出现在数据挖掘的研究范围内。现在非平衡类数据挖掘领域的研究已变得越来越重要,这是因为许多研究者都认识到他们的数据集基本上都是非平衡的并且这种非平衡性已经严重影响到他们分类算法的性能。
本文对非平衡类数据挖掘做了一个简单的介绍。首先说明了什么是非平衡类数据。接着分析了非平衡类数据引起的种种问题以及在何种情况下非平衡类数据对分类影响较大。然后介绍了非平衡类数据情况下分类算法性能的评价措施。最后简单的概括了几种解决问题的方法以及我对该问题的看法。
非平衡类数据的概念
现实世界中,数据的分布往往是不平衡的。“不正常”数据的数目往往比“正常”数据的数目少很多,比如生产零件的流水线在检查零件的合格率时,往往合格的产品是占大多数,不合格的产品占极少数。又如通信设备中发生故障的机器台数,生态保护中濒临灭绝物种的数量等等。有时这种不平衡性甚至能达到10的6次方。并且在这种情况下,我们往往感兴趣的是那些“不正常”数据。为了处理现实中这类问题就产生了非平衡类数据挖掘这一研究领域。文献[5]中Gary.M.Weiss对不平衡类数据进行了更为精确、广泛的定义。他不仅考虑了类之间的不平衡性,还考虑了类里的不平衡性。如多数类中的某个实例罕见出现在了少数类聚集的区域,这个实例就称为稀有案例。总的来说,他将现实中的各种类似现象统称为稀有问题,并且将该问题分为了两类:一是稀有类(rare classes),也就是我们在此提到非平衡类问题。这类问题往往会和分类有关系。另一个是稀有案例(rare cases)。稀有案例通常对应的是在数据集中意义重大,但数量较少或中等的数据子集,其只依赖于数据分布,因此可以是标记数据也可以是未标记数据,既可以进行指导性数据挖掘任务,也可以进行无指导的任务。稀有案例一般是通过域来定义的,比如用血液来测试一个病人是否患有癌症,稀有案例就是那些与癌症相关的稀有征兆。在文章末尾,他还将稀有类和稀有案例进行了对比并指出二者是很类似的现象,很多方法对它俩都适用,其解决可以使用同一个框架。并且,他还认为目前的研究集中于稀有类问题上,但稀有案例问题或许会更多,应该找到处理二者的杠杆。
本文研究的对象主要是非平衡类(稀有类)数据集,所以对稀有案例并没有进行分析。简单的说,在一个数据集中,如果一类样本占绝大对数,而另一类样本只占很小一部分,我们就称这个数据集是非平衡的(即Class-imbalance data),其中占大多数的一类样本称为多数类(majority class),而另一类则称为少数类(minority class)。现在该问题已影响到多个应用领域如:欺诈侦测、风险管理、文本挖掘,医疗检测等。
非平衡类数据引起的问题
在非平衡类数据分布的情况下,我们关注的重点往往是在少数类上,而传统的分类方法如C4.5算法,CART算法、k-近邻算法等往往集中在多数类上,它们从全盘考虑,为了提高整个数据的分类准确性而倾向于将数据归到多数类当中,而忽略了少数类,因而不适用于非平衡类分布的情况。文献[5]中对非平衡类之所以不能使用传统的分类方法的原因进行了归纳,其认为原因主要有六个:1、不恰当的评估措施。以前的衡量标准不能充分的评估少数类样本,因而会导致错误的归纳。因此我们以前使用的精度度量已不能再使用,我们必须寻找更为精确的度量方法。2、缺少数据(绝对稀有)。稀有数据最主要的问题就是数据缺失,在绝对稀有的情况下,很难在这么少的数据中发现规律。3、数据的相对缺少(相对稀有)。相对稀有指的是数据本身不是很少,但相对其它类来说很少,因而很难被发现。4、数据碎片(Data Fragmentation)。大部分数据挖掘都会使用分治的方法,分治的过程会导致数据碎片。又因为我们在找规律时只会考虑分化的各个个体,所以这些碎片就会被忽略。这对于平衡类数据影响不大,但对非平衡类就会产生很大影响,因为这样就会产生缺少数据的问题,也即前面的第二点。5、不恰当的归纳偏差。大部分的归纳系统在不确定情况下都倾向于普通类,即多数类。显然这并不适合少数类的学习。6、噪音。由于非平衡训练集中少数类的数量很少,噪音的干扰就相当大,普通的训练系统很难区分少数类样本和噪声。一旦将少数类样本误判为噪声或者反之,结果都会相当糟糕。
但是,也并不是所有非平衡类数据都不适合这些传统算法,不同情况下的数据集对非平衡的敏感度也不同。文献[6]中,Nathalie Japkowicz对不平衡类数据进行了三个维度的关联考虑:1、概念复杂度(the degree of concept complexity)。2、训练集的规模(the size of the training sets)。3、两类之间的不平衡度(the level of imbalance between the two classes)。经过分析他发现训练集无论是大还是小,只要概念复杂度为1,那么其对任何程度的不平衡都是不敏感的。随着训练集概念复杂度的增加,其对不平衡的敏感度也会增强,当复杂度达到一定程度时,不平衡对其影响会非常大。并且训练集的规模并不是造成平衡类和非平衡类之间错误率差距的因素之一,从而非平衡问题是一个相对问题而不是训练集规模固有的问题。说在一个具有N个反训练(negative
3 training)实例但并没有标明正训练(positive training)实例数量的域上,某个系统的性能很差是毫无意义的。
非平衡类还会影响代价敏感(cost-sensitive)学习方法的性能.文献[2]中指出代价敏感学习是解决非平衡类数据挖掘很好的一个方法。反之,非平衡类也会对敏感学习产生影响。在该篇文章之前,大多数研究者只是集中于纯非平衡类学习或者代价敏感学习,而忽略了非平衡类往往和不等错误分类代价是同时发生的这一事实。尽管也有不少学者注意到了这个问题,比如2003年,Maloof曾指出不平衡类学习和不等代价学习可以使用同样的方法,但遗憾的是他们都没有深入调查二者的影响。这篇文章选取了三十八个数据集进行了实例研究,结果表明只有当少数类的错误分类代价比多数类大很多时,非平衡类才会对代价敏感学习性能产生较大影响。也即是我们在处理不是很严重的非平衡类时,我们可以直接使用代价敏感学习方法,只有当训练集不平衡度较高时,我们才需要在使用代价敏感学习之前平衡类分布。
既然以前的衡量措施已经不能再使用,研究者们寻找了另外的方法来测量,现在较多采用的有两种:ROC曲线和AUC曲线,当然还有许多其它标准如:lift curve, recall, precision, weight accuracy,cost curves等。
这里主要介绍一下ROC(Receiver Operating Characteristic)曲线,它是现在用得最多的衡量措施。
要理解ROC,必须先了解机器算法的性能评价最典型的分析方法:混合矩阵。在此,我们假设使用二分类法,将训练集分为少数类和多数类,并将少数类称为正类(Positive class),多数类称为反类(Negative class)混合矩阵涉及到表1中的几个参数:
A confusion matrix for a binary classification problem
二分类问题的混合矩阵
实际的正类样本数
实际的反类样本数
这几个参数的意义如下:
FN(False Negative):它是指使用分类模型将原本属于正类的样本错误的预测为反类。
TN(True Negative):它是指使用分类模型将原本属于反类的样本正确的预测为反类。
FP(False Positive):它是指使用分类模型将原本属于反类的样本错误的预测为正类。
TP(True Positive):它是指使用分类模型将原本属于正类的样本正确的预测为正类。
除了上述参数外,ROC还要用到下面这两个参数:
sensitivity 也称为TPR(True Positive Rate),它指的是分类器正确预测的正类样本比例。
令总的正类样本为P, 则: 预测为正类的样本数 TP FP
预测为反类的样本数 FN TN
specificity指的是分类器正确预测的反类样本比例,
令总的反类样本为N,则:
specificity =TN
1-specificity也即FPR(False Positive Rate)指的是分类器预测错误的反类样本在真正的反类样本中所占的比例。其计算公式为:
1- specificity = FPR=FP
ROC曲线就是一种表示TPR和FPR之间权衡关系的图形方法,其代表了一组最佳选择边界。它利用了两个坐标轴x和y。x轴表示的是1-specificity(即FPR),y轴表示的是sensitivity(即TPR)。由这两个坐标轴可得到一个二维表,如图1[15]所示。曲线上的每一个点都对应于一个分类器归纳模型。ROC上最理想的点是(0,1),也即是所有的正类都预测正确,没有反类被错误的预测为正类。ROC曲线的产生是通过控制训练集中每个类的训练样本的平衡性所得到的。具体的描绘方法限于篇幅在此处不做详细介绍。
AUC(Area Under the ROC curve)[15]也是一种很有用的测量措施,它指的就是ROC曲线下图形的面积。其计算公式如下:
TPFP1NAUC=∫d=TPdFP
(6) 0PNP?N∫01
它适用于测量在平均上比较优越的模型。如果该分类模型性能完美,那么在ROC曲线区域下的面积应为1。如果该分类模型是随机分类的,则面积应该为0.5.此种测量方法也有不足之处,对于一些特定的代价和类分布,即使在ROC曲线下的面积很大,也不是最优方法。因此,我们同样也会描述ROC的凸起点,因为该点就是该模型的最优点。
ROC Curves
处理非平衡问题有很多方法,文献[5]中对其进行了详细的分析,他总结了如非贪心搜索技术、抽样、代价敏感学习、特征选择、只训练少数类、推进等解决技术。文献[15]也总结了四种方法,与上面的类似。下面简单介绍几种解决方法。
抽样(Sampling)
抽样是一种常用的非平衡类数据处理方法[1,6,16]。其主要思想是通过调整训练集实例的分布,降低训练集的非平衡性。抽样的方法又可分为基本抽样方法和高级抽样方法。其中基本抽样方法主要有两种:
Over-sampling和Under-sampling。 5
Over-sampling的基本思想是重复少数类的样本,直到其所占比例与多数类样本相同。其中又有两种方法:一是随机重取样,一是集中重取样。随机重取样就是对少数类样本只进行随机重复。集中重取样是对少数类样本进行选择性重复,只选择那些处于少数类与多数类边界之间的值进行重复。通常我们选择α=0.25来确定数据是否与边界接近。Over-Sampling的方法能在一定程度上降低非平衡度,但也有自己的不足。由于其引入了额外的训练数据,分类器的建立时间将会延长,而且更糟糕的是它通常对样本是原样复制,如果该训练集噪音较多,则会导致过度拟合。极端情况下会使得分类规则只涵盖一个被重复多次的样本规则并且还是错误的规则。
Under-sampling的基本思想是只取多数类的一部分实例作为训练集样本,如取与少数类数量相同的样本。同样,该方法也分为两种:随机Under-sampling和集中Under-sampling。前一种就是在多数类中随机抽取一部分样本。后一种是指按照某种非正式的规则来选取被删掉的多数类样本实例,例如将那些离判定边界较远的实例删除掉。总的来说Under-sampling和Over-sampling一样也可以降低训练集的非平衡度,但由于其只取了多数类的一个子集来训练分类,很可能会忽略掉多数类中的一些有用信息。这也是该类方法的主要不足之处。
为了解决上述抽样的不足,产生了一些高级抽样方法。
高级抽样方法也有许多,主要的是Under-sampling和Over-Sampling的合成方法,SMOTE, EasyEnsemble,和BalanceCascade等。
二者的合成采取的策略是对多数类采用undersampling,少数类采用oversampling以达到统一类分布的效果。
SMOTE(Synthetic Minority Over-sampling TEchnique)[3]方法扩充了Over-sampling方法,它不再是简单重复少数类样本,而是通过向少数类中插入成对的邻近样本来合成新的,非重复的少数类实例。首先对每个少数类实例都确定它的K-nearest邻居。然后随意选取一个实例,将该实例与它的K-nearest近邻组合,如此重复,直到少数类的数量足够为止。该方法被证明可以提高少数类的分类精确度。
EasyEnsemble和BanlanceCascade[8]都是对Under-sampling方法的扩展。两种方法都将抽样和Ensemble方法结合了起来。Ensemble[7]方法又可称作多重分类系统、分类合并以及基于委员的学习(Committee-based learning)。它是使用多个学习者共同解决某一问题的机器学习方法,与普通的机器学习方法不同,它试图从训练集中组建多个假设并学习。该方法中包含一系列Base learners。这些Base learner通常是由训练集通过一些基本学习算法(如决策树,神经网络等)并行产生或相继产生的,其中相继指的是前一个Base learner 会影响到后一个Base learner 的产生。一个好的Ensemble方法要求其Base learner精度要高,多样性要好。将Ensemble方法应用到Under-sampling上的主要目的是克服前面提到的Under-sampling的不足之处,其基本思想是从多数类中抽取多个子集,并从这些子集中学习得到ensemble,然后合并这些ensembles的弱学习者得到最终的ensemble。上述两种算法都比Under-sampling更好的利用了多数类,并且训练所花时间与其相同。这两个算法的不同在于EasyEnsemble是在独立子集中进行抽样,而BalanceCascade从长远考虑,去除了那些会被正确预测为多数类的样本实例,也正因如此,它更适合于高度不平衡的训练集。
代价敏感学习法(cost-sensitive learning)
在许多数据挖掘任务中,往往少数类比较重要。如果解决此类问题不考虑这一点往往效果不佳。一种解决方法是代价敏感学习[2,13,16]。该类方法以代价为基础选择最优算法。最小代价也即最优。Cost-sensitive在非平衡类问题上利用了将少数类正确归类比将多数类正确归类更为重要这一事实。比如对于一个两类问题。其处理方法是将少数类实例被错误的预测为多数类所付出的代价设置得比反过来的情况高。这种策略往往适合于医疗检测这种宁可误测不可漏测的情况。这种方法的一大问题是很难确定代价的具体大小,因为这些代价值通常依赖于不容易比较的多方面因素。
特征选择(Feature Selection)
特征选择是挖掘各种数据的一个重要步骤。当我们从一个高维空间学习规律时往往代价很高并且很不精
包含各类专业文献、文学作品欣赏、幼儿教育、小学教育、应用写作文书、高等教育、非平衡类数据挖掘简介72等内容。 
 数据挖掘分类算法介绍 分类是用于识别什么样的事务属于哪一类的方法, 可用于分类...但前提是类别是已存在的, 如已知道动 物可以分成哺乳类和非哺乳类,银行发行的...  数据挖掘主要工具软件简介_其它_高等教育_教育专区。...采用通用的挖掘算法,处理常见的数据类型,其中包括的...(RFM), 这些工具被设计让非技术型的使用者也 可以...  大数据挖掘与分析数据挖掘(Data Mining)是通过分析...的类, 其目的是通过分类模型,将数据库中的数据项...分布存储和高度容错等特性非常适合处理非线性的以及那些...  对数据挖掘的认识_计算机软件及应用_IT/计算机_专业...新颖的、潜在有用的,以及最终可理解的 知识的非...数据转换的目 的是根据确定的数据类型和数据值将不...  数据挖掘分类方法_电脑基础知识_IT/计算机_专业资料。...该方法在定类决策上只依据最邻近的一个或者几个...因此,采用这种方法可以较好地避免样本的不平衡问题。...  数据挖掘主要算法_计算机软件及应用_IT/计算机_专业资料...样本不平衡问题(即有些类别的样本数量很多,而其它...(5)对于&噪声&和孤立点数据敏感,少量的该类数据...  数据挖掘与云计算简介_计算机软件及应用_IT/计算机_...工具现在数据可以存储在很多不同类型的数据库和信息...加拿大温哥华举行的第五次亚太经合组织非正式首脑会议...  由于有些模式并非对数据 库中的所有数据都成立,通常每个被发现的模式带上一个确定性 或“可信性”度量。 数据挖掘功能以及它们可以发现的模式类型介绍如下。 1 ...  修订时间:2015.8 二、课程简介 数据挖掘是管理科学与信息工程学院开设的一门...聚类是将数据分类到不同的类或者簇的过程, 所以同一个簇中的对象有很大 的...}

我要回帖

更多关于 训练分类器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信