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

Я пытаюсь предсказать цену Биткойна на t+5, то есть на 5 минут вперед, используя 11 технических индикаторов до момента времени t, которые все могут быть рассчитаны из значений открытия, максимума, минимума, закрытия и объема из временного ряда Биткойна (см. мои полные данные приведены здесь). Насколько я знаю, нет необходимости манипулировать кадром данных при использовании алгоритмов, таких как деревья регрессии, опорные векторные машины или искусственные нейронные сети, но при использовании методов ансамбля, таких как случайные леса (RF) и Boosting, я слышал, что это необходимо каким-либо образом переставить фрейм данных, потому что методы ансамбля извлекают повторные случайные выборки из обучающих данных, и в этом случае последовательность временных рядов биткойнов будет разрушена. Итак, есть ли способ переупорядочить фрейм данных таким образом, чтобы временные ряды по-прежнему были в хронологическом порядке каждый раз, когда из обучающих данных взяты повторные выборки?

Мне предоставили объяснение того, как построить фрейм данных здесь и, возможно, здесь, но, к сожалению, я не совсем понял эти объяснения, потому что я не видел визуального примера будущего фрейма данных. и потому что я не смог идентифицировать соответствующую строку кода. Так что, если кто-то может показать мне, как переставить фрейм данных, используя пример фрейма данных, я был бы очень благодарен. В качестве примера фрейма данных вы можете рассмотреть возможность использования airquality встроенный фрейм данных в r (я думаю, что он содержит данные временных рядов), данные, которые я предоставил выше, или любой другой фрейм данных, который вы считаете лучшим.

Большое спасибо!

1 ответ

Для алгоритмов ML нет проблем с передискретизацией. Для захвата (авто) корреляции просто добавьте столбцы с запаздывающими значениями временных рядов. Например, в случае одномерного временного ряда x[t], где t - время в минутах, вы добавляете столбцы x[t - 1], x[t - 2], ..., x[t - n] с запаздывающими значениями, Чем больше лагов вы добавите, тем больше истории будет учитываться при обучении модели.

Некоторый очень простой рабочий пример вы можете найти здесь: Прогнозирование с использованием нейронных сетей

Более продвинутый персонал с Keras здесь: предсказание временных рядов с использованием RNN

Однако, только для вашей информации, специальное сообщение мистера Чоллета и мистера Аллэра из вышеупомянутой статьи:)

ПРИМЕЧАНИЕ: рынки и машинное обучение

Некоторые читатели обязаны использовать методы, которые мы представили здесь, и попробовать их на проблеме прогнозирования будущей цены ценных бумаг на фондовом рынке (или обменных курсов валют и т. Д.). Рынки имеют очень разные статистические характеристики, чем природные явления, такие как погодные условия. Попытка использовать машинное обучение, чтобы обойти рынки, когда у вас есть доступ только к общедоступным данным, является трудной задачей, и вы, скорее всего, потратите свое время и ресурсы, не имея ничего, чтобы показать это.

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

Другие вопросы по тегам