分类学习方法都有一个假设,即各类别的样本量想当或差别不大,否则会对学习产生负面影响,如样本量100,98个为+1类,2个为0类,则分类器只需在任何情况下都将类别预测为+1即可达到98%的训练集准确率。
解决这一问题的方法为下采样(欠采样)、上采样(过采样)、阈值移动三种。假设样本中是+1类显著多于0类,则下采样去除部分+1类样本使得两类的样本数量接近再进行学习,上采样增加一些0类的数据使得两类样本数量接近再进行学习,阈值移动直接基于原数据集进行学习,用训练好的分类器进行预测时将预测阈值乘以一个参数,如logistic分类在
时将类别预测为+1类,我们现在引入大于1的参数a令
时预测为+1类否则为0类。
下采样若直接随机丢弃一些+1样本则可能丢失一些重要信息,下采样代表性算法是EasyEnsemble,其利用集成学习机制,就爱那个反例划分为若干集合供不同学习器训练使用,这样每个学习器学习的都是下采样样本,但是全局来看没有丢失信息。
过采样不能简单地将0类样本重复,否则会导致过拟合,过采样的代表性算法为SMOTE,其对训练集中的0类样本进行插值产生额外样本。