这是我预处理列车数据的代码:
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()`会做同样的事情。但结果彼此不同......
有什么区别?
答案 0 :(得分:0)
让我们看看,有三种不同的东西:" fit"," transform"," fit_transform"。
当你适应某些数据时,Scaler"记得"它,所以如果你适合火车 - 将计算列车上的参数,如果你适合测试 - 参数pn测试将被计算。
当你转型时,你会使用"记住"参数。所以通常你会在火车数据上拟合模型并对其进行转换。然后使用这些"记住"转换测试数据。参数。
当您使用fit_transform时,Scaler会学习所选数据的参数并对其进行转换。
所以回答你的问题:如果你使用fit_transform,Scaler会根据测试分布来扩展测试数据,它将与火车不同;如果你使用变换,那么测试数据将被缩放为列车数据。