Активно использую в алго ML модели. При обучении моделей тоже есть свои фишки и с точки зрения защиты от оверфиттинга и в целом. Поэтому часто обучаю по несколько моделей в одном скрипте. Это и параметры разные и участки данных разные и т.д.
Когда скрипты уже отлажены ты просто их гоняешь, оцениваешь результаты, принимаешь решения. Часто при этом в голове всплывают неотвеченные вопросы, одни помечаешь себе, другие нет. Одними из таких вопросов были: это модель хреновая или OOS неудачный для модели, или в целом неудачный, а есть для него удачная модель, а для удачной модели есть неудачные участки данных тоже? В общем если убрать за скобки ML – классическая тема про переоптимизацию про то, что рынок может благоприятствовать стратегии (а скорее целому классу стратегий), а может нет. Но как с этим у моделей обстоит. В общем до этого момента только фантазировал на эту тему, закрыть вопрос через исследование было не сложно, но как-то руки не доходили, а теперь дошли.
Что делал: условно, взял много данных, единое признаковое пространство, по-всякому нарезал данные таким образом чтобы разные модели обучались на разных участках данных и было так же сопоставимое с кол-вом моделей кол-во OOS участков. Убедился, что OOS в конкретной паре модель-OOS не участвовал в обучении данной модели и погнал тестить разные модели на разных OOS кусках.
Какие основные граалегипотезы проверял:
— В зависимости от участка данных модель может обучиться заметно лучше или заметно хуже.
— Или все-таки не так важно, как хороша модель – важно на какие данные её пустили предиктить.
Ну и так по мелочи ещё.
Сразу к результатам переходим чё.
Как и в классическом алго, участок данных, на котором торгует модель, решает. Обученные на разных участках модели кучно хреново себя чувствуют на одних участках и кучно хорошо на других. Модель показала себя на одном участке несколько лучше, чем другие, будет ли она и на других участках обгонять другие модели – нет не будет (если что-то и есть, то у этой закономерности не масштаб грааля точно).
Выводы.
Раньше в своих исследованиях при оценке модели мог запросто сравнивать модели между собой на основе разных OOS кусков (одну на одном OOS смотрел, другую на другом OOS), терь не буду.
Теперь будет один фиксированный кусок данных брать всегда. Ну или 3, но всегда одни и те же и сравнивать в разрезе отдельных кусков.
Возможные направления дальнейшего развития (исследования) этой темы:
— Если моделью можно размечать качество участков данных (с точки зрения удобства (имею в виду, что на таких данных модель качественно предиктит) для данной модели), можно пробовать разное, например, затестить гипотезу: а что если взять из данных самые лучшие участки (для данной модели) и обучить на этом же признаковом описании но на очень подходящих кусках данных модель, будет ли она лучше.
— А если так можно делать (обучаться «у лучших» и быть лучше), то, вероятно, концепт «модель, специализирующаяся на данных с конкретными характеристиками» не лишен смысла. И можно одной моделью размечать данные, другие пытаться целенаправленно натаскивать на данные, на которые первая модель плохо себя показывает, или же учить модель различать сами состояния (которые мы опять же теперь умеем размечать).
— Ну и кстати, если можно понять, что конкретный кусок данных хреново подходит данной модели, то, вероятно, можно пробовать сокращать размер такого куска (читай, повышать чувствительность) и пробовать в риал-тайме определять, благоприятствует ли состояние рынка модели.
В остальных случаях только оптимизация данных на ML.
1. Обучит МЛ на всех данных ВР или их производных принципиально невозможно.
2. Для обучения выделяю куски ВР на которых обучение возможно согласно предварительной гипотезе. Остальные участки ВР опускаются.
2. Проверка и последующая работа МЛ осуществляется только на участках соответствующих гипотезе. На остальных участках МЛ не применяется. Такие участки из работы исключаются.
Если гипотеза подтверждается, то МЛ и на реальных данных неплохо функционирует. Наша задача только селектировать такие участки до подачи на МЛ.
Ну, и такой подход новизной не отличается, описан практически повсеместно.
Я просто пока не нашел чего-то что обычным теханализом нельзя подтвердить.