问题 对于二分类问题,当训练集中正负样本非常不均衡时,如何处理数据以更好 地训练分类模型?

为什么很多分类模型在训练数据不均衡会出现问题?本质原因是模型在训练时优化的目标函数和人们测试时使用的评价标准不一致。这种不一致可能是训练数据的样本分布和测试数据的不一致,例如训练时优化的整个训练集(正负比例1:99)的正确率,而测试的时候期望正负比例1:1
一般从两个方面处理数据:

  1. 基于数据的方法
    对数据进行重采样,使得原先的数据样本均衡。最简单的处理不均衡样本的方法是随机采样。采样一般分为过采样和欠采样。过采样是在样本少的类别中随机重复抽取多个样本。欠采样是从多数的样本集中随机抽取较少的样本。两种方法都有缺点,欠采样是容易丢失游泳信息。过采样是容易造成过拟合。
    为了解决上述问题,通常过采样时并不是简单的复制样本,而是采用一些方法生成新的数据。例如,SMOTE算法对少数类样本集Smin中每个样本x,从它在Smin中的K近邻中随机选一个样本y,然后在x,y连线上随机选取一点作为新合成的样本(根据需要的过采样倍率重复上述过程若干次),如图8.14所示。这种合成新样本的过采样方法可以降低过拟合的风险。
    对于欠采样,可以采用Informed Undersampling 来解决由于随机采样带来的数据丢失问题。
    (1)Easy Ensemble算法。每次从多数类随机抽取一个子集E,然后用E和小样本类别训练一个分类器;重复上述多次过程若干次,得到多个分类器。最终得到分类的结果将其融合
    (2)Balance Casacade算法。级联结构,在每一级中从多数类Smaj中随机抽取子集E,用E+Smin训练该级的分类器;然后将Smaj中能够被当前分类器正确判别的样本剔除掉,继续下一级的操作,重复若干次得到级联结构;最终的输出结果也是各级分类器结果的融合。
    在实际应用中,具体的采样操作可能并不总是如上述几个算法一样,但基本思路很多时候还是一致的。例如,基于聚类的采样方法,利用数据的类簇信息来指导过采样/欠采样操作;经常用到的数据扩充方法也是一种过采样,对少数类样本进行一些噪声扰动或变换(如图像数据集中对图片进行裁剪、翻转、旋转、加光照等)以构造出新的样本;而Hard Negative Mining则是一种欠采样,把比较难
    的样本抽出来用于迭代分类器。
  2. 算法的方法
    在样本不均衡时,也可以通过改变模型训练时的目标函数(如代价敏感学习中不同类别有不同的权重)来矫正这种不平衡性。损失函数改进。
    Focal loss属于第二种,通过在损失函数中加入因子,使得模型更加关注难以区分的样本,困难样本
    https://www.cnblogs.com/king-lps/p/9497836.html

你可能感兴趣的:(机器学习)