Я выполнил GridSearchCV
на модели прогнозирования с заданным значением точности.X
и Y
- это тестовые сплиты.
from sklearn.model_selection import GridSearchCV
from sklearn.metrics import classification_report
from sklearn.svm import SVC
tuned_parameters = [{'kernel': ['rbf'], 'gamma': [1e-3, 1e-4],
'C': [10, 100, 1000]}]
print("Tuning hyperparameters for accuracy")
clf_gs = GridSearchCV(SVC(), tuned_parameters, cv=5,
scoring = 'accuracy')
clf_gs.fit(X, Y)
print(clf_gs.best_params_)
print("Grid scores on development set:")
means = clf_gs.cv_results_['mean_test_score']
stds = clf_gs.cv_results_['std_test_score']
for mean, std, params in zip(means, stds, clf_gs.cv_results_['params']):
print("%0.3f (+/-%0.03f) for %r"
% (mean, std * 2, params))
print("The scores are computed on the full evaluation set.")
y_true, y_pred = Y, clf_gs.predict(X)
print(classification_report(y_true, y_pred))
Я получил оценки сетки, так как
Tuning hyperparameters for accuracy
{'C': 1000, 'gamma': 0.001, 'kernel': 'rbf'}
Grid scores on development set:
0.994 (+/-0.000) for {'C': 10, 'gamma': 0.001, 'kernel': 'rbf'}
0.986 (+/-0.000) for {'C': 10, 'gamma': 0.0001, 'kernel': 'rbf'}
0.995 (+/-0.001) for {'C': 100, 'gamma': 0.001, 'kernel': 'rbf'}
0.988 (+/-0.000) for {'C': 100, 'gamma': 0.0001, 'kernel': 'rbf'}
0.995 (+/-0.001) for {'C': 1000, 'gamma': 0.001, 'kernel': 'rbf'}
0.994 (+/-0.001) for {'C': 1000, 'gamma': 0.0001, 'kernel': 'rbf'}
The scores are computed on the full evaluation set.
precision recall f1-score support
0 1.00 1.00 1.00 67343
3 0.88 0.78 0.83 995
accuracy 1.00 68338
macro avg 0.94 0.89 0.91 68338
weighted avg 1.00 1.00 1.00 68338
sklearn.metrics.GridSearchCV.score
говорит, что возвращает оценку заданных данных.Это оценка точности модели прогнозирования или другая оценка, связанная с GridSearchCV
?Я просто сбит с толку, так как набрал здесь более 99% баллов, когда у меня только точность ниже 90% со значениями параметров, установленными по умолчанию с использованием SVC
, и я не ожидал увидеть такое значительное улучшение.