【发布时间】:2021-09-30 23:05:37
【问题描述】:
我正在使用管道进行网格搜索。管道的一部分是我在管道中进行的特征选择,因此它应用于特定的 CV 折叠而不是完整数据。
管道:
clf = Pipeline([
('low_variance', VarianceThreshold(threshold=0)),
('feature_importance',
SelectMaxFeaturesFromModel(RandomForestClassifier(), threshold='0.75*median')),
('classification', xgb)
])
然后在网格搜索中使用此管道。
我的问题是内部如何处理?管道是否只是为每次迭代的每个 CV 折叠完全重新运行?我问是因为实际上的输出是恒定的,因为每个 CV 折叠对于每次迭代都将具有完全相同的输出。例如,在 k 倍 CV 的情况下,恰好有 k 个不同的输出。 (考虑到随机森林的使用,输出甚至可能不是恒定的,而是恒定的 = 每次折叠的相同特征是人们想要的)
因此,与其将运行次数与迭代次数一样多,1 次预先计算的运行就足够了。有这样的功能吗?还是我需要创建自己的选择器?这样的选择器如何知道当前正在运行哪个 CV-fold?
更新:
也许这只是RTFM?
文档没有清楚地解释它为每个 CV 折叠缓存一个实例,但我认为是这种情况?
【问题讨论】:
-
您能否提供完整或更多的 GridSearch 部分代码?