Safe-Level-SMOTE:安全级别过采样

  最近在看过采样的方法时看到Safe-Level-SMOTE这篇论文,论文全称为

《Safe-Level-SMOTE Safe-Level-Synthetic Minority Over-Sampling TEchnique for Handling the Class Imbalanced Problem》

看到网上对这种算法介绍的博客比较少,特此留篇见解。有什么理解错误的地方恳请指正。

这篇论文给出的算法如下:

Safe-Level-SMOTE:安全级别过采样

算法具体介绍如下:

D -待过采样的少数类的样本集合

p -D中的某一个样本

  1. 求出p的k个最近邻居,k个邻居在D中的数目记为slp,取某一个邻居记为n
  2. 求出n的k个最近邻居,k个邻居在D中的数目记为sln
  3. 设置比例sl_ratio = slp/sln
  • case1:

 sl_ratio = ∞并且slp = 0,即少数类样本p的k个最近邻居都是多数类样本,此时不产生合成数据(个人理解,这里是把p点当成噪声了)。

  • case2:

sl_ratio = ∞并且slp 不为 0,即sln相对于slp非常小在情况下比值才会为0,n样本点位于多数类样本中,此时复制p点。

  • case3:

sl_ratio = 1,即sln=slp,此时在n和p点之间合成新的样本,合成方式同smote。

  • case4:

sl_ratio > 1,即slp>sln,此时p点样本周围小类样本的数目要大于n点样本周围小类样本的数目,视p点为safe level,在p和n点之间以smote中的β=0~1/sl_ratio合成新的样本,合成的样本位置偏向于p点。

  • case5:

sl_ratio < 1,即slp<sln,此时p点样本周围小类样本的数目要小于n点样本周围小类样本的数目,视n点为safe level,在p和n点之间以smote中的β=1-sl_ratio~1合成新的样本,合成的样本位置偏向于n点。

循环直到满足要达到的过采样数量为止。

这种方法避免了smote随机区域合成,可能会与多数类样本重叠的缺点。但这种方法合成得到的样本位置更偏向于少数类中密度集中的地方,不能在决策边界上进行过采样。