Как я могу получить прогнозируемую стоимость акций, используя метод прогнозирования Tensorflow? - PullRequest
0 голосов
/ 07 марта 2020

Мне интересно, как прогнозировать и получать данные будущих временных рядов после обучения модели. Я хотел бы получить значения после N шагов. Интересно, были ли данные временного ряда правильно изучены и предсказаны? Как мне сделать это правильно, чтобы получить следующее (следующее) значение? Я хочу получить следующее значение, используя model.predict или аналогичный.

У меня есть x_test и x_test[-1] == t Итак, значение следующего значения равно t+1, t+2, .... t+n. В этом примере Я хочу получить t+1, t+2 ... t+n

Первый

Я пытался использовать данные фондового индекса

inputs = total_data[len(total_data) - forecast - look_back:]
inputs = scaler.transform(inputs)
X_test = []
for i in range(look_back, inputs.shape[0]):
    X_test.append(inputs[i - look_back:i])
X_test = np.array(X_test)
predicted = model.predict(X_test)

, но результат, как показано ниже

enter image description here

Результаты X_test[-20:] и следующих 20 прогнозов выглядят одинаково. Мне интересно, правильно ли это метод обучения и прогнозируемое значение, а также, если результат был правильным.

полный источник

Метод, который я попробовал первым, не работал правильно.

Второй

Я понял, что что-то не так, я попытался использовать другие официальные данные, поэтому я использовал временные ряды в учебнике Tensorflow , чтобы попрактиковаться в обучении модели.

a = y_val[-look_back:] 
for i in range(N-step prediction): #predict a new value n times.
    tmp = model.predict(a.reshape(-1, look_back, num_feature)) #predicted value     
    a = a[1:] #remove first     
    a = np.append(a, tmp) #insert predicted value

Результаты были предсказаны в форме линейной регрессии, очень отличающейся от реальных данных.

2

Вывод ненормальной линейной регрессии, которая не зависит от реальных данных:

полный исходный код (После 25-й строки мой код.)

Я действительно очень Любопытно, что Как я могу предсказать следующее значение временного ряда, используя метод предсказания Tensorflow

Мне не интересно, работает это теоретически или нет. Мне просто интересно, как получить следующие n шагов, используя метод прогнозирования.

Спасибо за чтение длинного вопроса. Я прошу совета по поводу вашего бесценного мнения.

1 Ответ

3 голосов
/ 11 марта 2020

Во втором подходе вывод не ожидается, как я понимаю, из-за небольшой ошибки в коде.

Строка кода

a = y_val[-look_back:]

должна быть заменена на

look_back = 20
x = x_val_uni
a = x[-look_back:]
a.shape

Другими словами, мы должны отправить X Values в качестве Входных данных для Модели для Прогноза, а не Y Values.

Однако мы можем сравнить его предсказания с Y Значения, с кодом,

y = y_val_uni[-20:]

plt.plot(y)
plt.plot(tmp)
plt.show()

Что приведет к графику, показанному ниже:

enter image description here

Пожалуйста, найдите полный рабочий Код в этом Google Colab Gist .

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