【问题标题】:What is the OpenCV svm type parameterOpenCV svm 类型参数是什么
【发布时间】:2012-05-10 06:14:28
【问题描述】:

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

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

有人知道这些不同的值代表什么吗?

【问题讨论】:

    标签: opencv machine-learning svm


    【解决方案1】:

    它们是 SVM 的不同表述。 SVM 的核心是一个数学优化问题。这个问题可以用不同的方式来表述。

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

    nu-SVM 使用 nu 代替 C。nu 大约是训练点的百分比,最终将作为支持向量。支持向量越多,margin 越大,错误分类的训练点就越多。 nu 范围从 0.1 到 0.8 - 在 0.1 时,大约 10% 的训练点将是支持向量,在 0.8 时,更像是 80%。我说粗略是因为它只是以这种方式相关 - 它并不精确。

    epsilon-SVR 和 nu-SVR 使用 SVM 进行回归。不是通过找到最大边距超平面来进行二元分类,而是使用该概念来找到最适合数据的超管,以便用它来预测未来的模型。它们的参数化方式不同(如 nu-SVM 和 C-SVM 不同)。

    One-Class SVM 是新颖性检测。不是二元分类或预测一个值,而是给 SVM 一个训练集,它会尝试训练一个模型来环绕该集,以便将来的实例可以分类为类的一部分或类外(新颖或异常值)。

    【讨论】:

      【解决方案2】:

      一般:

      • 分类 SVM 类型 1(也称为 C-SVM 分类)
      • 分类 SVM 类型 2(也称为 nu-SVM 分类)
      • 回归 SVM 类型 1(也称为 epsilon-SVM 回归)
      • 回归 SVM 类型 2(也称为 nu-SVM 回归)

      详情可见页面SVM

      【讨论】:

        猜你喜欢
        • 2013-05-22
        • 2018-08-04
        • 2018-10-01
        • 2018-10-20
        • 2012-06-29
        • 2016-02-27
        • 2014-03-22
        • 2015-09-19
        相关资源
        最近更新 更多