Я получаю сообщение об ошибке "ValueError: endog требуется иметь ndim 1, но имеет ndim 2" - PullRequest
0 голосов
/ 09 февраля 2020

Я строю модель ARIMA для прогнозирования полета. У меня есть данные за 10 лет, и я хочу предсказать исторические полеты. Я сделал модель ARIMA, но продолжаю получать сообщение об ошибке: «endog требуется иметь ndim 1, но имеет ndim 2».

Вот код:

df = read_excel('dataset.xlsx')
df = df[['Year', 'Historical Flights','Country GDP']]

print(df.head())
X = df.iloc[:, :].values


size = int(len(X) * 0.66)
train, test = X[0:size], X[size:len(X)]
history = [x for x in train]
predictions = list()
for t in range(len(test)):
    model = ARIMA(history, order=(2,1,2))
    model_fit = model.fit(disp=0)
    output = model_fit.forecast()
    yhat = output[0]
    predictions.append(yhat)
    obs = test[t]
    history.append(obs)
    print('predicted=%f, expected=%f' % (yhat, obs))
error = mean_squared_error(test, predictions)
print('Test MSE: %.3f' % error)

1 Ответ

0 голосов
/ 21 февраля 2020

Попробуйте изменить свой ввод в Arima как

model = ARIMA(history.values.reshape(-1).tolist(), order=(2,1,2))

Это изменит размер вашего массива на 1D

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...