在其他文献中看到了SMOTE Sampling方法,它可以解决非平衡二元分类问题,有人具体了解这个抽样方法吗?可以介绍一下吗?
谢谢!
-----
3个回答
SMOTE是一种对普通过采样(oversampling)的一个改良。普通的过采样会使得训练集中有很多重复的样本。
SMOTE的全称是Synthetic Minority Over-Sampling Technique,译为“人工少数类过采样法”。
SMOTE没有直接对少数类进行重采样,而是设计了算法来人工合成一些新的少数类的样本。
为了叙述方便,就假设阳性为少数类,阴性为多数类
合成新少数类的阳性样本的算法如下:
- 选定一个阳性样本$s$
- 找到$s$最近的$k$个样本,$k$可以取5,10之类。这$k$个样本可能有阳性的也有阴性的。
- 从这$k$个样本中随机挑选一个样本,记为$r$。
- 合成一个新的阳性样本$s'$,$s'=\lambda s + (1-\lambda)r$,$\lambda$是$(0,1)$之间的随机数。换句话说,新生成的点在$r$与$s$之间的连线上。
重复以上步骤,就可以生成很多阳性样本。
=======画了几张图,更新一下======
用图的形式说明一下SMOTE的步骤:
1.先选定一个阳性样本(假设阳性为少数类)
2.找出这个阳性样本的k近邻(假设k=5)。5个近邻已经被圈出。
3.随机从这k个近邻中选出一个样本(用绿色圈出来了)。
4.在阳性样本和被选出的这个近邻之间的连线上,随机找一点。这个点就是人工合成的新的阳性样本(绿色正号标出)。
图文并茂,很清楚,谢谢分享~
-
木子周
2018-02-06 00:03
我好老的问题了,啊哈哈!谢谢回答!非常清楚!
-
PR
2018-02-13 10:52
哇,简单明了。但是如果有categorical feature怎么办呢?
-
桐桐酱
2018-02-28 13:29
谢谢回答!我也有疑问,如果有binary的话,中间取个小数,也没有什么意义吧?
-
wlk1993
2018-03-10 16:28
原论文:SMOTE: Synthetic Minority Over-sampling Technique
谢谢链接!
-
PR
2018-02-13 10:53
有个疑问:在第二步 "找到$s$最近的$k$个样本,$k$可以取5,10之类。这$k$个样本可能有阳性的也有阴性的", 感觉这样选会导致label混乱,比如随机数接近1的情况下,label是阴性还是阳性?我找了下资料,基本上都是要找同样label的近邻样本,比如这个:http://rikunert.com/SMOTE_explained
SofaSofa数据科学社区DS面试题库 DS面经
我感觉你说的是对的。不过我刚刚看了原论文,里面的方法的确是限制在同类别的近邻。然后文章的最后也提到了,其实也没有必要限制在同类别的近邻,也可以不管类别,只看近邻。
-
sasa
2018-08-21 05:01