我在编写以下代码块时参考了以下博客文章 https://prateekvjoshi.com/2015/12/15/how-to-compute-confidence-measure-for-svm-classifiers/,并得到了以下结果。我的目的是找出在Scikit-learn的SVM中的SVC中一个点到3个类别的距离,但我对描述的含义感到困惑,有没有解决方案。
import numpy as npfrom sklearn.svm import SVCx = np.array([[1,2],[2,3],[3,4],[1,4],[1,5],[2,4],[2,6]])y = np.array([0,1,-1,-1,1,1,0])classifier = SVC(kernel='linear')classifier.fit(x,y)classifier.decision_function([2,1])
最后的调用给出了大小为3的数组的以下输出
array([[ -8.88178420e-16, -1.40000000e+00, -1.00000000e+00]])
这个数组的含义是什么,我们如何使用这个数组来找出特定数据点与三个类别(-1,1,0)中的哪一个相关联。
回答:
这是点 [2,1]
到SVM分类器的分离超平面的距离。因此,第一个值是 [2,1]
到分离第一个类别的超平面的距离,以此类推。你可以在这里查看函数的实现 这里,并在这里阅读文档 这里 以获取更多信息。
编辑:你也可以查看 这个例子。