将SVM用于多类分类
Posted 桂。
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将SVM用于多类分类相关的知识,希望对你有一定的参考价值。
转自:http://www.lining0806.com/%E5%B0%86svm%E7%94%A8%E4%BA%8E%E5%A4%9A%E7%B1%BB%E5%88%86%E7%B1%BB/
SVM是一种典型的二类分类器,是采用最大间隔化策略来确定特征空间中最优超平面的,也就是说它只能回答属于正类还是负类的问题。而现实中要解决的往往是多类分类问题,如何将一个二类分类器转换成一个多类分类器呢?
一、一对多方法
比如有k个类别,每次分类都把1个类别作为正样本,其余k-1个类别作为负样本,依次类推。这样共有k个分类器。
分类时这k个分类器依次对相应类别回答“是”或“不是”,最后得到“是”的类别即为所属类别。
复杂度:k 优点:分类速度快 缺点:一对多,样本不均衡。分类重叠现象或者分类不可分现象。
二、一对一方法
比如有k个类别,每次分类都把1个类别作为正样本,另外1个类别作为负样本,依次类推。这样共有k*(k-1)/2个分类器。
分类时这k*(k-1)/2个分类器依次回答属于两个类别中的哪一类,最后投票统计得票数最高的那个类别即为所属类别。
复杂度:k*(k-1)/2 优点:没有分类不可分现象。 缺点:分类重叠现象。
三、DAG方法
DAG的结点从上到下依次为1,2,3,…,k-1个。这样共有k*(k-1)/2个分类器。 这种方法是构造一个DAG SVM,(有向无环的svm)。 还是像一对一方法那样来训练,只是在对一篇文章进行分类之前,先按照下面图的样子来组织分类器这样在分类时,我们就可以先问分类器“1对5”(意思是它能够回答“是第1类还是第5类”),如果它回答5,我们就往左走,再问“2对5”这个分类器,如果它还说是“5”,我们就继续往左走,这样一直问下去,就可以得到分类结果。
复杂度:k-1 优点:分类速度快,没有分类重叠现象或者分类不可分现象。 缺点:分类错误累积(前面分类器分类错误,后面分类器无法纠正),从上到下节点的选取技巧(参照置信度)。
以上是关于将SVM用于多类分类的主要内容,如果未能解决你的问题,请参考以下文章
用于多类分类的 SVM(one-vs-all)中的置信度估计