比较新的论文引用较少,网上具体的算法介绍就更少,这里我就当为自己做了一些烂笔头的工作。有什么错误的地方恳请指正

MWMOTE全称—Majority Weighted MinorityOversampling Technique for ImbalancedData Set Learning

这篇论文是一篇IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING,中科院二区,影响因子3.438的文章

算法介绍如下:

1)少数类的样本总数记为Smin

    对每个属于少数类Smin的样本根据欧式距离计算它的k1个邻居,其中属于少数类的记为NN(xi)

2)若NN(xi)=0表示第i个少数类样本附近的k1个邻居没有少数类样本,该样本为噪声样本

    用Sminf代表Smin去掉噪声样本后剩下的样本数量

3)对每个属于少数类Sminf的样本根据欧式距离计算它的属于多数类的k2个邻居,记为Nmaj(xi)

4)将3)的结果取并集得到多数类边界数据集,记为Sbmaj

5)对每一个属于Sbmaj的样本根据欧氏距离计算它的属于少数类的k3个邻居,记为Nmin(yi)

6)将5)的结果取并集得到少数类信息集,记为Simin

7)对于每一个属于Simin的样本,根据样本所在位置距离和密度因素计算信息权重Iw(yi,xi),距离多数类样本越近密度越低越容易抽到

8)9)步骤相当于归一化的步骤,用当前的信息权重除以总的信息权重得到每个xi的选择权重,即被选到去合成新样本的概率

10)将Smin聚类成M个簇,依概率从Simin抽取样本,再从M个簇中随机选择样本进行SMOTE式的插值,重复10)直到满足要达到的数量为止。

伪代码如下:

MWMOTE:带多数类权重的少数类样本过采样

MWMOTE:带多数类权重的少数类样本过采样

相关文章: