首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >流水线和GridSearch -流水线完全重新计算?

流水线和GridSearch -流水线完全重新计算?
EN

Stack Overflow用户
提问于 2021-09-30 08:04:39
回答 1查看 31关注 0票数 0

我在用管道做网格搜索。流水线的一部分是特征选择,这是我在流水线中做的,所以它被应用于特定的CV-fold,而不是整个数据。

管道:

代码语言:javascript
复制
clf = Pipeline([
    ('low_variance', VarianceThreshold(threshold=0)),
    ('feature_importance', 
        SelectMaxFeaturesFromModel(RandomForestClassifier(), threshold='0.75*median')),
    ('classification', xgb)
])

然后在网格搜索中使用这条管线线。

我的问题是这是如何在内部处理的?流水线是不是在每次迭代中完全重新运行每一个CV-fold?我之所以问这个问题,是因为现实中的输出是恒定的,因为每个CV-fold在每次迭代中都会有完全相同的输出。例如,在k倍CV的情况下,恰好有k个不同的输出。(考虑到随机森林的使用,输出可能甚至不是恒定的,但恒定=每个折叠的相同特征是人们想要的)

因此,不是像迭代一样多次运行这个程序,只需预计算一次就足够了。这样的功能是否存在?或者我需要创建自己的选择器?这样的选择器如何知道当前运行的是哪个CV-fold?

更新:

也许这只是RTFM

文档没有清楚地解释它为每个CV-fold缓存一个实例,但我假设是这样的?

EN

回答 1

Stack Overflow用户

发布于 2021-09-30 15:05:38

对于最初的问题,是的,对于每个超参数和折叠的组合,每个管道步骤都将重新计算。

对于更新,是的,你可以缓存管道步骤来防止这种情况(尽管这样你就有了从文件中写入/读取的成本,所以这应该只针对昂贵的转换器)。在User Guide中可以更好地描述它是如何工作的

如果参数和输入数据相同,则使用缓存而不是重新调整

因此,是的,每个cv-fold都有单独缓存,但如果不搜索Transformer超参数,就不会有每个超参数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69388476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档