Влияет ли сортировка данных на точность обучения - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь исследовать и реализовать модель ARIMA для прогнозирования некоторых значений, что удивительно, что точность сортировки после сортировки по индексу date настолько велика, что столбец

1-й подход [не отсортирован]

series = read_csv('43123391.csv', index_col='dt', parse_dates=['dt'])
autocorrelation_plot(series)
pyplot.show()
X = series.values
size = len(series) - 6
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=(3, 0, 1)) # q value is 1
    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)
# plot
pyplot.plot(test)
pyplot.plot(predictions, color='red')
pyplot.show()

Автокорреляция

autocorrelation

ТЕСТ

enter image description here

выполнение того же кода с датой сортировки

series = read_csv('43123391.csv', index_col='dt', parse_dates=['dt'])
series.sort_index(inplace=True, ascending=False)

и изменение параметров заказа на order=(3, 0, 0), так как выдает ошибку ValueError: The computed initial AR coefficients are not stationary You should induce stationarity, choose a different model order, or you can pass your own start_params, если я оставьте его, как он есть, производит следующий

2-й подход [отсортировано]

enter image description here

ТЕСТ

enter image description here

несортированная дата выводит тест MSE значения 0.11, а в отсортированном сценарии его 0.628, если сортировка вызывает это разница или что-то еще?

...