【问题标题】:sklearn minmaxscaler ported to a different notebooksklearn minmaxscaler 移植到不同的笔记本
【发布时间】:2017-09-19 02:38:34
【问题描述】:

我将如何下载 min_max_scaler 属性以便我可以将相同的转换应用于不同笔记本中的数据?

为了全面披露,我已经在一个笔记本中训练了一个 NN,并在不同的位置运行它。将训练好的 NN 权重加载到第二个位置对我来说很简单,但我需要在将数据输入模型之前对其进行缩放。准确地说,我相信它必须使用原始比例属性。

【问题讨论】:

  • 多读一点文档,我是否只需将新数据减去 min_max_scaler.min_,然后除以 min_max_scaler.scale_?
  • 不能直接用pickle保存对象吗?如果没有代码,这个问题就太宽泛了。

标签: import scikit-learn scaling preprocessor


【解决方案1】:

根据documentation,您可以使用

重新创建 min max scaler 所做的事情
X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0))
X_scaled = X_std * (max - min) + min

其中 X 是您的原始数据集。 (虽然只要你的特征范围是默认的(0,1),上面的第二行就不需要了——你会得到X_scaled = X_std

如果您想使用已训练的 MaxMinScaler 而不是原始数据集进行相同的计算,请考虑以下示例(再次假设特征范围保留为默认值 (0,1))

from sklearn.preprocessing import MinMaxScaler
import pandas as pd
import numpy as np

# Test data set
X = pd.DataFrame(np.random.randint(0, 100, size=(20,4)))

# Test scaler
scaler = MinMaxScaler()
sklearn_result = scaler.fit_transform(X)

# Compute, and verify results match up to machine precision
manual_result = (X - scaler.data_min_)/(scaler.data_max_ - scaler.data_min_)
(sklearn_result - test).max().max() . # Is around 10e-16

【讨论】:

    猜你喜欢
    • 2020-04-19
    • 2021-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-11
    • 2022-12-16
    • 2020-09-22
    相关资源
    最近更新 更多