样本不均衡时出现问题的原因
- 本质原因:模型在训练时优化的目标函数和测试时使用的评价标准不一致
- 这种不一致:
- 训练数据的样本分布与测试时期望的样本分布不一致
- 训练阶段不同类别的权重(重要性)与测试阶段不一致
解决方法
基于数据的方法
对数据进行重采样,使样本变得均衡
- 随机采样:
- 过采样:从\(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