机器学习 - 样本不均衡 and 不足的处理办法

机器学习 - 样本不均衡 and 不足的处理办法

      • 引入
      • 样本不均衡
        • 降采样
        • 倍采样
        • 混合采样
        • 代价敏感学习
      • 样本不足

  • 引入

    在机器学习中,模型是通过计算数据进行训练的,根据上一篇文章(《机器学习-评价指标》)中列举的例子:

    在CTR预估中,一个模型负责预测用户是否点击一个服务器的广告。其实在真实场景中,展示几千次广告才有可能获得一个点击(还有可能是误点),广告点击率非常低。倘若这个模型将所有样本都预测为不点击,那么它的准确度可以达到99.99%,但是这样的模型却没有任何意义。

    这个例子中点击广告的样本数据很少,假设喂给模型的数据有10W条,但其中只有100条数据的标签是点击,所以我们才无法使用accuracy而采用ROC曲线。

    而这篇文章的内容将介绍如何应对样本不均衡的情况,以及数据不足时的处理办法。

  • 样本不均衡

    样本不均衡,顾名思义,是指数据中正负样本比例不平衡。

    例如:
    10000个学生样本,
    其中负样本为:100个得了感冒的学生。
    剩下的为正样本:9900个健康的学生。

    这种情况下进行学习,虽然学习了10000条数据,虽然诊断的人数很多,但实际上带有感冒特征的病人很少,很难涵盖大多数感冒的特征。当有新的感冒患者来诊断时,因为模型“阅历”不够,所以可能无法做出正确诊断。

    目前解决办法包括但不限于:

    1. 降采样

      既然是解决不均衡的问题,那么我们的目的就是缩小正负样本比例差。

      降采样的思维是:

      减少数据量大的健康样本。

      在此感冒的例子中,则从9900个健康样本随机选出990个样本。

      此时数据集的组成为:健康样本:990,感冒样本:100

      此时正负样本的比例变为了 10:1,是可以接受的。


      (1) 优点

      i. 可能消除一定的噪声数据。大量的的数据中难免会有噪声数据,使用降采样可能将他们从数据集中剔除。

      (2) 缺点

      i. 样本量较小,可能会丢失部分具有代表性的样本,学习的精度可能下降。

    2. 倍采样

      倍采样与降采样思想相似,它是通过

      对数据量小的感冒样本进行重复采样。

      在此感冒的例子中,则对100个感冒样本随机进行10次重采样。

      此时数据集的组成为:健康样本:9900,感冒样本:1000

      此时正负样本的比例同样变为了 10:1,是可以接受的。


      (1) 优点

      i. 样本量较大,学习的效果可能不错。

      (2) 缺点

      i. 可能将感冒样本中少量的噪声数据进行重复采样,影响学习效果;
      ii. 每个感冒的数据可能重复的次数不同,影响学习。(不过也可以同比例采集)

    3. 混合采样

      混合采样就是结合2. 与3. 两种方法进行折中采样。

      即,从9900的健康样本中随机选出 1 10 \frac{1}{10} 101 的数据,得到990个样本,将100个感冒样本进行10倍的重复采样,得到1000个样本。

      此时数据集的组成为:健康样本:990,感冒样本:1000

      此时正负样本的比例变为了 1:1 。

    4. 代价敏感学习

      此方法与权值相关。

      降低多数的健康样本的权值,减小样本对学习的影响;
      提高多数的感冒样本的权值,增大样本对学习的影响。

      例:
      此时有5个样本。
      其中4个(1-4)为健康,
      1个(5)为患病。

      普通情况下:

      x 1 2 3 4 5
      w 1 1 1 1 1

      此时,每个样本的权重 w 都为 1,若简单构建一个损失函数,如果预测错误,每个样本对损失函数的贡献为 w·1,预测正确,每个样本对损失函数贡献为 w·0. 则:

      此时若(1-4)个样本预测正确,第5个预测错误,则损失函数值为:
      L ( x ) = 1 ∗ 0 + 1 ∗ 0 + 1 ∗ 0 + 1 ∗ 0 + 1 ∗ 1 L(x) = 1*0+ 1*0+ 1*0+ 1*0+ 1*1 L(x)=10+10+10+10+11
      L ( x ) = 1 L(x) = 1 L(x)=1

      若根据代价敏感学习:

      x 1 2 3 4 5
      w 1 1 1 1 4

      此时若(1-4)个样本预测正确,第5个预测错误,则损失函数值为:
      L ( x ) = 1 ∗ 0 + 1 ∗ 0 + 1 ∗ 0 + 1 ∗ 0 + 4 ∗ 1 L(x) = 1*0+ 1*0+ 1*0+ 1*0+ 4*1 L(x)=10+10+10+10+41
      L ( x ) = 4 L(x) = 4 L(x)=4

      机器学习训练的驱动力是使损失函数的值尽量小(即预测结果与真实标签相差最小),所以当损失函数大时,如果欲达到相同的损失值,第二种情况的代价敏感学习会进行更多的训练。

      此时虽然只有一个感冒样本,但它使损失函数值变大,促使模型进行更多的训练,从某种角度来说,1个样本起到了4个样本的作用。

      这便是修改权值的作用。

  • 样本不足

    样本不足容易引起欠拟合状态,即学习资料很少,所以学习效果不好。
    对于样本不足的情况没有太好的解决办法:

    1. 去搜集更多的数据(废话)

    2. 模拟数据

    3. (1) 对于少数的感冒数据,可在所有样本各特征区间内随机取点构成一条数据。

      例:
      在所有感冒的数据中,
      特征:体温的值域为 [36.9,39],单位℃
      特征:已发烧时长的值域为 [1,3],单位小时

      模拟数据:
      选取体温 37.5∈ [36.9,39]
      已发烧时长 2 ∈ [1,3]

      则构成一条数据 [37.5,2],标签为: 感冒。

      (2) 在图像领域

      i. 旋转、平移、缩放、裁剪、填充、镜面、翻转;
      ii. 对图像加入噪声扰动,如椒盐噪声、高斯白噪声;
      iii. 改变亮度、清晰度、对比度、锐度;
      iv. 颜色变换,例如:
      在RGB颜色空间上,对图像使用PCA,得到3各主成分特征向量 p1,p2,p3 以及对应的特征值 λ1,λ2,λ3,而后在每个像素的RGB值上添加增量:

      [R’,G’,B’] = [R,G,B] + [p1,p2,p3 ] · [α1λ1,α2λ2,α3λ3]T

      (其中α1,α2,α3 均值为0,方差较小的正态分布的随机数。)

      (3) 生对抗网络(Generative Adversarial Networks)

      GAN网络最近热度也不小,它可以生成数据并进行训练,属于无监督学习。
      目前尚未深入学习,以后再单独讲解。

你可能感兴趣的:(机器学习,(ML),数据不均衡,数据不足,图像数据变换,代价敏感学习,数据采样)