我正在尝试使用线性SVM进行多类对象类别识别。到目前为止,我所理解的主要是使用了两种方法 - 一对一(OVA)和一对一(OVO)。 但我很难理解其实施。我的意思是我认为使用的步骤是:
答案 0 :(得分:2)
在一对一的方法中,您必须检查所有5个模型。然后,您可以以最自信的价值做出决定。 LIBSVM
给出了概率估算值。
在一对一的方法中,你可以占多数。例如,您测试1对2,1对3,1对4和1对5.您将其分为3个案例中的1。你对其他4个班级做同样的事情。假设其他四个类的值为[0, 1, 1, 2]
。因此,第1类获得的次数最多,使该类成为最后一类。在这种情况下,您还可以进行概率估算。取最大值。除非在一对中进行分类极其错误,否则这将起作用。例如,在1对4中,它将置信度为4(真正的等级为1),置信度为0.7。然后仅仅因为这一个决定,你的概率估计总数可能会上升并给出错误的结果。这个问题可以通过实验检查。
LIBSVM使用一对一。您可以查看推理here。你也可以阅读this论文,他们在哪里捍卫一个与所有的分类方法,并得出结论,不必然比一个对一个更差。
答案 1 :(得分:2)
简而言之,您的积极训练样本总是一样的。在一对一中,你训练n个分类器,其中每个负分类的负样本分别进行。在一个与所有你将所有负面样本混合在一起并训练一个分类器。前一种方法的问题是你必须考虑所有n个结果来决定课程。后一种方法的问题在于,创建一个非同类的类很难处理和分析。