SVM:如何计算点到边距的距离?

时间:2015-07-17 10:18:09

标签: opencv math machine-learning svm

你好我实际上正在开发一个使用opencv进行特征提取和svm的CBIR。

我的问题是:我使用带有RBF内核的ONE_CLASS分类器。我使用opencvSVM的函数预测,最后一个参数为true(意味着如果分类是二进制的,那么它会将符号的距离返回到边距),以便对我的数据进行分类。

但即使这些参数设置为true,它也只返回标签(因此在我的情况下不是很有用)。

所以我的问题是:什么是计算数据到marge的距离的公式(知道向量支持)?

谢谢

1 个答案:

答案 0 :(得分:0)

通常,距分离超平面的距离与SVM用于分类的完全相同。换句话说,分类方程只是您要求的签名距离符号

鉴于你的内核K,支持向量SV_i和alpha系数alpha_i(拉格朗日乘数)和阈值(偏差)b这个等式很简单,给定标签相关联每个支持向量y_i

sgn_dist(x) = SUM_i alpha_i y_i K(x, SV_i) - b

这是签名距离,所以当你处于正面时会获得正值,否则你会得到正值,如果你想要一个" true"距离(无标签)只需按标签划分或取绝对值

dist(x) = |sgn_dist(x)| = |SUM_i alpha_i y_i K(x, SV_i) - b|