分类中数据不平衡问题的解决经验[转载]
问题:研究表明,在某些应用下,1∶35的比例就会使某些分类方法无效,甚至1∶10的比例也会使某些分类方法无效。
(1)少数类所包含的信息就会很有限,从而难以确定少数类数据的分布,即在其内部难以发现规律,进而造成少数类的识别率低
(2)数据碎片。很多分类算法采用分治法,样本空间的逐渐划分会导致数据碎片问题,这样只能在各个独立的子空间中寻找数据的规律,对于少数类来说每个子空间中包含了很少的数据信息,一些跨空间的数据规律就不能被挖掘出来。
(3)不恰当的归纳偏置。许多归纳推理系统在存在不确定时往往倾向于把样本分类为多数类。
——————————————
经验:
我现在要对一个非平衡数据进行分类 类别0占比例很大 类别1占比例很小 这时候我该怎么处理呢? 想了想 你们做贴吧分类应该也遇到过数据不平衡问题。
那你只能人工调整训练样本中类别1的数量啊 ,自己在样本中加点
一般加多少 ?
差不多1:1或者4:6 ,特别是加一些那种靠近分类面的样本(典型样本挑选)
人工挑一些?
恩 ,我之前做马甲挖掘,也是人工加一些,后来效果提升明显
——————————————
解决办法总结:
1. 过抽样
抽样处理不平衡数据的最常用方法,基本思想就是通过改变训练数据的分布来消除或减小数据的不平衡。
过抽样方法通过增加少数类样本来提高少数类的分类性能 ,最简单的办法是简单复制少数类样本,缺点是可能导致过拟合,没有给少数类增加任何新的信息。改进的过抽样方法通过在少数类中加入随机高斯噪声或产生新的合成样本等方法。
注意:好像对svm没用
2.欠抽样
欠抽样方法通过减少多数类样本来提高少数类的分类性能,最简单的方法是通过随机地去掉一些多数类样本来减小多数类的规模,缺点是会丢失多数类的一些重要信息,不能够充分利用已有的信息。
3. 算法层面,采用代价敏感方法。
(1)重构训练集的方法。不改变已有算法,而是根据样本的不同错分代价给训练集中的每一个样本赋一个权值,接着按权重对原始样本集进行重构。
(2)引入代价敏感因子,设计出代价敏感的分类算法。通常对小样本赋予较高的代价,大样本赋予较小的代价,期望以此来平衡样本之间的数目差异。
4. 特征选择
样本数量分布很不平衡时,特征的分布同样会不平衡。尤其在文本分类问题中,在大类中经常出现的特征,也许在稀有类中根本不出现。因此,根据不平衡分类问题的特点,选取最具有区分能力的特征,有利于提高稀有类的识别率 。
按照一个经验性的样本比例,挑选正负2个样本集,分别从中选择最能表示该类样本的特征集,然后将这些特征集合并作为最后挑选的特征。