0%

类别不平衡问题

什么是类别不同平衡问题

类别不平衡就是指分类任务中不同类别的训练样例数目差别很大的情况。例如在二分类任务中有998个正例,2个反例,那么学习方法只需要返回一个永远将新样本预测为反例的学习器,就能达到99.8%的精度,然而这个学习器往往没有价值,因为它不能预测出任何正例。还有,在通过拆分法解决多分类问题时,即使原始问题中不同类别的训练样例数目相当,在使用OvR、MvM策略后产生的二分类任务仍可能出现类别不平衡现象。

处理类别不平衡问题

以logistic回归处理二分类任务为例,分类任务的输出一般都是判断某个样例为正例的概率。假如输出$y$表示样例为正例的概率,则$1-y$就表示样例为反例的概率。

在训练集中,正、反例的数目不同时,令$m^+$表示正例数目,$m^-$表示反例数目。于是,只要分类器的预测概率比例高于$\frac{m^+}{m^-}$就应该判为正例。即:

还有一种形式为将$\frac{m^+}{m^-}$替换为$\frac{cost^+}{cost^-}$,其中$cost^+$表示将正例误分为反例的代价,$cost^-$是将反例误分为正例的代价,这其实就是代价敏感学习的思想。

但是使用这种方法一般要求“训练集时真是样本总体的无偏采样”,而这个要求一般很难实现。除了上面的这个方法还有其他两种方法:“欠采样”和“过采样”。

欠采样即去除一些多的样例,使得正、反样例数目接近,然后再进行学习。欠采样若丢弃样例后,可能丢失一些重要的信息。欠采样的代表算法EasyEnsemble则是利用集成学习机制,将样例多的类别中的样例划分为若干个集合供不同的学习器使用,这样对每个学习器来看都进行了欠采样,但在全局来看却不会丢失重要信息

过采样即赠加一些样例数较少的类别的样例,使得正、反例数目接近,然后再学习。但是过采样不能简单对初始的样本进行重复采样,否则将会导致严重的过拟合。过采样的代表算法SMOTE是通过对训练集中的样例进行插值来表示额外的样例。