0
训练数据我用scikit学习的SVM像这样:预测在sklearn
clf = svm.SVC()
clf.fit(td_X, td_y)
我的问题是,当我使用的分类预测类的训练集的成员,可以在分类永远是错的即使在scikit-learns的实施中。 (如:clf.predict(td_X[a])==td_Y[a]
)
训练数据我用scikit学习的SVM像这样:预测在sklearn
clf = svm.SVC()
clf.fit(td_X, td_y)
我的问题是,当我使用的分类预测类的训练集的成员,可以在分类永远是错的即使在scikit-learns的实施中。 (如:clf.predict(td_X[a])==td_Y[a]
)
是绝对,例如运行此代码:
from sklearn import svm
import numpy as np
clf = svm.SVC()
np.random.seed(seed=42)
x=np.random.normal(loc=0.0, scale=1.0, size=[100,2])
y=np.random.randint(2,size=100)
clf.fit(x,y)
print(clf.score(x,y))
的分数是0.61,所以近40%的训练数据的missclassified。部分原因是即使默认内核是'rbf'
(理论上它应该能够完美地分类任何训练数据集,只要你没有两个具有不同标签的相同训练点),也有正则化减少过度配合。默认正规化器是C=1.0
。
如果您运行与上面相同的代码,但将clf = svm.SVC()
切换为clf = svm.SVC(C=200000)
,则您将获得0.94的准确度。