栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将sklearn的GridSearchCV与管道一起使用,只需预处理一次

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将sklearn的GridSearchCV与管道一起使用,只需预处理一次

更新
:理想情况下,不应使用以下答案,因为它会导致数据泄漏,如注释中所述。在此答案中,

GridSearchCV
将对已经由预处理的数据上的超参数进行调整
StandardScaler
,这是不正确的。在大多数情况下,这无关紧要,但是对缩放过于敏感的算法将给出错误的结果。


本质上,GridSearchCV还是一个估计器,实现管道使用的fit()和predict()方法。

所以代替:

grid = GridSearchCV(make_pipeline(StandardScaler(), LogisticRegression()),         param_grid={'logisticregression__C': [0.1, 10.]},         cv=2,         refit=False)

做这个:

clf = make_pipeline(StandardScaler(),          GridSearchCV(LogisticRegression(),param_grid={'logisticregression__C': [0.1, 10.]},cv=2,refit=True))clf.fit()clf.predict()

它将要做的是,仅一次调用StandardScalar(),一次调用,

clf.fit()
而不是您所描述的多次调用。

编辑:

True
当在管道内使用GridSearchCV时,将refit更改为。如文档中所述:

refit:boolean,default = True用整个数据集重新拟合最佳估计量。如果为“
False”,则拟合后将无法使用此GridSearchCV实例进行预测。

如果refit =
False,

clf.fit()
将不起作用,因为管道内部的GridSearchCV对象将在之后重新初始化
fit()
。到时
refit=True
,将对GridSearchCV重新拟合传入的整个数据的最佳评分参数组合
fit()

因此,如果要建立管道,仅查看网格搜索的分数,则只有

refit=False
合适。如果要调用该
clf.predict()
方法,则
refit=True
必须使用,否则将引发“未拟合”错误。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/610980.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号