说我有一个sklearn管道:
A(X) -> B(A(X)) -> C(B(A(X)))
grid_search = GridSearchCV(pipeline, param_grid)
我对超参数进行了网格搜索,以找到最佳模型。是否有内置功能可以输出模型的中间步骤和最终步骤?我想我可以使用在相同数据上发现的最佳参数和每个步骤的结果来重新运行管道,但是也许已经存在,例如:
grid_search.best_params.X_output_()
或
grid_search.step_A.output_()
我的最终目标是可视化发现的最佳参数在每个转换步骤如何影响输入数据X
。
答案 0 :(得分:0)
可能您需要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']