5、多分类学习
(1)基本思路是“拆解法”,将多分类任务拆为若干个二分类任务求解;
(2)经典的拆分策略:
① 一对一(OvO):将N个类别两两配对,从而产生N(N-1)/2个分类任务,测试阶段,新样本将同时提交给所有分类器,于是得到N(N-1)/2个分类结果,最终结果通过投票产生;
② 一对其余(OvR):每次将1个类的样例作为正例,所有其他类的样例作为反例来训练N个分类器,测试时若仅有一个分类器的预测为正类,对应的类别标记作为最终分类结果;若有多个为正类,根据分类器的预测置信度。
③ 多对多(MvM):每次将若干类作为正类,若干其他类作为反类,但是正反类构造必须有特殊的设计,常用的是“纠错输出码”(ECOC);
ECOC主要分两步:
1° 编码:对N个类别做M次划分,每次划分将一部分类别化为正类,一部分化为反类,从而形成一个二分类训练集,这样一共产生M个训练集,可以训练M个分类器;
2° 解码:M个分类器分别对测试样本进行预测,这些预测标记组成一个编码,将这个预测编码与每个类别各自的编码进行比较,返回其中距离最小的类别作为最终预测结果。
ECOC编码对分类器的错误有一定的容忍和修正能力,ECOC编码越长,纠错能力越强,但相应的计算、存储开销都会增大。
(2)在实际操作中,我们却未必能有效地基于训练集观测几率来推断真实几率,目前主要有三种解决方法:
① “欠采样”(undersampling)——去除一些反例(正例)使得正、反例数目接近;
② “过采样”(oversampling)——增加一些正例(反例)使得正、反例数据接近;
③ “阈值移动”(threshold-moving)——基于原训练集学习,但在训练好的分类器进行与测试,将上面的式子嵌入决策中。