Углубленное изучение: как масштабировать прогнозируемые данные с помощью skLearn - MinMaxScaler () - PullRequest
0 голосов
/ 17 мая 2019

Я создаю нейронную сеть для шумоподавления музыки.

Входными данными для модели является массив, масштабируемый от 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 Ответ

2 голосов
/ 17 мая 2019

Ошибка говорит сама за себя, вам нужно вызывать метод fit и transform отдельно, а не просто 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...