gpt4 book ai didi

python - 为什么对测试数据调用 Transform() 会返回数据尚未拟合的错误?

转载 作者:行者123 更新时间:2023-11-30 09:03:50 25 4
gpt4 key购买 nike

在执行特征缩放时,不要将变量分配给 StandardScaler(),编码如下:

from sklearn.preprocessing import StandardScaler

x_train = StandardScaler().fit_transform(x_train)

x_test = StandardScaler().transform(x_test)

它给出以下错误:

NotFittedError: This StandardScaler instance is not fitted yet. Call'fit'with appropriate arguments before using this method.

然而,以下代码可以正常工作(在向 StandardScaler() 提供标识符之后):

from sklearn.preprocessing import StandardScaler

sc_x = StandardScaler()

x_train = sc_x.fit_transform(x_train)

x_test = sc_x.transform(x_test)

这里,x_train 是训练数据集,x_test 是测试数据集。

有人可以解释一下为什么会发生这种情况吗?

最佳答案

当您调用StandardScaler()时,您将创建一个standscaler类的(也称为未安装)对象。如果您想使用它,则必须先安装它,然后才能使用它转换任何数据。

您“告诉”代码要做的事情是(伪代码):

  1. 创建一个新的缩放器对象
  2. 使其适合您的训练数据
  3. 创建另一个新的缩放器对象
  4. 不适合任何东西,但用它来转换一些数据

在第二个示例中,您创建了一个缩放器对象,将其适合您的数据,然后使用相同对象来转换您的测试数据(这是正确的使用方法)

关于python - 为什么对测试数据调用 Transform() 会返回数据尚未拟合的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57775530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com