我正在使用scikit-learn的LinearSVC SVM实现,并且我正在尝试理解多类预测。看着coef_和intercept_我可以得到超平面权重。例如,关于我的学习问题,我有两个功能和四个标签
f0 = 1.99861379*x1 - 0.09489263*x2 + 0.89433196
f1 = -2.04309715*x1 - 3.51285420*x2 - 3.1206355
f2 = 0.73536996*x1 + 2.52111207*x2 - 3.04176149
f3 = -0.56607817*x1 - 0.16981337*x2 - 0.92804815
当我使用decision_function方法时,我得到与上述函数对应的值。但是documentation说
样本的置信度得分是其签名距离 样本到超平面。
但是decision_function没有返回有符号的距离,它只返回f()。
更具体地说,我假设LinearSVC使用具有常数1特征的标准技巧来表示阈值。 (这可能是错误的。)对于我的示例问题,这给出了一个三维特征空间,其中实例的形式总是(1,x1,x2)。假设没有其他阈值项,算法学习在该三维空间中穿过原点的超平面w =(w0,w1,w2)。现在我得到一个预测点,称之为z =(1,a,b)。该点到超平面的符号距离(边距)是多少?它只是点(w,z)/ 2norm(w)。 LinearSVC代码返回点(w,z)
谢谢, 克里斯