首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用fit_transform()和transform()

使用fit_transform()和transform()
EN

Stack Overflow用户
提问于 2022-06-16 04:29:46
回答 1查看 300关注 0票数 2
代码语言:javascript
复制
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)

我所知道的是fit()方法计算特征的均值和标准差,然后transform()方法使用它们将特征转换为新的缩放特征。fit_transform()只不过是在一行中调用fit() & transform()方法。

但是为什么我们只调用fit()来训练数据而不是测试数据呢?

这是否意味着我们正在使用训练数据的均值和标准差来转换测试数据?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-16 04:43:16

fit计算用于以后缩放的平均值和stdev,注意这只是一个没有缩放的计算。

transform使用以前计算的平均值和stdev来扩展数据(从所有值中减去平均值,然后除以stdev)。

fit_transform同时做这两件事。所以你只需一行代码就可以完成它。

对于X_train数据集,我们使用fit_transform,因为我们需要计算平均值和stdev,然后使用它来缩放X_train数据集。对于X_test数据集,由于我们已经有了平均值和stdev,所以我们只执行转换部分。

编辑X_test数据应该是完全看不见的和未知的(也就是说,没有从它们中提取信息),所以我们只能从X_train获得信息。我们将派生平均值和stdev (从X_train)用于转换X_test的原因也是为了对y_testy_pred进行同样的“苹果对苹果”的比较。

顺便说一句,如果列车/测试数据在没有偏差的情况下被正确分割,而且数据足够大,那么这两个数据集与总体平均值和stdev的近似是相同的。

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

https://stackoverflow.com/questions/72640476

复制
相关文章

相似问题

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