SMOTE算法

SMOTE算法,即Synthetic Minority Oversampling Technique合成少数类过采样技术,这是一种过采样的方法。

它是对随机采样方法的一种改进,在随机过采样中,虽然可以使样本集变得均衡,但会带来一些问题,比如,过采样对少数类样本进行了多次复制,扩大了数据规模,增加了模型训练的复杂度,同时也很容易造成过拟合。

通常在过采样时并不是简单地复制样本,而是采用一些方法生成新的样本。例如,SMOTE算法对少数类样本每个样本x,从它的K近邻中随机选一个样本y,然后在x,y连线上随机选取一点作为新合成的样本。这种合成新样本的过采样方法可以降低过拟合的风险。


SMOTE算法_第1张图片
SMOTE算法_第2张图片

SMOTE比随机采样要好,但是仍然会存在一些问题,为每个少数类样本合成相同数量的新样本,这可能会增大类间重叠度,并且会生成一些不能提供有益信息的样本。因此出现了Borderline-SMOTE、ADASYN等改进算法。

Borderline SMOTE算法仅使用边界上的少数类样本来合成新样本,从而改善样本的类别分布。如下所示,仅对danger的样本进行过采样。


SMOTE算法_第3张图片

ADASYN则对不同的少数类样本赋予不同的权重,合成不同个数的新样本:


SMOTE算法_第4张图片

以上算法均可在imblearn中实现。

参考:

  1. https://blog.csdn.net/u010654299/article/details/103980964
  2. 《百面机器学习》

你可能感兴趣的:(SMOTE算法)