Вопрос или проблема
Я использую метод несупервизированного распознавания шаблонов для создания торговой стратегии. Я использую результаты совпадения шаблонов, чтобы решить, стоит ли входить в сделку. Для выбора лучших параметров шаблонов я запускаю несколько комбинаций по всему набору данных и выбираю те параметры, которые приносят наибольшую прибыль. Мой вопрос заключается в том, считается ли это переобучением. Если да, то как можно этого избежать? Я просмотрел несколько постов на StackOverflow, но не нашел ничего, что относилось бы к моему конкретному случаю.
Вы можете разделить ваш набор данных на обучающую и тестовую выборки. Затем определить параметры шаблона из обучающей выборки. После этого примените свою обученную модель к тестовой выборке, чтобы оценить её производительность.
Если вы обнаружите, что ваша модель работает плохо, то вы знаете, что вы переобучились.
Кроме того, поскольку это торговая стратегия и, возможно, включает временные ряды, вы должны убедиться, что отсутствует утечка данных, а тестовая выборка относится к более позднему временному периоду, чем обучающая выборка.
.
Ответ или решение
Избегание переобучения в задачах с использованием методов неструктурированного машинного обучения (машинное обучение без учителя) является важной и сложной задачей, особенно в контексте создания торговых стратегий. Когда вы разрабатываете стратегию, основанную на паттернах, и проводите оптимизацию множества параметров на всей выборке данных для получения максимальной прибыли, существует риск переобучения. Это происходит, когда модель становится слишком точной на обучающей выборке, но при этом теряет способность к генерализации на новых, ранее не виданных данных.
Теория
Машинное обучение без учителя, например, использование кластеризации или понижения размерности, отличается от супервизированного тем, что нет заранее размеченных классов или меток. Однако принципы избежания переобучения остаются важными и в этом контексте. Переобучение возникает, когда модель слишком точно соответствует случайным шумам или особенностям обучающего набора данных, что приводит к снижению её эффективности на новых данных.
Главной причиной переобучения является слишком сложная модель по сравнению с объемом и качеством данных. Использование всего массива данных для оптимизации параметров стратегии может приводить к "подгонке" модели к этой выборке, но не к способности к адаптации. В трейдинге это может привести к разработке стратегий, которые показывают высокие результаты в тестировании, но неэффективны в реальных рыночных условиях.
Пример
Предположим, используется алгоритм кластеризации для идентификации паттернов цен акции. На этапе настройки параметров выбираются такие параметры, которые максимизируют прибыль на исторических данных. Тем не менее, такой подход может привести к ситуации, когда выявленные паттерны эффективно работают только на этих данных и не воспроизводятся на новых временных периодах из-за временной корреляции данных и присутствия случайных пиков или спадов.
Применение
Чтобы минимизировать риск переобучения в контексте торговых стратегий, основанных на алгоритмах машинного обучения без учителя, рекомендуется следующие шаги:
-
Разделение данных: Разделите ваш набор данных на обучающую и тестовую выборки. Это наиболее распространенный подход в машинном обучении, который позволяет проверять способность модели к адаптации на новых данных. В контексте временных рядов важно, чтобы тестовая выборка содержала более поздние данные по отношению к обучающей, это помогает избежать утечки данных.
-
Кросс-валидация по временной шкале: Используйте методы кросс-валидации, адаптированные для временных рядов, такие как TimeSeriesSplit. Они позволяют более объективно оценить стабильность и робастность стратегии на разных временных интервалах.
-
Регуляризация: Введение регуляризации может помочь ограничить комплексность модели, предотвращая её излишнюю зависимость от шумов в данных. Например, можно ограничить число кластеров или компоненты при снижении размерности.
-
Репликация и стресс-тестирование: Проверьте стратегию на различных подмножествах данных или на аналогичных временных периодах (например, данных с разных рынков). Это покажет истинную устойчивость стратегии к изменениям входных данных.
-
Оценка значимости параметров: Дополнительно оцените стабильность и значимость выбранных параметров на различных тестовых выборках. Если параметры значительно изменяются при другой выборке, это может указывать на вероятность переобучения.
-
Отслеживание производительности: После развертывания стратегии в реальных условиях, следите за её производительностью и будьте готовы модифицировать или настраивать параметры в ответ на новые данные.
Таким образом, следуя приведённым рекомендациям, вы можете снизить риски переобучения и повысить вероятность того, что разработанная торговая стратегия будет оставаться эффективной не только на исторических данных, но и в будущем.