Какое значение возвращается в результатах поиска в таблице? - PullRequest
0 голосов
/ 26 мая 2019

Я выполнил 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, и я не ожидал увидеть такое значительное улучшение.

1 Ответ

0 голосов
/ 26 мая 2019

Да, согласно этой строке кода:

clf_gs = GridSearchCV(SVC(), tuned_parameters, cv=5,
               scoring = 'accuracy')

, ваш показатель выигрыша accuracy.

Разница между CV / eval баллами происходит из набора данных: CV обучается и тестируется на 5-кратных наборах перекрестной проверки, которые являются подмножествами ваших тренировочных данных. Напротив, eval обучается на всех данных обучения и проверяется на данных испытаний, которые не зависят от вашего тренировочного набора.

Вы можете зайти в Google 'k-кратная проверка перекрестной проверки' , чтобы увидеть более подробную информацию об основных алгоритмах.

...