1

我正在尝试使用 GridSearch 找到最佳参数,然后还使用最佳参数找出支持向量。

这是代码:

tuned_parameters = [{'kernel': ['linear'], 'C': [0.00001,0.0001,0.001,0.1,1, 10, 100, 1000],
                     'decision_function_shape':["ovo"]}]
clf = GridSearchCV(SVC(), tuned_parameters, cv=5)
clf.fit(X, Y)
print("Best parameters set found on development set:")
print()
print(clf.best_params_)
# Predicting on the unseen test data
predicted_test = clf.predict(X_test)

# Calculating Accuracy on test data
accuracy_test=accuracy_score(Yt, predicted_test)
support_vec=clf.support_vectors_
print(support_vec)

错误:

 AttributeError: 'GridSearchCV' object has no attribute 'support_vectors_'

sklearn 0.21.2

如何解决这个问题?

4

1 回答 1

2

那是因为GridSearchCV is not SVC,而是它包含一个SVC对象。这就是它没有support_vectors_属性并引发错误的原因。

要访问SVCinside GridSearchCV,请使用其best_estimator_属性。所以而不是

clf.support_vectors_

称呼:

clf.best_estimator_.support_vectors_

为了安全起见,refit=True在实例化时包含GridSearchCV.

于 2019-10-02T06:56:39.187 回答