1
Amy 原创整理|资料核验:2026-10-30
scikit-learn的Pipeline文档说明,memory参数可缓存流水线中已经拟合的转换器;默认不启用缓存,最后一步无论是不是转换器都不会被缓存。
启用缓存还有一个容易忽略的变化:拟合前会克隆转换器。因此,最初传给Pipeline的那个外部对象,不应被当作流水线内部已拟合的对象来检查。官方建议通过named_steps或steps访问实际使用的估计器。
教学情境:先建一个缩放器变量,再把它放进启用memory的Pipeline。拟合完成后,应从流水线的对应命名步骤读取已学习参数,而不是只盯着原变量是否出现这些属性。
Amy建议:调试输出记录步骤名称、参数和读取对象的位置。缓存用于复用中间计算,不能由“开了缓存”推断最终模型步骤也免于重新计算;是否复用仍要结合实际调用条件判断。
官方来源:
https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.Pipeline.html