libsvm处理多分类的问题

Posted June0507

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了libsvm处理多分类的问题相关的知识,希望对你有一定的参考价值。

SVM是一个二分类器,当遇到多类别的时候,一般采取如下两种策略。 a.一对多法(one-versus-rest,简称1-v-r SVMs)。训练时依次把某个类别的样本归为一类,其他剩余的样本归为另一类,这样k个类别的样本就构造出了k个SVM。分类时将未知样本分类为具有最大分类函数值的那类。 b.一对一法(one-versus-one,简称1-v-1 SVMs)。其做法是在任意两类样本之间设计一个SVM,因此k个类别的样本就需要设计k(k-1)/2个SVM。当对一个未知样本进行分类时,最后得 票最多的类别即为该未知样本的类别。Libsvm中的多类分类就是根据这个方法实现的。

 

SVM作为判别模型(discriminative model)中所使用的典型方法,其产生是为2分类问题设计的

svm多分类效果不佳,目前是svm研究的热点之一。libsvm用的是one- versus-one法。
简介:
.一对一法(one-versus-one,简称OVO SVMs或者pairwise)。其做法是在任意两类样本之间设计一个SVM,因此k个类别的样本就需要设计k(k-1)/2个SVM。当对一个未知样本 进行分类时,最后得票最多的类别即为该未知样本的类别。Libsvm中的多类分类就是根据这个方法实现的。

还是假设有四类A,B,C,D 四类。在训练的时候我选择A,B; A,C; A,D; B,C; B,D;C,D所对应的向量作为训练集,然后得到六个训练结果,在测试的时候,把对应的向量分别对六个结果进行测试,然后采取投票形式,最后得到一组结 果。

投票是这样的.
A=B=C=D=0;
(A, B)-classifier 如果是A win,则A=A+1;otherwise,B=B+1;
(A,C)-classifer 如果是A win,则A=A+1;otherwise, C=C+1;
...
(C,D)-classifer 如果是A win,则C=C+1;otherwise,D=D+1;
The decision is the Max(A,B,C,D)

以上是关于libsvm处理多分类的问题的主要内容,如果未能解决你的问题,请参考以下文章

java中使用libsvm的文档分类

使用 libsvm 将多类划分为二进制类(不是分类)

使用 LibSVM 进行分类

matlab中用svm如何做多类别分类(R2013a)?

多类 SVM。二元决策树。 LIBSVM 的问题

libsvm 中的大型训练和测试数据