Я пишу диссертацию по прогнозированию цены акций с использованием глубокого обучения, уделяя основное внимание вариациям LSTM.У меня есть временной ряд доходности акций 100 акций с течением времени, и я предсказываю бинарную проблему классификации того, пойдет ли она вверх или вниз на следующий день.
Таким образом, мои тренировочные данные имеют следующую форму:
X_train 3D: (1000 последовательностей / наблюдений, 200 возвратов на последовательность, 100 акций) = (1000, 200, 100)
y_train 2D: (1000 наблюдений, 100 акций) <- двоичная матрица с 1/0 (влажный запас увеличился или уменьшился) </p>
Данные испытаний:
X_test 3D: (500 наблюдений, 200 возвратов в каждой последовательности, 100 акций) = (500 200 100)
Код LSTM:
classifier = Sequential()
classifier.add(LSTM(units, return_sequences = False, input_shape =
(200, 100)))
classifier.add(Dense(units = 100, activation = sigmoid))
classifier.compile()
regressor.fit(X_train, y_train)
probability = classifier.predict(X_test)
classes = classifier.predict_classes(X_test)
При выполнении этого через LSTM прогнозируемая вероятность имеет форму (500 100), причем каждая вероятность находится в диапазоне [0,1].Это именно то, что я хочу, одна вероятность на акцию для каждого дня в тестовом периоде (насколько вероятно, что это будет класса 1, то есть, насколько вероятно, будет расти на следующий день).
Однако прогнозируемый класс имеет форму (500,) и находится в диапазоне [0,100].Я хочу, чтобы прогнозируемый класс также имел форму (500 100) и был двоичным (0/1).
Мне кажется, что модель в настоящее время берет каждое наблюдение и предсказывает, к какой акции он, скорее всего, будет принадлежать.Это не то, что я хочу, я хочу, чтобы он брал каждую последовательность для каждой акции и предсказывал двоичный ответ для этой акции в то время.Следовательно, как вероятности, так и классы, предсказанные здесь, будут недействительными по назначению.Можно ли добавить другое измерение, чтобы получить мои желаемые прогнозы?