深度学习:如何使用skLearn缩放预测数据-MinMaxScaler()

时间:2019-05-16 23:26:27

标签: python keras scikit-learn deep-learning

我正在创建一个神经网络来对音乐进行降噪。

模型的输入是一个从0到1缩放的数组。这是使用sklearn MinMaxScaler实现的。数据的原始范围是-1到1。模型的输出也是一个从0到1缩放的数组。

但是,在预测信息时,我无法将数据缩放回-1到1。

我的代码类似于:

data = load(data_path)
scaler = MinMaxScaler(feature_range = (0,1))
data = data.reshape(-1,1)
data = scaler.fit_transform(data)

model = load_model(model_path)
predicted_data = model.predict(data)

predicted_data = scaler.inverse_transform(predicted_data)

但是我收到错误:

This MinMaxScaler instance is not fitted yet. Call 'fit' with appropriate arguments before using this method.

但是数据已经适合,我不想再次适合它。

为什么我会收到此错误? MinMaxScaler仍然不应该对不适合的数据进行inverse_transform吗?

关于此错误是否有任何建议?

1 个答案:

答案 0 :(得分:2)

错误说明了一切,您需要分别调用fittransform方法,而不仅仅是fit_transform

data = load(data_path)
data = data.reshape(-1, 1)
scaler = MinMaxScaler(feature_range = (0,1)).fit(data)
data = scaler.transform(data)

model = load_model(model_path)
predicted_data = model.predict(data)

predicted_data = scaler.inverse_transform(predicted_data)