数据分布不均衡处理——SMOTE算法过采样 O v e r s a m p l i n g Over\quad sampling Oversampling
什么是过采样?
过采样就是在原始数据分布不均衡时,使用算法,人工生成一部分数据出来,然后对这些新生成的数据随机采样,使得原始数据中少数集的数量最终和多数集的数量相同。如下图,可以看到类别为0的数据的数量远远多于类别为1的数据的数量。
SMOTE算法的基本思想
-
对于少数类中的每一个样本 X X X,以欧氏距离为标准计算它到少数类样本集中所有的样本的距离,得到其 K K K近邻
-
根据样本不平衡比例设置一个采样比例以确定采样倍率 N N N,对于每一个少数样本 X X X,从其 K K K近邻中随机选取若干样本,假设选择的近邻为 X n X_n Xn
-
对于每一个随机选取的近邻 X n X_n Xn,分别与原样本按照如下的公式构建新的样本
X n e w = X + r a n d ( 0 , 1 ) × ( X ~ − X ) \begin{aligned}X_{new} = X+ rand(0,1)\times(\tilde{X}-X)\end{aligned} Xnew=X+rand(0,1)×(X~−X)
实际上就是对每个少数类样本a,从它的最近邻中随机选一个样本b,然后在a、b之间的连线上随机选一点作为新合成的少数类样本。
SMOTE算法的实现
请查看我的博文信用卡欺诈检测