【发布时间】:2023-03-03 08:54:27
【问题描述】:
我不明白为什么我不能在 GridSearchCV 中使用不同的参数打印所有分数。
代码:
from sklearn.svm import SVC
pipe_svm = Pipeline([
('sc', StandardScaler()),
('SVM', SVC())
])
params_svm = {'SVM__C': np.logspace(-2, 10, 13),
'SVM__kernel': ['rbf', 'poly', 'sigmoid']}
search_svm = GridSearchCV(estimator=pipe_svm,
param_grid=params_svm,
cv = 5,
return_train_score=True)
search_svm.fit(X_train, y_train)
print(search_svm.best_score_)
print(search_svm.best_params_)
输出:
0.9004240532229588
{'SVM__C': 1.0, 'SVM__kernel': 'rbf'}
这很好,但我想用给定的参数打印所有不同的分数(与最好的比较)。以下是我尝试过的,缺少很多不同的参数组合与各自的分数。
代码:
scores_svm = search_svm.cv_results_['mean_test_score']
for score, C, kernel in zip(scores_svm, np.logspace(-2, 10, 13), ['rbf', 'poly', 'sigmoid']):
print(f"{C, kernel}: {score:.10f}")
输出:
0.01, rbf: 0.8500203678
0.1, poly: 0.6785667684
1.0, sigmoid: 0.8364788196
所需的输出将包括 np.logspace(-2, 10, 13) 中具有不同内核的所有 C 值并分配相应的分数。像这样的:
0.001, rbf: corresponding score
0.01, rbf: corresponding score
1.0, rbf: corresponding score
10.0, rbf: corresponding score
.
.
.
等等
【问题讨论】:
-
只需将
cv_results_加载到熊猫数据框中?
标签: python scikit-learn printf grid-search