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

使用sklearn Pipeline完成数据转换后如何单独获取X_train、y_train

问题解答

你当前的场景下不需要从dta中拆分特征和标签,原因和操作方法如下:

  • 你当前定义的Pipeline仅包含StandardScaler特征预处理组件,这类组件仅会对输入的特征矩阵X做转换,不会修改标签y。调用pipe.fit_transform(X_train, y_train)返回的dta本身就是经过标准化处理后的X_train。
  • 对应的y_train没有被Pipeline做任何修改,直接使用train_test_split拆分得到的y_train变量即可。

你可以用以下代码直接获取对应内容:

# 取转换后的X_train
transformed_X_train = dta
# 取对应的y_train
matched_y_train = y_train

# 验证维度是否匹配
print(f"转换后X_train维度:{transformed_X_train.shape}")
print(f"对应y_train维度:{matched_y_train.shape}")

补充说明

如果你的Pipeline后续加入了多步预处理,想要单独获取某一步的转换结果,可以通过调用指定步骤的transform方法实现:

# 按步骤名获取指定预处理步骤的转换结果,示例中你的StandardScaler步骤名为clf
transformed_X = pipe.named_steps['clf'].transform(X_train)

sklearn的原生Pipeline默认仅会对特征X做链路转换,标签y仅会在训练时传入给需要的组件使用,不会做任何修改,因此不需要从转换结果中拆分y。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:57:05