样本不均衡时出现问题的原因
- 本质原因:模型在训练时优化的目标函数和测试时使用的评价标准不一致
- 这种不一致:
- 训练数据的样本分布与测试时期望的样本分布不一致
- 训练阶段不同类别的权重(重要性)与测试阶段不一致
解决方法
基于数据的方法
对数据进行重采样,使样本变得均衡
- 随机采样:
- 过采样:从(S_{min})中有放回采样,可能造成过拟合
- 欠采样:从(S_{maj})随机舍弃,可能损失有用信息
- SMOTE算法
- 对少数类样本集(S_{min})中的每个样本(x),从它在(S_{min})中的K近邻中随机选取一个样本(y),然后在(x,y)连线上随机选取一点作为新样本
- 根据需要的过采样倍率重复上述过程若干次
- 缺点:
- 为每个少数类样本合成相同数量的新样本,增大类间重叠度
- 生成一些不能提供有用信息的样本
- 改进:
- Borderline-SMOTE:只给处于分类边界上的少数类样本合成新样本
- ADASYN算法:不同的少数类样本合成不同个数的新样本
- 数据清理方法(如Tomek Links),降低合成样本的类间重叠
- Informed Undersampling
- Easy Ensemble算法
- 从多数类(S_{maj})中随机抽取一个子集(E(|E|approx |S_{min}|))
- 使用(E + E_{min})训练分类器;重复上述过程若干次,得到多个分类器
- 最终结果由多个分类器结果融合
- Balance Cascade算法:级联结构
- 在每一级中从多数类(S_{maj})中随机抽取子集(E)
- 用(E+S_{min})训练该级的分类器
- 将(S_{maj})中能够被当前分类器正确判别的样本剔除掉
- 继续下一级操作,重复若干次得到级联结构
- 最终结果也是各级分类器结果的融合
- NearMiss
- 利用K近邻信息挑选具有代表性的样本
- One-sided Selection
- 采用数据清理技术
- Easy Ensemble算法
- 其它采样技术
- 基于聚类的采样方法
- 数据扩充方法
- Hard Negative Mining