机器学习中的类不平衡问题

参考  机器学习中的类不平衡问题 - 云+社区 - 腾讯云

如果不同类别的训练样例数目稍有差别,通常影响不大,但若差别很大,则会对学习过程造成困扰。例如有998个反例,但正例只有2个,那么学习方法只需返回一个永远将新样本预测为反例的学习器,就能达到99.8%的精度;然而这样的学习器往往没有价值,因为它不能预测出任何正例。

类别不平衡(class-imbalance)就是值分类任务中不同类别的训练样例数目差别很大的情况。不是一般性,本节假定正类样例较少,反类样例较多。在现实的分类任务中,我们经常会遇到类别不平衡,例如在通过拆分法解多分类问题时,即使原始问题中不同类别的训练样例数目相当,因此有必要了解类别不平衡性处理的基本方法。

从线性分类器的角度讨论容易理解,在我们用\large y=w^Tw+b对新样本x进行了分类时,事实上在用预测出的y值与一个阈值进行比较,例如通常在y>0.5时判别为正例。y实际上表达了正例的可能性,几率y/(1-y)则反映了正例可能性与反例可能性之比值,阈值设置为0.5恰表明分类器认为真实正、反例可能性相同,即分类器决策规划为:

                                              若y/(1-y) > 1则,预测为正例                              (1)

然而,当训练集中正、反例的数目不同时,令\large m^+表示正例数目,\large m^-表示反例数目,则观测几率是\large m^+/m^-,由于我们通常假设训练集是真实样本总体的无偏估计,因此观测几率就代表了真实几率。于是只要分类器的预测几率高于观测几率就应判定为正例,即

                                        若\large \frac{y}{1-y}>\frac{m^+}{m^-}  则  预测为正例                           (2)

但是,我们的分类器是基于式(1)进行比较决策,因此,需对其预测值进行调整,使其基于式(1)决策时,实际上是在执行式(2),要做到这一点很容易,只需令

                                        \large \frac{y'}{1-y'}=\frac{y}{1-y} \times \frac{m^-}{m^+}                                        (3)

这就是类别不平衡学习的一个基本决策------"再缩放"(rescaling)。

再缩放的思想虽简单,但实际操作却不平凡,主要是因为“训练集是真实样本总体的无偏采样”这个假设往往并不成立,也就是说,我们未必能有效地基于训练集观测几率来推断出真实几率。现有技术大体有三类:

  • 第一类是直接对训练集里的反类进行“欠采样(undersampling)",即去除一些反例使得正、反例数目接近,然后再进行学习;
  • 第二类是对训练集里的正类样例进行“过采样(oversampling)”,即增加一些正例使得正、反例数目接近,然后再进行学习;
  • 第三类则是直接基于原始训练集进行学习,但在用训练好的分类器进行预测时,将式(3)嵌入到其决策过程中,称为“阈值移动”(thresholding-moving)。

欠采样法的时间开销通常远小于过采样法,因为前者丢弃了很多反例,使得分类器训练集远小于初始训练集,而过采样法增加了很多正例,其训练集大于初始训练集。需注意的是,过采样法不能简单地对初始样本进行重复采样,否则会招致严重的过拟合;过采样法的代表性算法SMOTHE是通过对训练集里的正例进行插值来产生额外的正例。另一方面,欠采样法若随机丢弃反例,可能丢失一些重要信息;欠采样法的代表性算法EasyEnsemble则是利用集成学习机制,将反例划分为若干个集合供不同学习器使用,这样对每个学习器来看都进行了欠采样,但在全局来看却不会丢失重要信息。值得一提的是,“再缩放”也是“代价敏感学习”(cost-sensitive learning)的基础,在代价敏感学习中将式(3)中的\large m^-/m^+\large cost^+/cost^-代替即可,其中\large cost^+是将正例误分为反例的代价,\large cost^-是将反例误分为正例的代价。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wanderer001

ROIAlign原理

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值