平时很多分类问题都会面对样本不均衡的问题,很多算法在这种情况下分类效果都不够理想。针对不均衡问题,一般有采样和代价敏感学习两种策略,采样的话又分为over-sampling和under-sampling。其中,smote算法算是over-sampling中比较常用的一种。
smote算法的思想是合成新的少数类样本,合成的策略是对每个少数类样本a,从它的最近邻中随机选一个样本b,然后在a、b之间的连线上随机选一点作为新合成的少数类样本。
论文地址:https://www.jair.org/media/953/live-953-2037-jair.pdf
下图是论文中给出的smote伪代码。
#encoding=gbk
from sklearn.neighbors import NearestNeighbors
import numpy as np
import random
class Smote