Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scikit learn sklean LinearSVC如何对边界上的测试用例进行分类?_Scikit Learn - Fatal编程技术网

Scikit learn sklean LinearSVC如何对边界上的测试用例进行分类?

Scikit learn sklean LinearSVC如何对边界上的测试用例进行分类?,scikit-learn,Scikit Learn,我刚做了个实验。我只提供了两个培训案例[0,1]和[1,0]。它们属于两个不同的类别。测试用例是[0,0],它位于决策边界上。分类器将其分配给类0。是否因为0类是第一类?这真的有意义吗 >>> X=numpy.array([[0,1],[1,0]]) >>> y=numpy.array([0,1]) >>> clf.fit_transform(X,y) array([[0, 1], [1, 0]]) >>>

我刚做了个实验。我只提供了两个培训案例[0,1]和[1,0]。它们属于两个不同的类别。测试用例是[0,0],它位于决策边界上。分类器将其分配给类0。是否因为0类是第一类?这真的有意义吗

>>> X=numpy.array([[0,1],[1,0]])
>>> y=numpy.array([0,1])
>>> clf.fit_transform(X,y)
array([[0, 1],
       [1, 0]])

>>> clf.predict(numpy.array([[0,0]]))
array([0])
>>> clf.decision_function(numpy.array([[0,0]]))
array([ 0.])
>>> clf.coef_
array([[ 0.66666667, -0.66666667]])
>>> clf.predict(numpy.array([[0,1]]))
array([0])
>>> clf.decision_function(numpy.array([[0,1]]))
array([-0.66666667])
>>> clf.intercept_
array([ 0.])
>>> clf.intercept_ > 0
array([False], dtype=bool)

就我个人而言,我会把你的实验作为这个问题的答案

决策边界上的点是不明确的。行为应该是什么?它应该预测两类中的一类吗?出错?阿南

通过您的实验,scikit learn预测
0
。我认为这意味着在一般情况下,它会选择第一个(按字典顺序)作为边界情况

如果边界情况对应用程序很重要,则必须编写特殊代码来检查decision函数是否精确为0,并执行不同的操作。像这样:

scores = clf.decision_function( X )
predictions = scores > 0
preidctions[ scores==0 ] = np.nan

谢谢你的解释