Доступ к промежуточному (и окончательному) преобразованию модели GridSearch - PullRequest
0 голосов
/ 08 ноября 2018

Скажите, у меня есть конвейер sklearn:

A(X) -> B(A(X)) -> C(B(A(X)))

grid_search = GridSearchCV(pipeline, param_grid)

Я запускаю gridsearch по гиперпараметрам, чтобы найти лучшую модель. Есть ли встроенная функциональность для вывода промежуточных и финальных этапов модели? Я полагаю, что мог бы повторно запустить конвейер с найденными лучшими параметрами для тех же данных и результатов каждого шага, но, возможно, это уже существует, как что-то вроде:

grid_search.best_params.X_output_()

или

grid_search.step_A.output_()

Моя конечная цель - представить, как обнаруженные наилучшие параметры влияют на входные данные X на каждом шаге преобразования.

1 Ответ

0 голосов
/ 08 ноября 2018

Вероятно, вам нужно cv_results_:


Пример игрушки:

from sklearn import svm, datasets
from sklearn.model_selection import GridSearchCV

iris = datasets.load_iris()
parameters = {'kernel':('linear', 'rbf'), 'C':[1, 10]}
svc = svm.SVC()
clf = GridSearchCV(svc, parameters)
clf.fit(iris.data, iris.target)


clf.cv_results_

Вы можете получить доступ к следующей информации:

sorted(clf.cv_results_.keys())

['mean_fit_time', 'mean_score_time', 'mean_test_score', 'mean_train_score', 'param_C', 'param_kernel', 'params', 'rank_test_score', 'split0_test_score', 'split0_train_score', split1_test_score, split1_train_score, split2_test_score, 'split2_train_score', 'std_fit_time', 'std_score_time', 'std_test_score', 'std_train_score']

...