文章目录
使用深度学习,首先要解决的就是样本问题,但我们得到的样本往往存在不均衡的问题。在处理课题的时候,碰到了一种处理样本不均衡问题的方法,这里用到了sanmple weight这一概念,同时也总结了一些其他的处理样本不均衡问题的方法。
简单的过采样和欠采样
-
过采样:将稀有类别的样本进行复制,通过增加此稀有类样本的数量来平衡数据集。该方法适用于数据量较小的情况。
-
欠抽样:从丰富类别的样本中随机选取和稀有类别相同数目的样本,通过减少丰富类的样本量啦平衡数据集。该方法适用于数据量较大的情况。
-
也可以将过采样和欠采样结合在一起使用。
-
存在问题
- 过采样:可能会存在过拟合问题。(可以使用SMOTE算法,增加随机的噪声的方式来改善这个问题)
- 欠采样:可能会存在信息减少的问题。因为只是利用了一部分数据,所以模型只是学习到了一部分模型。
过采样改进(smote算法)
这种方法属于过采样的一种,主要是将样本较少的类别进行重新组合构造新的样本。
SMOTE算法是一种过采样的算法。这个算法不是简单的复制已有的数据,而是在原有数据基础上,通过算法产生新生数据。
SMOTE全称是Synthetic Minority Oversampling Technique即合成少数类过采样技术,它是基于随机过采样算法的一种改进方案,由于随机过采样采取简单复制样本的策略来增加少数类样本,这样容易产生模型过拟合的问题,即使得模型学习到的信息过于特别(Specific)而不够泛化(General),SMOTE算法的基本思想是对少数类样本进行分析并根据少数类样本人工合成新样本添加到数据集中,算法流程如下。
- 对于少数类中每一个样本x,以欧氏距离为标准计算它到少数类样本集 S m i n S_{min} Smin中所有样本的距离,得到其k近邻。
- 根据样本不平衡比例设置一个采样比例以确定采样倍率N,对于每一个少数类样本xx,从其k近邻中随机选择若干个样本,假设选择的近邻为xn。
- 对于每一个随机选出的近邻xn,分别与原样本按照如下的公式构建新的样本
x n e w = x + r a n d ( 0 , 1 ) ∗ ∣ x − x n ∣ x_{new}=x+rand(0,1) * | x - xn | xnew=x+