八月啦 友友们 炎热的夏天来了
好快 入职一年拉!保持发际线不变yeah!
今天补充一下上一节数据不平衡处理的另一种常见方法-过采样
过采样
重温一下:欠采样是指从大数目类别样本选取和小数目类别样本数目相当的样本,然后和少数目类别样本组成新的数据集,在新的数据集中正负样本比例相当。也就是从类别数量比较大(多)的样本出发。
与欠采样不同,过采样是从类别数量较少的样本出发,对类别数量较少的样本“过采样”(oversampling),即从少数类中一个样本抽取多次,从而使正负样本数目接近,再进行学习。(实际上没有引入新的数据)
比较常用的有:随机过采样和smote
1.随机过采样
随机过采样(Random Over Sampling)
随机过采样是指从少数类中随机选择一些样本,然后通过复制所选择的样本生成样本集 ,把它们添加到 中来扩大少数类数据集。扩充后少数类数据集应和多数类 样本数目基本保持一致。
简单来说即通过复制少数类示例来平衡数据。这不会导致任何信息丢失,但数据集在复制相同信息时容易过度拟合。
2.SMOTE
SMOTE (Synthetic Minority oversampling Technique) 即合成少数类过采样技术,是基于随机过采样算法的一种改进方案,其基本思想是对少数类样本进行分析并根据少数类样本人工合成新样本添加到数据集中。具体如下:
对每个少数类样本 ,从它的最近邻(少数类)中随机选择一个样本 ,然后在和 之间的连线上随机选择一点作为新合成的少数类样本。
算法描述如下:
(1) 对于少数类样本中的每一个样本 , 计算它在 中的k个近邻;
(2) 根据类别不平衡比例设置一个采样比例以确定采样倍率N,从每个少数类样本 的k个近邻中挑选N个样本,对该少数类样本和其N个近邻分别进行随机线性插值生成N个新样本;
(3) 新样本与原多数类样本混合,产生新的数据集。
SMOTE相关研究参考:https://blog.csdn.net/Frank_LJiang/article/details/104427978/
SMOTE改进的算法参考:https://zhuanlan.zhihu.com/p/341560451
END good luck