Python 如何使用优化的参数

Python 如何使用优化的参数,python,machine-learning,scikit-learn,cross-validation,grid-search,Python,Machine Learning,Scikit Learn,Cross Validation,Grid Search,我正在使用GridSearchCV识别最佳参数,但我不确定如何实际使用最佳参数,即在下面的代码中,在第三行中,我的结果在更改第一行后不会改变(例如,如果我更改参数空间,或用精度替换召回等) 是否有办法确保无论在GridSearchCV中确定了什么样的最佳参数,只要我调用cv.predict,实际上都会使用这些参数?从文档中可以看出: predict(x)调用predict对具有最佳发现参数的估计器进行预测 基本上,在拟合之后,调用predict使用最优估计器。如果要再次检查参数,可以在拟合后查看

我正在使用
GridSearchCV
识别最佳参数,但我不确定如何实际使用最佳参数,即在下面的代码中,在第三行中,我的结果在更改第一行后不会改变(例如,如果我更改参数空间,或用精度替换召回等)

是否有办法确保无论在
GridSearchCV
中确定了什么样的最佳参数,只要我调用
cv.predict
,实际上都会使用这些参数?

从文档中可以看出:

predict(x)
调用predict对具有最佳发现参数的估计器进行预测

基本上,在拟合之后,调用predict使用最优估计器。如果要再次检查参数,可以在拟合后查看最佳参数是否存储在class属性
best\u params\ucode>中


至于为什么更改第一行后结果没有变化,我想这是巧合,是相同的最佳参数:或者有多个最佳参数。

GridSearchCV
已经默认执行了您想要的操作,除非您设置
refit=False
。如
GridSearchCV
所述:

refit:boolean或string,默认值=True
使用整个数据集上的最佳参数重新调整估计器

对于多指标评估,这需要是一个字符串,表示记分器用于找到最佳参数,以便在最后重新调整估计器

重新调整的估计器可在
最佳估计器
属性中使用,并且允许在此
GridSearchCV
实例上直接使用
预测

同样对于多指标评估,属性
最佳索引
最佳评分
最佳参数
只有在设置了refit时才可用,并且所有属性都将由该特定评分员确定

有关多指标评估的更多信息,请参见评分参数

因此,每当你调用
cv.predict
时,经过重新调整的最佳估计器就会做出预测


在你的情况下,结果是一样的,可能是因为最好的估计器在所有指标上得分最高。啊,我明白了,谢谢你,我会用一系列不同的参数再次检查。我明白了,这是有道理的。这可能是,我将测试一些额外的指标。感谢您不确定为什么在第三行中使用
cross\u val\u predict
,而不是预期的
cv.predict
。。。
cv = GridSearchCV(pipeline, parameters, cv=len(range(2014,2019)), scoring='recall', refit=True)
cv.fit(X,y)
y_pred = cross_val_predict(cv, X, y, cv=len(range(2014,2019)))