你好我实际上正在开发一个使用opencv进行特征提取和svm的CBIR。
我的问题是:我使用带有RBF内核的ONE_CLASS分类器。我使用opencvSVM的函数预测,最后一个参数为true(意味着如果分类是二进制的,那么它会将符号的距离返回到边距),以便对我的数据进行分类。
但即使这些参数设置为true,它也只返回标签(因此在我的情况下不是很有用)。
所以我的问题是:什么是计算数据到marge的距离的公式(知道向量支持)?
谢谢
答案 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|