首页 > 解决方案 > 数据集标准化

问题描述

我尝试使用MinMaxScaller(from sklearn.preprocessing) 来规范化训练数据。然后创建一个经过训练的文件并保存为“XXX.h5”。

我试图创建一个可以读取“XXX.h5”并使用经过训练的模型的预测程序。我需要缩放输入数据然后反向缩放输出数据。

有没有办法不再次使用训练数据来缩放输入数据?

  1. 我需要再次阅读培训文件以获得规模:
df=pd.read_excel('data.xls')
x=np.array(df['x'])
y=np.array(df['y'])
x_scaler=MinMaxScaler()
y_scaler=MinMaxScaler()

x=x_scaler.fit_transform(x)
y=y_scaler.fit_transform(y)
  1. 然后缩放输入“x”以进行预测:
preds= model.predict(x_scaler.transform(input_x))          
  1. 反转比例以获得输出:
preds=y_scaler.inverse_transform( preds)   

基于上述,即使我不需要训练模型,我也总是需要训练数据。这是真的吗?

标签: pythonscikit-learnnormalization

解决方案


一种可能的方法是保存 Scaler 的参数。

Sklearns MinMaxScaler 具有 .getparams 和 .setparams 两种方法,您应该能够使用它们获取参数、保存它们、重新加载它们并使用它们来设置缩放器。

这将需要保存和加载附加文件,但在样本量较大的情况下可能更可取。


推荐阅读