Libsvm中的决策值

Tit*_*llo 1 matlab svm prediction libsvm

我是SVM的新手.我使用Libsvm for Matlab,在预测阶段后我得到了一个决策值数组.根据SVM理论:每个测试记录z被指定为正数if

F(z)的= 1

其中f(z)定义为

F(z)的=符号(W*Z + b)的

那么如何将实例z的数组的决策值与f(z)相关联?基于决策值的预测是这样的:如果dec_value> 0则z为正,否则z为负?

kar*_*enu 14

是的,你是对的,如果f(z)是正数,那么实例属于+1类,如果它的负数属于-1类.f(z)的值不可解释.

虽然功能:

f(z)=符号(w*z + b)

看起来像超平面的方程,它的不同之处在于w不是法向量 - 它的长度不是1,所以f(z)的值不是超平面的距离,这就是它被指定为符号的原因( ..),为了清楚起见,该值仅用于确定实例所在的超平面的哪一侧.

一些背景:

目标是找到超平面,它给出了两个类之间的最大余量:

在此输入图像描述

因此,目的是最大化边际,即 在此输入图像描述因此最小化 在此输入图像描述.请记住,通常当w用于表示超平面作为法向量时,这是不明确的,因为没有优化问题.而不是保持 = 1并改变边距的宽度,我们将边距的宽度固定为2并允许 改变大小而不是.

这给了我们原始的优化问题(带有软边距):

在此输入图像描述

这似乎就是你所指的.然而,这个等式来自基本的软最大边际分类器,它是SVM的基础.真正的SVM被公式化为拉格朗日对偶以允许使用内核.关于SVM的巧妙之处在于,当拉格朗日语中出现上述问题(及其约束)时,除了拉格朗日乘数之外的所有变量都会丢失,这给我们留下了以下问题:

在此输入图像描述

请注意,没有w.训练点x(y是标签,1或-1),现在只作为点积一起出现,允许我们使用核心技巧来获得非线性模型.

但是,如果我们没有w,我们的决策功能是什么?它成为我们支持向量和我们发现的拉格朗日乘数的函数.

在此输入图像描述

这就是libsvm生成的内容以及它作为您训练过的模型存储的内容.它存储支持向量和相关的alpha.对于线性SVM,您可以获得原始w,这在LibSVM FAQ中有解释,但它不会是您从LibSVM自动获取的内容,而这只能用于线性内核.

基于拉格朗日乘数和支持向量的SVM决策函数的值也应仅由其符号解释.