You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

sklearn使用make_pipeline触发Last step of Pipeline should implement fit错误如何解决

sklearn pipeline构建报错解决方案

问题原因

你混淆了sklearn.pipeline下两个API的使用规则:

  • Pipeline类的构造参数是由(步骤名, 估计器)元组组成的列表,支持自定义每个步骤的名称
  • make_pipeline是Pipeline的简化工厂函数,入参直接按顺序传入各个估计器对象即可,会自动以小写类名的形式为每个步骤生成默认名称,不接受列表作为入参

你给make_pipeline传入了整个列表,函数会把这个列表识别为pipeline的第一个(也是唯一一个)步骤,而列表本身没有实现fit方法,所以触发类型报错。

修复方案

有两种正确写法可选:

方案1:继续使用make_pipeline(不需要自定义步骤名时推荐)

直接按顺序传入两个估计器对象即可:

from sklearn.linear_model import Lasso
from sklearn.preprocessing import PolynomialFeatures
from sklearn.pipeline import make_pipeline

pipeline = make_pipeline(
    PolynomialFeatures(include_bias=False),
    Lasso(fit_intercept=True, max_iter=1000)
)

这种写法生成的步骤默认名称为polynomialfeatures和lasso。

方案2:改用Pipeline类(需要自定义步骤名时使用)

如果需要保留你自定义的步骤名,把make_pipeline替换为Pipeline即可:

from sklearn.linear_model import Lasso
from sklearn.preprocessing import PolynomialFeatures
from sklearn.pipeline import Pipeline

pipeline = Pipeline([
    ('PolynomialFeatures', PolynomialFeatures(include_bias=False)),
    ('Lasso', Lasso(fit_intercept=True, max_iter=1000))
])

内容的提问来源于stack exchange,提问作者Boom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 07:57:01