机器学习处理分类问题时的类别均衡问题

什么是类别不均衡问题?

举个例子,在极端情况下,在总体为1000的样本,若中有999个样本标记为A类,有1个样本标记为B类。则很明显,A类与B类的样本数偏差极大。一般认为当类别比例超过4:1时,则认为类别不均衡。

解决方式?

主要分为以下这两种方式: 1.从数据集入手改变样本分布,降低不平衡程度 2.从学习算法入手,修改算法来适应不平衡的分类问题。且方式1更为简单。

 

 

重采样

重采样方法是通过增加稀有类训练样本数的上采样 (up-sampling)和减少大类样本数的下采样(down-samplings)使不平衡的样本分布变得比较平衡,从而提高分类器对稀有类的识别率 .

对于小样本来说上采样更合适

最原始的上采样方法是复制稀有类的样本 , 但是这样做容易导致过学习, 并且对提高稀有类识 别率没有太大帮助 .较高级的上采样方法则采用一些启发式技巧 , 有选择地复制稀有类样本 , 或者生成新的稀有类样本。Chawla等人提出的SMOTE算法是一种简单有效的上采样方法,该方法首先为每个稀有类样本随机选出几个邻近样本,并且在该样本与这些邻近的样本的连线上随机取点,生成无重复的新的稀有类样本。还有一些其他的方法,如添加随机噪声,还有一些其他的研究,具体可以看相关论文。

这里有SMOTE算法的多个不同语言的实现版本: 
* Python: UnbalancedDataset模块提供了SMOTE算法的多种不同实现版本,以及多种重采样算法。 
* R: DMwR package。 
* Weka: SMOTE supervised filter

但是上采样方法并不增加任何新的数据 , 只是重复一些样本或增加一些 人工生成的稀有类样本 , 增加了训练时间 .更危险的是 ,上采样复制某些稀有类样本 , 或者在它周围生成新的稀有类样本,使得分类器过分注重这些样本,导致过学习.上采样不能从本质上解决稀有类样 本的稀缺性和数据表示的不充分性 。

操作方式:

https://blog.csdn.net/nlpuser/article/details/81265614

//需要安装imblearn库,在此之前需要更新scipy等包的版本。imblearn所依赖包的版本如下:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值