训练和拆分数据的标准化

数据挖掘 支持向量机 k-nn
2022-03-13 04:14:36

我对以下哪一项应该用于标准化感到困惑:

  • 方法一:拟合变换训练数据,只变换测试数据

    from sklearn.preprocessing import StandardScaler
    sc = StandardScaler()
    X_train = sc.fit_transform(X_train)
    X_test = sc.transform (X_test)
    
  • 方法 2:拟合转换训练和测试数据

    from sklearn.preprocessing import StandardScaler
    sc = StandardScaler()
    X_train = sc.fit_transform(X_train)
    # scaler_train=sc.fit(X_train)
    #X_train_sd=scaler_train.transform(X_train)
    X_test = sc.fit_transform (X_test)
    #scaler_test=sc.fit(X_test)
    #X_test_sd=scaler_train.transform(X_test)
    

这是一个后续问题: StandardScaler before and after split data

1个回答

你应该只在训练数据上安装你的缩放器。您的定标器是模型的一部分,将定标器拟合到某些数据可以被视为从这些数据中学习。

测试数据用于在以前未见过的数据上评估您的模型,因此如果您将缩放器安装到测试数据上,它就不再是“未见过”的数据了。