Как 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-поиске.

По сути, результаты обучения - это оценка модели по тем же данным, на которых она тренировалась.

В каждом кратном разделении данные будут разделены на две части: тренировка и тестирование. Данные поезда будут использоваться для соответствия () внутреннему оценщику, а данные теста будут использоваться для проверки производительности этого. Тренировочный балл - это просто проверка того, насколько хорошо модель соответствует тренировочным данным.

Другие вопросы по тегам