程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用`GridSearchCV`来测试从管道中完全删除一个步骤的效果吗?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决使用`GridSearchCV`来测试从管道中完全删除一个步骤的效果吗??

开发过程中遇到使用`GridSearchCV`来测试从管道中完全删除一个步骤的效果吗?的问题如何解决?下面主要结合日常开发的经验,给出你关于使用`GridSearchCV`来测试从管道中完全删除一个步骤的效果吗?的解决方法建议,希望对你解决使用`GridSearchCV`来测试从管道中完全删除一个步骤的效果吗?有所启发或帮助;

假设我正在使用 gridsearchcv 来搜索超参数,并且我也在使用 Pipeline,因为我(认为我)想要预处理我的数据:

param_grID = {
    'svc__gAMMa': np.linspace(0.2,1,5)
}

pipeline = Pipeline(steps=[('scaler',StandardScaler()),('svc',SVC())])

search = gridsearchcv(pipeline,param_grID,cv=10)
search.fit(Train_x,Train_y)

有没有办法测试我的假设,即包含 scaler 步骤实际上是有帮助的(不仅仅是删除它并重新运行它)?

即,有没有办法写:

param_grID = {
    'svc__gAMMa': np.linspace(0.2,5),'scaler': [On,Off]
}

或者我应该有什么不同的方法来解决这个问题?

解决方法

您可以像这样将 passthrough 传递给您的 param_grid 来实现:

param_grid = {
    'svc__gAMMa': np.linspace(0.2,1,5),'scaler': ['passthrough',StandardScaler()]
}

如sklearn pipelines docs

个别步骤也可以作为参数替换,非最终步骤可以通过将它们设置为“passthrough”来忽略:

>>> from sklearn.pipeline import Pipeline
>>> from sklearn.svm import SVC
>>> from sklearn.decomposition import PCA
>>> from sklearn.linear_model import LogisticRegression
>>> estimators = [('reduce_dim',PCA()),('clf',SVC())]
>>> pipe = Pipeline(estimators)
>>> param_grid = Dict(reduce_dim=['passthrough',PCA(5),PCA(10)],...                   clf=[SVC(),LogisticRegression()],...                   clf__C=[0.1,10,100])
>>> grid_search = GridSearchCV(pipe,param_grid=param_grid)

大佬总结

以上是大佬教程为你收集整理的使用`GridSearchCV`来测试从管道中完全删除一个步骤的效果吗?全部内容,希望文章能够帮你解决使用`GridSearchCV`来测试从管道中完全删除一个步骤的效果吗?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。