在进行分类问题的时候样本不平衡往往会导致分类器更倾向于将样本分到数量多的一类,从而导致较高的召回较低的准确率。
这种情况下有以下几种解决方法(假设正样本:负样本=1000:10w):
1. 过采样
a. 简单将正样本复制n份(不推荐)
b. SMOTE采样(对于SVM基本无效)
2. 欠采样(会丢到一些重要的信息)
a. 简单将正样本抽样1/100
b. 将负样本聚成1000类,取每个类的中心组成新的一类
3. 对分类器的小类样本数据增加权值,降低大类样本的权值(这种方法其实是产生了新的数据分布,即产生了新的数据集,译者
注),从而使得分类器将重点集中在小类样本身上。一个具体做法就是,在训练分类器时,若分类器将小类样本分错时额外增
加分类器一个小类样本分错代价,这个额外的代价可以使得分类器更加“关心”小类样本。如penalized-SVM和penalized-LDA
算法。
4. 将负样本分成100分,每次取其中一份与正样本一起训练,都训练完后一起投票
5.分层级ensemble
使用原始数据集训练第一个学习器L1;将L1错分的数据集作为新的数据集训练L2;将L1和L2分类结果不一致的数
据作为数据集训练L3;最后测试集上将三个分类器的结果汇总(结合这三个分类器,采用投票的方式来决定分类
结果,因此只有当L2与L3都分类为false时,最终结果才为false,否则true。)