【问题标题】:Unexpectedly getting different standardized data with sklearn StandardScaler使用 sklearn StandardScaler 意外获得不同的标准化数据
【发布时间】:2019-10-20 10:21:30
【问题描述】:

我使用 scikit-learn 的 standardScaler 类在同一数据集上构建的两个缩放器获得不同的标准化值。

我使用 Scikit-learn 在具有 52 个特征的训练数据集上构建了一个 StandarScaler 对象。我们称它为 Scaler1。然后,我使用该缩放器对训练数据集进行标准化,并在标准化数据上学习不同的模型。这导致了具有选定功能的最佳模型(52 个中的 26 个)。为了实现使用该模型的预测器类:(1)我只从原始(非标准化)数据集中抓取与 26 个选定特征相对应的列;然后(2)我通过拟合新创建的数据集创建并保存(使用 joblib)一个新的 StandarScaler 对象。我们称之为Scaler2。下面是我的实现的简单概述。

scaler = StandardScaler()
scaler.set_params (**parameters)
scaler.fit(data)
joblib.dump(scaler, destination)

与我的预期相反,在尝试标准化原始数据集时,与 Scaler1 相比,对于 26 个特征中的每一个,Scaler2 为相同的数据点给出了不同的值。这种行为正常吗?每行的标准化不是独立发生的吗?我该如何解决这个问题?

最好, 亚尼克

【问题讨论】:

    标签: python machine-learning scikit-learn


    【解决方案1】:

    此问题已修复。确保处理特征的顺序保持不变很重要,因为标准化模型似乎没有保存特征的名称。

    【讨论】:

      猜你喜欢
      • 2021-05-11
      • 2021-12-28
      • 2017-11-10
      • 1970-01-01
      • 2018-12-19
      • 2018-04-16
      • 2017-03-17
      • 2021-08-08
      • 1970-01-01
      相关资源
      最近更新 更多