将SVM用于多类分类

数据挖掘与机器学习 fireling 9562℃ 0评论

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个分类器。


            1类 vs k类
        2类 vs k类 1类 vs k-1类
3类 vs k 类 2类 vs k-1类 1类 vs k-2类

分类时,可以先分1类和k类,如果分类器回答属于k类就往左判断2类和k类,否则向右,依次类推。这样的话,每次向下走一步都排除掉一类,最后留下的类别即为所属类别。


复杂度:k-1
优点:分类速度快,没有分类重叠现象或者分类不可分现象。
缺点:分类错误累积(前面分类器分类错误,后面分类器无法纠正),从上到下节点的选取技巧(参照置信度)。

 

转载请注明:宁哥的小站 » 将SVM用于多类分类

喜欢 (4)

您必须 登录 才能发表评论!