Выявляйте и избегайте типичных ошибок

Я буду краток и прост.

Всегда подозревайте все сообщения, которые вы видите о прогнозировании цен на акции. Не важно кто, не важно где. Если вы этого не понимаете, не следуйте ему.

Позвольте мне объяснить мои рассуждения.

К этому моменту я, должно быть, прочитал пару сотен статей, книг и сообщений в блогах о временных рядах и особенно о прогнозировании цен на акции. Безусловно, блоги неопытных практиков — это те, где я нахожу самые наивные ошибки. Вот несколько моментов, на которые следует обратить внимание при чтении такой литературы.

Финансовые данные НЕ похожи на любые другие наборы данных машинного обучения.

Биржевые данные содержат две важные характеристики, которые делают их уникальными и особенно легко испортить: время и память [1]. Если вы, как и я, читали много постов, которые обещают предсказать цены акций, неважно по какой методике, вы заметите, что подавляющее большинство из них выглядят как запаздывающая скользящая средняя. В некоторых экстремальных сообщениях вы заметите, что некоторые прогнозы выглядят как точные временные ряды с отставанием в один шаг.

Утечка данных

Если вы когда-нибудь увидите прогноз, который слишком близок или похож на скользящее среднее, вам, вероятно, следует заподозрить, что данные из прошлого просачиваются в будущее. Это почему? Многие практики машинного обучения узнают, что они должны разделить данные на обучение и тестирование. Они делают это, выбирая данные X_train до времени t, а затем данные X_test с момента времени t вперед. Проблема в том, что образцы содержат данные друг о друге. Таким образом, по сути, в наборе поездов есть данные из тестового набора и наоборот. Набор данных нечист.

Как исправить?

Если ваша выборка имеет размер N, вы должны отбросить не менее N+1 шагов любого размера (предпочтительно обоих). Почему? Потому что тогда вы гарантируете, что данные с одной стороны не мешают другой стороне.

Масштабирование данных из будущего и прошлого вместе

Еще одна основная ошибка заключается в масштабировании данных X перед разделением или использовании одного и того же масштабатора в X_train и Данные X_test. Что это эффективно делает, так это позволяет будущим данным влиять на прошлые данные. Это утечка данных, поскольку будущие точки данных влияют на масштабирование прошлого, поэтому модель уже будет знать будущее. Эта ошибка чаще всего встречается в подходах, использующих нейронные сети.

Как исправить?

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

Я пишу таблетки знаний, чтобы вы могли сохранить свои знания острыми! Я пишу о науке о данных, машинном обучении в сочетании с финансами. Не стесняйтесь подключаться и проверить мои другие статьи! Также проверьте faidhwealth.com для моего последнего эксперимента в области финансов и машинного обучения.

использованная литература

[1] Де Прадо М.Л. Достижения в области финансового машинного обучения. Джон Уайли и сыновья; 2018 21 фев.