小编典典

预测sklearn中的训练数据

python

我像这样使用scikit-learn的SVM:

clf = svm.SVC()
clf.fit(td_X, td_y)

我的问题是,当我使用分类器预测训练集成员的班级时,即使在scikit-
learns实现中,分类器也可能是错误的。(例如clf.predict(td_X[a])==td_Y[a]


阅读 174

收藏
2021-01-20

共1个答案

小编典典

是的,可以运行以下代码,例如:

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%的训练数据被错误分类。部分原因是,即使默认内核是'rbf'(理论上也应该能够对任何训练数据集进行完美分类,只要您没有两个带有不同标签的相同训练点),也可以进行正则化以减少过度拟合。默认的正则化器为C=1.0

如果您运行与上述相同的代码,但切换clf = svm.SVC()clf = svm.SVC(C=200000),则精度为0.94。

2021-01-20