如何将数据集缩放到与另一个数据集相同的规模?
How to scale a data set to the same scale as another?
我目前正在使用 StandardScaler 分别缩放回归模型的训练数据和最终放入模型进行预测的数据。
这会将预测数据缩小到与训练数据缩放相同的水平还是不同?它会因此导致错误的预测吗?
如果是这样,我怎样才能用与训练集相同的均值等来缩放第二个数据集?我是否必须使用前者的均值和方差手动将公式应用于第二个数据集?
谢谢
缩放数据时,应该只缩放训练数据。否则,prediction/test 数据的范围会影响训练数据的缩放方式,从而影响模型的学习内容。这是一种数据泄露形式。
在 Python 中你会看起来像:
scaler = StandardScalar() # Create a scalar
scaler.fit(training_data) # Fit only to training data
scaled_training_data = scaler.transform(training_data) # What your model learns on
scaled_test_data = scaler.transform(test_data) # Scale your test data using the same scaling as the training data
(注意:您可以使用 fit_transform() 一步拟合和转换训练数据。)
我目前正在使用 StandardScaler 分别缩放回归模型的训练数据和最终放入模型进行预测的数据。
这会将预测数据缩小到与训练数据缩放相同的水平还是不同?它会因此导致错误的预测吗?
如果是这样,我怎样才能用与训练集相同的均值等来缩放第二个数据集?我是否必须使用前者的均值和方差手动将公式应用于第二个数据集?
谢谢
缩放数据时,应该只缩放训练数据。否则,prediction/test 数据的范围会影响训练数据的缩放方式,从而影响模型的学习内容。这是一种数据泄露形式。
在 Python 中你会看起来像:
scaler = StandardScalar() # Create a scalar
scaler.fit(training_data) # Fit only to training data
scaled_training_data = scaler.transform(training_data) # What your model learns on
scaled_test_data = scaler.transform(test_data) # Scale your test data using the same scaling as the training data
(注意:您可以使用 fit_transform() 一步拟合和转换训练数据。)