【机器学习】类别不平衡学习

本文主要记录 《机器学习》一书中关于类别不平衡问题的处理。

  类别不平衡问题(class-imbalance)就是说对于分类任务来说,不同类别的训练样例相差很大的情况。不是一般性,这里主要介绍负样本远远多于正样本的情况。(在阅读深度神经网络论文时,发现这种情况非常常见)。

  首先从线性分类器的角度来进行理解。使用 y = ω T x + b \boldsymbol {y=\omega^Tx}+b y=ωTx+b 对新样本 x \boldsymbol x x 进行分类的时候,实际上是在用预测出的 y \boldsymbol y y 与一个阈值进行比较,比如通常情况下我们将这个阈值设置为 1。当大于 1 则判定为正例,否则判定为反例。 y \boldsymbol y y 实际上表达了正例的可能性,几率 y 1 − y \frac{y}{1-y} 1yy 反映的是正例的可能性与反例的可能性的比值。当输出为 1 的时候表示两种可能性相同。所以有如下决策: 若 y 1 − y > 1    则 预 测 为 正 例 若\frac{y}{1-y}>1\ \ 则预测为正例 1yy>1  
  然而,当训练样本中的正负样本数目不同的时候,这时我们令 m + m^+ m+ 表示正例样本的数量, m − m^- m 表示负样本的数量,则可以得到观测几率 m + m − \frac{m^+}{m^-} mm+。因为通常假设训练集是真是样本集的无偏采样,所以观测几率也就代表了真实几率。所以应该存在下面的判定决策: 若 y 1 − y &lt; m + m −    则 预 测 为 正 例 若\frac{y}{1-y}&lt;\frac{m^+}{m^-}\ \ 则预测为正例 1yy<mm+  
但是分类器是根据 若 y 1 − y &gt; 1 若\frac{y}{1-y}&gt;1 1yy>1 进行决策,所以,需要对上面这个预测值进行调整。只需要做出如下调整即可: y ′ 1 − y ′ = y 1 − y × m − m + \frac{y&#x27;}{1-y&#x27;}=\frac{y}{1-y}\times \frac{m^-}{m^+} 1yy=1yy×m+m
而这也就是类别不平衡学习的基本策略——再缩放(rescaling)

  从上面的公式中我们就可以看出,再缩放的思想十分简单,但是在实际应用中却并不是很容易,主要是 “训练集是真实样本总体的无偏采样” 这个假设往往不成立,也就是说,不一定能有效基于训练样本的观测几率来推断出真是几率。

  目前主要有三种方法:

  1. 直接对反例样本进行“欠采样”(undersampling),也就是去除一些反例使得正反样本数量接近,然后进行学习;
  2. 对训练集中的样本进行“过采样”(oversampling),也就是增加一些正例使得正反数目接近,然后进行学习;
  3. 直接基于原始训练集进行学习,但是在用训练好的分类器进行预测的时候,将上面的 y ′ 1 − y ′ = y 1 − y × m − m + \frac{y&#x27;}{1-y&#x27;}=\frac{y}{1-y}\times \frac{m^-}{m^+} 1yy=1yy×m+m 嵌入到决策过程中,这种方法称为“阈值移动(threshold-moving)”。

在应用上面的方法的时候,需要注意以下几点:

  • 过采样方法不能简单的对正例样本进行重复采样,这样做会造成严重的过拟合现象。典型算法是通过对训练集里的正例进行来产生额外的正例
  • 欠采样方法采用随机丢弃反例的方法也不妥,这样可能会丢失一些重要的信息;典型算法是利用集成学习机制,将反例划分为若干个集合供不同的学习器进行使用,这样对每个学习器看来都进行了欠采样,但是在全局看来并不会丢失重要信息。

参考内容:周志华–机器学习 Chapter 3.7

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值