Python 2.7 在Scikitlearn'中获取决策函数的输出意味着什么;s SVM,当使用3类时

Python 2.7 在Scikitlearn'中获取决策函数的输出意味着什么;s SVM,当使用3类时,python-2.7,machine-learning,scikit-learn,svm,Python 2.7,Machine Learning,Scikit Learn,Svm,在执行以下代码块时,我参考了以下博客文章,并获得了以下结果。我的意图是在Scikit learn中的SVM SVC中找出3个类中一个点的距离,但我对所描述的含义感到困惑,是否有任何解决方案 import numpy as np from sklearn.svm import SVC x = 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(k

在执行以下代码块时,我参考了以下博客文章,并获得了以下结果。我的意图是在Scikit learn中的SVM SVC中找出3个类中一个点的距离,但我对所描述的含义感到困惑,是否有任何解决方案

import numpy as np
from sklearn.svm import SVC
x = 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]
与分隔第一类的超平面的距离,依此类推。您可以查看函数的实现,并阅读文档了解更多信息


编辑:您也可以查看。

@Mohammad Kashif,您能进一步阐述3个值的响应吗进一步说,我很困惑,第一个值是比较(-1,0)类,第二个是(0,1),第三个是(1,-1)是这样还是其他方式…@Amutheezasivagnanam基本上是点
[2,1]
与1类超平面的垂直距离,然后是点
[2,1]
与0类超平面的垂直距离,最后是点
[2,1]的垂直距离
来自类1的超平面。@Mohammad Kashif,在我的任务中,需要预测它属于哪一个类,这对3个类是可能的,并且使用决策距离,顺便说一句,我调整以获得rbf核中的模型,该模型表示它给出了相对距离。因为当我尝试使用决策函数而不是预测或预测概率时,它给出了非常低的fscore和平均值“第一个值是[2,1]到分隔第一类的超平面的距离”。我开始详细阐述这个主题,并解释列实际上包含一对类的相对位置(而不是一个超平面)。这与以下事实一致:对于4个类,返回的数组有6列(根据文档,为4x3/2),这是类的唯一成对组合数。因此在OP的情况下,第一列包含相对于类1和类2对的度量。