我想打印来自我的 GridSearchCV
对象的最佳模型的训练和测试得分。我最初的想法是使用 cv_results['best_train_score']
和 cv_results['best_test_score']
,但在查看了文档后,我认为 cv_results
中并没有 ‘best_train_score’ 这个字段。
我还注意到有一个 best_estimator_
,但我不确定是否可以用它来打印测试和训练得分。任何帮助都将不胜感激。
回答:
您可以使用已拟合的 GridSearchCV
的 best_estimator_
来获取最佳模型,然后使用估算器的 score
函数来计算训练和测试的准确率。
如下所示:
from sklearn import svm, datasetsfrom sklearn.model_selection import GridSearchCV, train_test_splitiris = datasets.load_iris()X_train, X_test, y_train, y_test = train_test_split( iris.data, iris.target, test_size=0.2)parameters = {"kernel": ("linear", "rbf"), "C": [1, 10]}svc = svm.SVC()cv = GridSearchCV(svc, parameters)cv.fit(iris.data, iris.target)model = cv.best_estimator_print(f"train score: {model.score(X_train, y_train)}")print(f"test score: {model.score(X_test, y_test)}")
输出:
train score: 0.9916666666666667test score: 1.0