首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sklearn: pipeline transform()?

Sklearn: pipeline transform()?
EN

Stack Overflow用户
提问于 2017-08-02 12:00:31
回答 1查看 614关注 0票数 0

这是我的预处理列车数据的代码:

代码语言:javascript
复制
stock_pipeline = Pipeline([
    ('std_scaler', StandardScaler()),
])
train_pipelined_features_np = stock_pipeline.fit_transform(train_features_df)

在我训练之后,我即将对测试数据进行预处理。但奇怪的是,我必须使用stock_pipeline.fit_transform(test_features_df)stock_pipeline.transform(test_features_df)...

由于流水线只有StandardScaler(),所以我认为fit()不会做任何事情。所以我认为fit_transform()和‘transform()’会做同样的事情,但是结果是不同的……

有什么关系呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-02 12:19:09

让我们看看,有三个不同的东西:"fit","transform","fit_transform“。

当你拟合一些数据时,Scaler会“记住”它,所以如果你拟合火车-火车上的参数将被计算,如果你拟合测试-参数pn测试将被计算。

当你进行转换时,你会使用“记忆”参数。因此,通常您将模型拟合到训练数据上,并对其进行转换。然后用这些“记住的”参数转换测试数据。

使用fit_transform时,缩放器将学习选定数据的参数并对其进行转换。

所以回答你的问题:如果你使用fit_transform,Scaler将根据测试分布来缩放测试数据,它将不同于train;如果你使用transform,那么测试数据将被缩放为训练数据。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45451255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档