【问题标题】:Standardization/Normalization test data in PythonPython中的标准化/标准化测试数据
【发布时间】:2018-05-19 19:36:51
【问题描述】:

我正在做 sklearn 作业,但我不明白为什么要使用训练均值和 sd 对测试数据进行标准化和规范化。如何在 Python 中实现这一点? 这是我对火车数据的实现:

digits = sklearn.datasets.load_digits()
X= digits.data
Y= digits.target
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.3,train_size=0.7)
std_scale = preprocessing.StandardScaler().fit(X_train)
X_train_std = std_scale.transform(X_train)
#X_test_std=??

对于火车我认为是正确的,但是对于测试呢?

【问题讨论】:

    标签: python scikit-learn normalization


    【解决方案1】:

    为什么?

    因为您的分类器/回归器将根据这些标准化值进行训练。您不想使用经过训练的分类器来预测具有其他统计信息的数据。

    如何:

    std_scale = preprocessing.StandardScaler().fit(X_train)
    X_train_std = std_scale.transform(X_train)
    X_test_std  = std_scale.transform(X_test)
    

    一次拟合,转换任何你需要转换的东西。这就是基于类的StandardScaler(您已经选择)与scale 相比的优势,后者不包含应用转换所需的信息(基于这些期间获得的统计信息>fit) 稍后。

    【讨论】:

      猜你喜欢
      • 2020-08-26
      • 2022-01-20
      • 2017-01-20
      • 1970-01-01
      • 2017-09-04
      • 2017-08-18
      • 2017-11-29
      • 2019-10-22
      相关资源
      最近更新 更多