GridSearchCV处理参数。它将训练多个估计器(但同一类(SVC或DecisionTreeClassifier或其他分类器之一),其参数组合与中指定的不同
param_grid。
best_estimator_是对数据表现最佳的估计器。
因此,本质上
best_estimator_是使用最佳找到的参数初始化的同一类对象。
因此,在基本设置中,您不能在网格搜索中使用多个估算器。
但是,作为一种解决方法,当使用管道中可以使用多个估算器时
"parameter",GridSearchCV可以在该管道中设置估算器。
像这样:
from sklearn.pipeline import Pipelinefrom sklearn.svm import SVCfrom sklearn.tree import DecisionTreeClassifierfrom sklearn.model_selection import GridSearchCVfrom sklearn.datasets import load_irisiris_data = load_iris()X, y = iris_data.data, iris_data.target# Just initialize the pipeline with any estimator you like pipe = Pipeline(steps=[('estimator', SVC())])# Add a dict of estimator and estimator related parameters in this listparams_grid = [{ 'estimator':[SVC()], 'estimator__C': [1, 10, 100, 1000], 'estimator__gamma': [0.001, 0.0001], }, { 'estimator': [DecisionTreeClassifier()], 'estimator__max_depth': [1,2,3,4,5], 'estimator__max_features': [None, "auto", "sqrt", "log2"], }, # {'estimator':[Any_other_estimator_you_want], # 'estimator__valid_param_of_your_estimator':[valid_values] ]grid = GridSearchCV(pipe, params_grid)您可以根据需要在列表中添加任意数量的字典
params_grid,但是请确保每个字典都具有与兼容的参数
'estimator'。



