1 基本思路
多分类学习的基本思路是拆解法,即将多个二分类任务拆为若干个二分类任务求解。具体地就是,先对问题进行拆分,然后为每个拆分的二分类任务训练一个分类器;在测试时,对这些分类器的预测结果进行集成以获得最终的多分类结果。
关键:多分类任务如何拆分。
2 拆解法
经典的为:“一对一”( One VS One, OvO)、“一对多”(One VS Rest, OvR)和“多对多”(Many VS Many, MvM)。给定数据集,.
2.1 OvO
OvO将N个类别两两配对,从而产生个分类器,分别进行训练。测试时,新样本同时提交给这个分类器,会得到个分类结果,最终结果通过投票产生。
2.2 OvR
OvR是将一个类的样例作为正例、其他所有类的样例作为负例训练N个分类器。测试时,若仅有一个分类器预测为正类,则对应的类别标记为最终分类结果;若有多个分类器预测为正类,则选择置信度最大的分类器的类别标记作为最终分类结果。
PS:OvO的存储开销和测试时间通常比OvR更大。但在训练时,当类别很多时,OvO的训练时间开销通常比OvR更小。
2.3 MvM
MvM将每次若干个类作为正类,若干个其他类作为反类。其正、反类的构造必须有特殊的设计,不能随意选取。一种最常用的:纠错输出码(Error Correcting Output Codes, ECOC),包括 编码和解码两个过程:
编码:对N个类别做M次划分,每次划分都将一部分类别划分为正类,一部分化为反类,从而形成一个二分类训练集;一共形成M个分类器。
解码:M个分类器分别对测试样本进行预测,这些预测标记组成一个编码。将这个预测编码与每个类别各自的编码进行对比,返回其中距离最小的类别作为最终预测结果。
对同一个学习任务,ECOC越长,纠错能力越强。