SVM(支持向量机)最初是针对二分类问题而提出来的,但现在我们要实现多分类,那么可不可以运用SVM呢?根据目前的研究,我们有两种解决途径:
1、 通过构造多个SVM二值分类器并将让它们组合起来实现多类分类,例如one-against-rest, one-against-one和DA GSVM. 虽然这三种方法是当前最常用且性能较优的, 但one-against-rest 和one-against-one方法的泛化误差是无界的. one-against-one所需构造的子分类器的数量关于类别数k 成超线性增长, 共k(k- 1)/2个, 且在测试阶段, 都必须计算所有子分类判据函数. One-against-one方法还有一个最明显的缺点就是, 每个子分类器必须都要非常仔细地调整, 如果某个子分类器不规范化, 则整个分类系统将趋于过学习. DA GSVM方法解决了不可分区域问题, 而且不一定要计算所有的子分类判决函数, 但各个子分类器在有向无环图中的位置也会对分类系统产生较大的影响.
2、 另一种是直接在一个优化公式中同时考虑所有子分类器的参数优化,严格的讲,其思想类似于one-against-rest,只不过是把K个二值SVM优化问题放在一个最优化公式中同时优化,所以它也存在one-against-rest方法相同的缺点,在最优化问题求解过程中的变量远远多于第一种,训练速度不及第一种,在分类精度上也不占优势,特别是在训练样本很大的时候。
基于此基础知识,今天我们来看一下研究人员们在此基础上做了哪些改进工作,下面我将重点介绍一下基于纠错编码的SVM多类分类算法和基于二叉树的多类SVM。
一、 基于纠错编码的SVM多类分类算法
首先我们需了解纠错编码是一种把多类分类问题转化为多个两类分类问题的方法。