你好,实际上我正在使用opencv开发CBIR用于特征提取和svm。
我的问题是:我正在使用一个带有RBF内核的ONE_CLASS分类器。我使用opencvSVM的函数预测,最后一个参数为true(意味着如果分类器是二进制的,那么它将带符号的距离返回到空白),以便对我的数据进行分类。
但是,即使这个参数被设置为true,它也只返回标签(所以在我的情况下不是很有帮助)。
所以我的问题是:计算数据到边缘的距离的方程是什么(知道向量支持)?
谢谢
一般来说,与分离超平面的距离与SVM用于分类的距离完全相同。换句话说,分类方程就是你要求的符号距离的一个符号。
给定内核K
,支持向量SV_i
和alpha系数alpha_i
(拉格朗日乘数)和阈值(偏差)b
,公式很简单,给定与每个支持向量y_i
相关的标签:
sgn_dist(x) = SUM_i alpha_i y_i K(x, SV_i) - b
这是有符号的距离,所以当它在正的一边时,你得到的是正的,否则是负的,如果你想要一个"真"距离(没有标签),只需除以标签或取绝对值
dist(x) = |sgn_dist(x)| = |SUM_i alpha_i y_i K(x, SV_i) - b|