我正在尝试使用scikit-learn
中的LinearSVC
对象进行以下简单分类。我试过同时使用0.10版和0.14版。使用代码:
from sklearn.svm import LinearSVC, SVC
from numpy import *
data = array([[ 1007., 1076.],
[ 1017., 1009.],
[ 2021., 2029.],
[ 2060., 2085.]])
groups = array([1, 1, 2, 2])
svc = LinearSVC()
svc.fit(data, groups)
svc.predict(data)
我得到输出:
array([2, 2, 2, 2])
但是,如果我用
svc = SVC(kernel='linear')
然后我得到结果
array([ 1., 1., 2., 2.])
这是正确的。有人知道为什么使用LinearSVC
会解决这个简单的问题吗?
作为
LinearSVC
基础的算法对其输入中的极值非常敏感:(警告是指LibLinear FAQ,因为scikit learn的
LinearSVC
基于该库。)在拟合之前,应先规格化:
相关问题 更多 >
编程相关推荐