Начнем с того, что «Я знаю, что ML не может предсказывать фондовые рынки лучше, чем обезьяны». Но я просто хочу довести дело до конца.
У меня вопрос еретический. Скажем, у меня есть дата, открытие, максимум, минимум, закрытие в виде столбцов. Итак, я предполагаю, что у меня есть 4 функции: открытие, максимум, минимум, закрытие.
«my_close» будет моей меткой (ответом), и я буду использовать «закрыть» 7 дней с текущей строки. Обычно я сдвигаю столбец «закрыть» на 7 строк и делаю его новым столбцом с именем «my_close».
LSTM работают с последовательностями. Скажем, последовательность, которую я установил, составляет 20 дней. следовательно, моя форма будет (1000 дней данных, 20 дней как последовательность, 3 функции).
Проблема, которая меня беспокоит, заключается в том, должны ли эти 20 дней или строки данных иметь одну и ту же метку? или могут быть индивидуальные ярлыки? Или я неправильно понял всю теорию?
Спасибо, парни.
В вашем случае вы хотите спрогнозировать цену акций на текущий день, используя стоимость акций за предыдущие 7 дней. Способ построения входных и выходных данных требует некоторой модификации перед вводом в модель.
Вы совершаете ошибку в понимании временных шагов (в ваших последовательностях). Временные шаги (последовательности) в терминах непрофессионала - это общее количество входов, которые мы будем учитывать при прогнозировании выходных данных. В вашем случае это будет 7 (а не 20), поскольку мы будем использовать данные за предыдущие 7 дней для прогнозирования результатов текущего дня.
Ваш ввод должен быть информацией за предыдущие 7 дней.
[F11, F12, F13], [F21, F22, F23], ........, [F71, F72, F73]
Fij в этом случае F представляет функцию, i представляет временной шаг, а j представляет номер функции.
и на выходе будет цена акций 8-го дня. Здесь ваша модель проанализирует входные данные за предыдущие 7 дней и спрогнозирует выход. Итак, чтобы ответить на ваш вопрос, у вас будет общая метка для ввода за предыдущие 7 дней.
Я настоятельно рекомендую вам немного больше изучить LSTM.
Да, ты прав.! Хотя ее результат кажется очень хорошим, на самом деле это не так. Пожалуйста, прочтите 2-й комментарий Уильяма Брауна по этой ссылке.
Многоступенчатое предсказание в lstm. Я видел некоторый код по этому поводу, но он включает только одну функцию. Для мультифункциональности мультишаговый режим невозможен или абсолютно не точен, не так ли? В контексте прогнозирования цен на акции, скажем, у меня есть 7 других функций, скажем, открытие, максимум, минимум, ma, импульс, RSI и CCI. Я предсказываю цену закрытия следующего шага. Но я не могу перейти к шагам 2 и 3, потому что у меня нет следующего максимума и минимума, и я открываюсь. Тогда невозможно получить следующий rsi, cci, импульс для передачи в model.predict (). Значит, нет возможности исправить эту работу?
Привет! могу я задать вам еще один вопрос. Я вижу, что некоторые люди используют окно (или seq len, или временную последовательность) всего 1, что совершенно противоречит цели LSTM, верно? Хотя я должен сказать, кажется, что окно 1 дает наилучшие результаты? Если вы посмотрите эту ссылку. Не нужно подробно читать, можно примерно увидеть, что она делает. Он строит отличный график, но мне просто завораживает голова, когда вы используете только линзу с одной последовательностью. python36.com/predict-cryptocurrency-price-using-lstm есть идеи?