MatlabCode

本站所有资源均为高质量资源,各种姿势下载。

您现在的位置是:MatlabCode > 资源下载 > 智能算法 > svm多类分类

svm多类分类

资 源 简 介

每次选一个类的样本作正类样本,而负类样本则变成只选一个类(称为“一对一单挑”的方法,哦,不对,没有单挑,就是“一对一”的方法,呵呵),这就避免了偏斜。因此过程就是算出这样一些分类器,第一个只回答“是第1类还是第2类”,第二个只回答“是第1类还是第3类”,第三个只回答“是第1类还是第4类”,如此下去,你也可以马上得出,这样的分类器应该有5 X 4/2=10个(通式是,如果有k个类别,则总的两类分类器数目为k(k-1)/2)。虽然分类器的数目多了,但是在训练阶段(也就是算出这些分类器的分类平面时)所用的总时间

详 情 说 明

在这个过程中,我们采用了一种称为“一对一”的方法,其中每次选取一个类别的样本作为正类样本,而将其他类别的样本作为负类样本。这样做的好处是避免了数据集的偏斜问题。因此,在训练阶段我们需要算出多个分类器,第一个分类器只回答“是第1类还是第2类”,第二个分类器只回答“是第1类还是第3类”,以此类推。根据通式,如果我们有k个类别,那么总共会有k(k-1)/2个分类器。因此,在这种方法下,我们需要算出10个分类器(假设有4个类别)。虽然分类器的数量增加了,但是在训练阶段所需的时间却比“一类对其余”方法少得多。

在真正用这些分类器进行分类时,我们将一篇文章输入到每个分类器中。第一个分类器会投票说这篇文章属于“1”类还是“2”类,第二个分类器会投票说这篇文章属于“1”类还是“3”类,以此类推。我们让每个分类器都投上自己的一票,最后统计票数。如果“1”类得票最多,那么我们就判定这篇文章属于第1类。虽然这种方法可能会导致分类重叠的情况发生,但是不会出现无法分类的情况,因为不可能所有类别的票数都是0。