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

如何用Sklearn Pipeline简化含StandardScaler、PolynomialFeatures的回归流程

使用sklearn Pipeline简化建模流程实现方案

核心逻辑

Pipeline 可以将多个数据处理、特征工程、模型训练步骤按执行顺序串联封装,无需手动多次调用fit和transform,同时能保证训练集和测试集的预处理逻辑严格一致,避免数据泄露问题。

具体实现

首先导入Pipeline依赖:

from sklearn.pipeline import Pipeline

替换原有逻辑的完整代码如下:

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler, PolynomialFeatures
from sklearn.linear_model import Ridge
from sklearn.metrics import r2_score

# 数据集拆分逻辑保持不变
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33) 

# 按顺序定义处理流,每个步骤格式为(自定义步骤名, 实例化处理对象)
pipe = Pipeline(steps=[
    ('scaler', StandardScaler()), # 第一步:数据标准化
    ('poly', PolynomialFeatures(degree=3, include_bias=False)), # 第二步:生成多项式特征
    ('ridge', Ridge(alpha=alpha)) # 第三步:带正则化的岭回归模型
])

# 一次性完成所有预处理步骤+模型训练,仅需调用一次fit
pipe.fit(X_train, y_train)

# 直接调用predict即可自动完成数据预处理+预测,无需手动转换
r2_train = r2_score(y_train, pipe.predict(X_train))
r2_test = r2_score(y_test, pipe.predict(X_test))

补充说明

  • 步骤的传入顺序必须和原有业务逻辑一致,Pipeline会严格按照steps的传入顺序依次执行处理
  • 如果需要单独获取某个步骤的参数/输出,可以用pipe.named_steps['步骤名']调用,比如查看训练好的岭回归系数:pipe.named_steps['ridge'].coef_
  • 后续做超参数调优时,可直接和GridSearchCV结合,对Pipeline内不同步骤的参数联合搜索,参数命名格式为步骤名__参数名,比如同时搜索多项式阶数和正则化系数:param_grid = {'poly__degree':[2,3], 'ridge__alpha':[0.1,1,10]}

内容的提问来源于stack exchange,提问作者8-Bit Borges

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 02:15:02