机器学习西瓜书笔记---3.6、类别不平衡问题
机器学习西瓜书笔记---3.6、类别不平衡问题
一、总结
一句话总结:
【类别不平衡(class-imbalance)】就是指【分类任务中不同类别的训练样例数目差别很大】的情况.
我们经常会遇到类别不平衡,【例如在通过拆分法解决多分类】问题时,即使原始问题中不同类别的训练样例数目相当,在使用OⅴR、MvM策略后产生的二分类任务仍可能出现类别不平衡现象,因此有必要了解类别不平衡性处理的基本方法
1、为什么有类别不平衡问题讨论?
前面介绍的分类学习方法都有一个共同的基本假设,即不同类别的训练样例数目相当.如果不同类别的训练样例数目稍有差别,通常影响不大,【但若差别很大,则会对学习过程造成困扰】.
【例如有998个反例,但正例只有2个】,那么学习方法只需返回一个永远将新样本预测为反例的学习器,就能达到99.8%的精度;然而这样的学习器往往没有价值,因为它不能预测出任何正例
2、类别不平衡学习的一个基本策略—【“再缩放”(rescaling)】?
$$\frac { y ^ { \prime } } { 1 - y ^ { \prime } } = \frac { y } { 1 - y } \times \frac { m ^ { - } } { m ^ { + } }$$
再缩放的思想虽简单,但实际操作却并不平凡,【主要因为“训练集是真实样本总体的无偏采样”这个假设往往并不成立】,也就是说,我们未必能有效地基于训练集观测几率来推断出真实几率.
“再缩放”也是【“代价敏感学习”(cost-sensitive learning)】的基础.在代价敏感学习中将式$$\frac { y ^ { \prime } } { 1 - y ^ { \prime } } = \frac { y } { 1 - y } \times \frac { m ^ { - } } { m ^ { + } }$$中的m-/m+用 cost+/cost-代替即可,其中【cost+是将正例误分为反例的代价,cost-是将反例误分为正例的代价】
3、解决类别不平衡学习现在三类做法?
【欠采样】:第一类是直接对训练集里的反类样例进行【“欠采样”(undersampling)】,即【去除】一些反例使得正、反例数目接近,然后再进行学习;
【过采样】:第二类是对训练集里的正类样例进行【“过采样”(oversampling)】,即【增加】一些正例使得正、反例数目接近,然后再进行学习;
【阙值移动】:第三类则是直接基于原始训练集进行学习,但在用训练好的分类器进行预测时,将式$$\frac { y ^ { \prime } } { 1 - y ^ { \prime } } = \frac { y } { 1 - y } \times \frac { m ^ { - } } { m ^ { + } }$$嵌入到其决策过程中,称为【“阙值移动”(threshold-moving)】
4、采样注意?
过采样法【不能简单】地对初始正例样本进行【重复采样】,否则会招致【严重的过拟合】
欠采样法【若随机丢弃反例】,可能丢失一些重要信息
欠采样法的代表性算法【EasyEnsemble】 [Liu et al,2009]则是利用集成学习机制,将反例划分为【若干个集合供不同学习器使用】,这样对每个学习器来看都进行了【欠采样】,但在【全局来看却不会丢失重要信息】
5、“多标记学习”(multi-label learning)?
多分类学习中虽然有多个类别,但每个样本仅属于一个类别.如果希望为个样本同时预测出多个类别标记,例如【一幅图像可同时标注为“蓝天”、“白云”、“羊群”、“自然场景”】,这样的任务就不再是多分类学习,而是【“多标记学习”(multi-label learning)】
二、内容在总结中
博客对应课程的视频位置: