样本不平衡其实的主要思想就是过采样和欠采样,但是由于在复制少量标签的样本或者筛选大量标签的样本方法不同衍生出了不同的处理手段
1.随机过采样:复制标签少的样本使得好坏比满足建模需要
2.随机欠采样:抽取标签多的样本使得好坏比满足建模需要 (会丢失样本信息)
3.EasyEnsemble:标签多的样本进行n份,每份都和标签少的全部样本组合成n份训练样本,利用集成学习训练n个弱分类器(原论文是用adaboost框架,当然用其他框架也是可以的)
4.BalanceCascade:对标签多的样本进行欠采样,和标签少的全部样本组合成训练样本,弱分类器分类正确的标签多数样本不放回,分类错误的放回。
再进行标签多的样本欠采样,训练。
举个例子吧。假设你有1000个标签为1的样本,10个标签为0的样本。
第一步,从1样本中随机抽取10个和10个0样本组成训练样本
第二步,训练弱分类器发现,10个1样本中7个分类正确,3个分类错误。
第三步,将3个分类错误的1样本放回原来的990个1样本中。
重复第一步(这个时候抽样的1样本总样本量为993个)
5. KNN 欠抽样:虽然有很多变种,其实思想是大同小异的。
5.1 NM欠采样:有3个不同的方法
- NearMiss-1从多数类中选择,那些与少数类中三个最接近示例的平均距离最小的示例。
- NearMis