MinMaxScaler 如何影响我的测试数据?
How does MinMaxScaler affect my test data?
假设我想预测股票价格并且我有我的训练数据,我知道其中的最小值和最大值。这似乎是使用 MinMaxScaler 的好案例,但我想知道的是以下内容。如果我从我的训练数据中知道最高值设置为 1,那么当我的测试数据中的股票价格达到比我首先归一化为 1 的值更高的值时会发生什么?它只是覆盖它并将其指定为新的最大值吗?
sklearn 中的缩放器具有三种值得注意的方法,您应该在 运行使用这些类型的程序时使用它们:
scaler.fit(x)
- 这会将缩放器的最小值和最大值(使用 MinMaxScaler 时)设置为在 x 中找到的值
y_transformed = scaler.transform(y)
- 这将使用在上面的 fit
命令中找到的参数转换数据 y
x_transformed = scaler.fit_transform(x)
这将同时 运行 以上两个命令。这应该只应用于您的训练数据。
因此,从本质上讲,当您训练模型时,您将训练严格在 0-1 范围内的数据,因为您的缩放器将根据该数据进行拟合。当您获得新数据或 test/validation 集中的数据可能超出范围(使用 scaler.transform(y)
)时,这将只是 return 0-1 范围之外的数据(即. 1.1 或 -0.4 的值)。
如果这是您使用的算法的问题,我建议无论如何将数据剪裁为 0-1,或者在训练前增加缩放器的参数(在预期中)。
假设我想预测股票价格并且我有我的训练数据,我知道其中的最小值和最大值。这似乎是使用 MinMaxScaler 的好案例,但我想知道的是以下内容。如果我从我的训练数据中知道最高值设置为 1,那么当我的测试数据中的股票价格达到比我首先归一化为 1 的值更高的值时会发生什么?它只是覆盖它并将其指定为新的最大值吗?
sklearn 中的缩放器具有三种值得注意的方法,您应该在 运行使用这些类型的程序时使用它们:
scaler.fit(x)
- 这会将缩放器的最小值和最大值(使用 MinMaxScaler 时)设置为在 x 中找到的值
y_transformed = scaler.transform(y)
- 这将使用在上面的fit
命令中找到的参数转换数据 yx_transformed = scaler.fit_transform(x)
这将同时 运行 以上两个命令。这应该只应用于您的训练数据。
因此,从本质上讲,当您训练模型时,您将训练严格在 0-1 范围内的数据,因为您的缩放器将根据该数据进行拟合。当您获得新数据或 test/validation 集中的数据可能超出范围(使用 scaler.transform(y)
)时,这将只是 return 0-1 范围之外的数据(即. 1.1 或 -0.4 的值)。
如果这是您使用的算法的问题,我建议无论如何将数据剪裁为 0-1,或者在训练前增加缩放器的参数(在预期中)。