fit-transform on training data and transform on test data
本问题已经有最佳答案,请猛点这里访问。
我很难理解
我在训练数据集上打电话给
但是,如果我在测试集中调用
有人能给我解释一下为什么会发生这种情况吗?
让我们以转换为例,sklearn.preprocessing.standardscaler。
从文档中,这将:
Standardize features by removing the mean and scaling to unit variance
号
假设您使用的代码如下所示。
1 2 3 4 5 6 7 8 9 | import numpy as np from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler # X is features, y is label X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.33, random_state=42 ) |
当您调用
您希望仅使用培训数据来适应定标器的原因是,您不希望使用来自测试数据的信息来偏袒您的模型。
如果您对您的测试数据使用cx1(4),您将为每个特性计算一个新的平均值和方差。理论上,如果您的测试和列车组具有相同的分布,这些值可能非常相似,但实际上情况并非如此。
相反,您只希望使用基于训练数据计算的参数来转换测试数据。