对训练数据进行拟合变换并对测试数据进行变换

对训练数据进行拟合变换并对测试数据进行变换,第1张

训练数据进行拟合变换并对测试数据进行变换

让我们以sklearn.preprocessing.StandardScaler转换为例。

从文档中,这将:

通过去除均值并缩放到单位方差来标准化特征

假设您正在使用如下代码。

import numpy as npfrom sklearn.model_selection import train_test_splitfrom sklearn.preprocessing import StandardScaler# X is features, y is labelX_train, X_test, y_train, y_test = train_test_split(    X, y, test_size=0.33, random_state=42)

调用时

StandardScaler.fit(X_train)
,它的作用是根据中的值计算均值和方差
X_train
。然后,调用
.transform()
将通过减去均值并除以方差来变换所有特征。为了方便起见,可以使用一步来完成这两个函数的调用
fit_transform()

您只想使用训练数据来适合缩放器的原因是,您不想使用测试数据中的信息来偏向模型。

如果

fit()
要查看测试数据,则需要为每个特征计算一个 新的
均值和方差。从理论上讲,如果您的测试和训练集具有相同的分布,则这些值可能非常相似,但实际上通常并非如此。

相反,您只想使用在训练数据上计算出的参数来转换测试数据。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5674481.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存