sklearn中的fit_transform和transform以及什么时候使用

在使用sklearn对数据进行预处理的时候很有可能会遇到fit_transform和transform,网上不少资料写的模棱两可,在这里我回答几个核心问题,也许看完我写的这篇文章,一些疑惑就会豁然开朗。

为什么在训练集进行fit而不在测试集fit

机器学习假设,训练集和测试集的每个样本都是从同一分布中抽样得到的。所以在训练集中fit之后在测试集就不能再fit了。要不然二者可能不是同一分布模型,预测效果会很糟糕。

fit_transform那么fit到底fit什么

可以说不同的sklearn方法fit的东西都是不一样的,对于LabelBinar而言,因为fit阶段没有fit东西,所以训练集和测试集都可以写成fit_transform(我仍然建议不要这样写,统一格式,训练集fit在测试集transform会更好),而对于StandardScalar而言,fit的是均值和方差。所以一定要在训练集写成fit_transform,在测试集写成transform

发布了189 篇原创文章 · 获赞 233 · 访问量 36万+

猜你喜欢

转载自blog.csdn.net/Einstellung/article/details/94132697