SMOTE算法,即Synthetic Minority Oversampling Technique合成少数类过采样技术,这是一种过采样的方法。
它是对随机采样方法的一种改进,在随机过采样中,虽然可以使样本集变得均衡,但会带来一些问题,比如,过采样对少数类样本进行了多次复制,扩大了数据规模,增加了模型训练的复杂度,同时也很容易造成过拟合。
通常在过采样时并不是简单地复制样本,而是采用一些方法生成新的样本。例如,SMOTE算法对少数类样本每个样本x,从它的K近邻中随机选一个样本y,然后在x,y连线上随机选取一点作为新合成的样本。这种合成新样本的过采样方法可以降低过拟合的风险。
SMOTE比随机采样要好,但是仍然会存在一些问题,为每个少数类样本合成相同数量的新样本,这可能会增大类间重叠度,并且会生成一些不能提供有益信息的样本。因此出现了Borderline-SMOTE、ADASYN等改进算法。
Borderline SMOTE算法仅使用边界上的少数类样本来合成新样本,从而改善样本的类别分布。如下所示,仅对danger的样本进行过采样。
ADASYN则对不同的少数类样本赋予不同的权重,合成不同个数的新样本:
以上算法均可在imblearn中实现。
参考:
网友评论