类别不平衡就是指分类任务中不同类别的训练样例数目差别很大的情况。下面以这样的一种情况作为假设实例,假定正类样例较少,反类样例较多。
一半对于样本平衡的二类分类任务,事实上是用预测出的y值与一个阈值进行比较,例如我们通常这样子比较预测值y>0.5,则样本为正类,而y<0.5,则样本为负类。
几率y/(1-y)反映了正例可能性与负例可能性之比值,阈值设置为0.5恰表明分类器认为真实正、反例可能性相同,即分类器决策规则为:
y/(1-y) > 1 则预测为正类
上面的公式是对于正反样本数量差不多或者差别不是很大的时候的,预测估计模型。当我们的正反样本的数量的差别很大的时候,这个时候需要对上面的公式做修正,采用一种再缩放的不平衡学习策略。我们领m+表示正例样本的数量,m-作为负例样本的数量。,则我们的观测几率为m+/m-;由于我们通常假设训练集是真实样本总体的无偏采样。因此观测几率就代表了真实几率。于是,只要分类器的预测几率高于观测几率就应判定为正类,即
y/(1-y) > m+/m- 则为正类
我们可以对上面的式子的两边乘以m-/m+修正,故可以得到类似正负样本差不多一致的公式,
【y/(1-y) 】* 【m-/m+】> 1,则预测为正类
上述的处理也称为“再缩放”,虽然上面的思想简单,但实际操作却并不平凡,主要因为实际中训练集是真实样本总体的无偏采样这个假设往往不成立。也就是说我们未必能有效地基于训练集观测几率来推断出真实几率。现在针对上面的问题有三类技术处理:
1、采用欠采样,就是去除样例数量多的,使得两类数量达到差不多,缺点是可能丢弃了一些重要信息。代表算法是集成学习,将样例数量的类分成几个集合,这样对每个学习器来说都进行了欠采样,但全局来看却不会丢失重要信息。
2、采用过采样,对样例数量少的进行扩充,不是简单重复的使得样本的数量增多,否则容易造成过拟合。一般是通过对样例数量少的样本进行插值来产生额外的样例。
3、采用【y/(1-y) 】* 【m-/m+】> 1,则预测为正类,再缩放的机制学习