Ожидаемый 2D массив, получил 1D массив - PullRequest
0 голосов
/ 27 марта 2019

Я запускаю следующий код из github, но получаю ошибку.Что не так?

https://github.com/susanli2016/Machine-Learning-with-Python/blob/master/Time%20Series%20ANN%20%26%20LSTM%20VIX.ipynb

Ячейка:

# scale train and test data to [-1, 1]
scaler = MinMaxScaler(feature_range=(-1, 1))
train_sc = scaler.fit_transform(train)
test_sc = scaler.transform(test)

Ошибка:

ValueError: Expected 2D array, got 1D array instead:
array=[17.24     18.190001 19.219999 ... 10.47     10.18     11.04    ].
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.

Ответы [ 2 ]

2 голосов
/ 27 марта 2019

Человек, который сделал этот ноутбук, использовал действительно старую версию sklearn. Короче говоря, ваши функции имели форму [row_1, row_2...row_n], тогда как они должны были иметь форму [[row_1], [row_2]...[row_n]].

Соответственно, используйте это:

new_shape = (len(train), 1)

train_sc = scaler.fit_transform(np.reshape(train, new_shape))
test_sc = scaler.transform(np.reshape(test, new_shape))
0 голосов
/ 09 апреля 2019

Решил проблему, добавив методы, приведенные ниже, которые, по-видимому, преобразуют объекты train и test в массивы numpy. Это правильно?

scaler = MinMaxScaler(feature_range=(-1, 1))
train_sc = scaler.fit_transform(train.values.reshape(-1, 1))
test_sc = scaler.transform(test.values.reshape(-1,1))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...