2010-08-05 131 views
1

opencv SVM实现采用标记为“SVM类型”的参数,该参数必须在用于训练SVM的CVSVMParams结构中使用。所有我能找到的解释是:什么是OpenCV svm类型参数

// SVM type
enum { C_SVC=100, NU_SVC=101, ONE_CLASS=102, EPS_SVR=103, NU_SVR=104 };

任何人都知道,这些不同的值代表什么?

回答

6

一般来说:

  • 分类SVM类型1(也称为C-SVM分类)
  • 分类SVM 2型(也称为NU-SVM分类)
  • 回归SVM类型1(也被称为的ε-SVM回归)
  • 回归SVM 2型(也称为NU-SVM回归)

详细情况可以见SVM

+1

一个班级呢? – petersaints 2012-02-08 11:45:44

9

它们是SVM的不同公式。 SVM的核心是数学优化问题。这个问题可以用不同的方式说明。

C-SVM使用C作为保证金大小和被错误分类的训练点数之间的折衷参数。 C只是一个数字,有用的范围取决于数据集,它可以从非常小(如10-5)到非常大(如10^5),取决于您的数据。

nu-SVM使用nu而不是C. nu大致是将作为支持向量的训练点的百分比。支持向量越多,边际越宽,将被错误分类的训练点越多。 nu范围从0.1到0.8 - 在0.1大约10%的训练点将是支持向量,在0.8,更像是80%。我粗略地说,因为它只是这样相关 - 它不是确切的。

epsilon-SVR和nu-SVR使用SVM进行回归。与其通过查找最大裕度超平面进行二元分类,而是使用该概念来查找最适合数据的超音波,以便用它来预测未来的模型。它们在参数化方式上有所不同(如nu-SVM和C-SVM不同)。

一类SVM是新颖性检测。而不是二元分类或预测值,而是给SVM一个训练集,它试图训练一个模型来环绕这个集合,以便将来的实例可以被分类为类的一部分或类之外(小说或离群值)。

相关问题