类别不平衡(class-imbalance)是指分类任务中不同类别的训练样例数差别很大的情况。例如有990个正类,10个反例,那么学习方法只需要返回一个永远预测为正类的分类器就可以达到99%的精度。然而这样的学习器是没有价值的,因为它预测不出任何反例。
样本比例不平衡,这种现象多是由于数据来源本身造成,如征信问题中往往正样本多。
即使原始问题中不同类别的训练样例数目相当,在使用OvR策略后产生的二分类任务仍可能出现类别不平衡现象。
解决方法 1 :再缩放(rescaling)
- 欠采样(undersampling)
- 过采样(oversampling)
- 阈值转移(threshold-moving)
解决方法 2 :使用其他分类性能度量指标
- 正确率
- 召回率
- ROC曲线、AUC
解决方法 3 :基于代价函数的分类器就决策控制
- 代价敏感的学习,增大样本数较少类别的样本的权重,当这样的样本被误分时,其损失值要乘上相应的权重,从而让分类器更加关注这一类数目较少的样本
解决方法 4 :搜集更多的数据
搜集更多的数据,从而让正负样本的比例平衡。需要注意的是,当搜集数据的场景本来产生数据的比例就是不平衡时,这种方法并不能解决数据比例不平衡问题。
或者采用合成样本。
《机器学习》 P66 3.6
《Machine Learning in Action》 P127 7.7