背景:实际应用中可能会遇到分类问题中类别之间的比例严重失调,如客户流失中,忠诚的占据很小比例;营销活动中,响应的客户只占小部分。如果数据存在严重的不平衡,预测得出的结论容易有偏,即返回的结果偏向于角度观测的类。
SMOTE的基本思想:对少数类别样本进行分析和模拟,并将人工模拟的新样本添加到数据集中。模拟过程采用了KNN,模拟生成新样本步骤如下:
- 采用KNN,计算出每个少数类样本的K个近邻
- 从K个近邻中随机挑选N个样本进行随机线性插值
- 构造新的少数类样本
- 将新样本与原数据结合,产生新的训练集
新样本点的构造公式如下,其中xi和xj均代表少数类别中的样本点。
可以使用SMOTE实现上述抽样
from imblearn.over_sampling import SMOTE
sm = SMOTE(random_state=1234