Как GridSearchCV вычисляет результаты обучения?
Мне трудно разобраться с параметром return_train_score
в GridSearchCV
, Из документов:
return_train_score
: булево, необязательноЕсли
False
,cv_results_
Атрибут не будет включать в себя результаты обучения.
Мой вопрос: каковы результаты обучения?
В следующем коде я делю данные на десять стратифицированных сгибов. Как следствие grid.cv_results_
содержит десять тестов, а именно 'split0_test_score'
, 'split1_test_score'
,..., 'split9_test_score'
, Я знаю, что каждый из них - это показатель успеха, полученный классификатором 5 ближайших соседей, который использует соответствующий фолд для тестирования и оставшиеся 9 фолдов для обучения.
grid.cv_results_
также содержит десять баллов: 'split0_train_score'
, 'split1_train_score'
,..., 'split9_train_score'
, Как рассчитываются эти значения?
from sklearn import datasets
from sklearn.model_selection import GridSearchCV
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import StratifiedKFold
X, y = datasets.load_iris(True)
skf = StratifiedKFold(n_splits=10, random_state=0)
knn = KNeighborsClassifier()
grid = GridSearchCV(estimator=knn,
cv=skf,
param_grid={'n_neighbors': [5]},
return_train_score=True)
grid.fit(X, y)
print('Mean test score: {}'.format(grid.cv_results_['mean_test_score']))
print('Mean train score: {}'.format(grid.cv_results_['mean_train_score']))
#Mean test score: [ 0.96666667]
#Mean train score: [ 0.96888889]
2 ответа
Это оценка поезда модели предсказания во всех сгибах, кроме той, на которой вы тестируете. В вашем случае это оценка за 9 сгибов, на которых вы тренировали модель.
Возможно, мой другой ответ даст вам четкое представление о работе в grid-поиске.
По сути, результаты обучения - это оценка модели по тем же данным, на которых она тренировалась.
В каждом кратном разделении данные будут разделены на две части: тренировка и тестирование. Данные поезда будут использоваться для соответствия () внутреннему оценщику, а данные теста будут использоваться для проверки производительности этого. Тренировочный балл - это просто проверка того, насколько хорошо модель соответствует тренировочным данным.