Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 2413

 
Maxim Dmitrievsky:
Проще взять любую связку фича-целевая и фильтровать сигналы по времени до тех пор, пока не будет найден устойчивый сигнал. И собрать из таких моделек бота

Либо я не понял сути, тогда напишите подробней, либо я не понимаю, чем предложенные действия отличаются от добавлении к предиктору_1 дополнительного предиктора_2, содержащего информацию о времени?

 
Aleksey Vyazmikin:

Тут подумал, как можно улучшить метод отбора предикторов/признаков/фичей через анализ полученной модели.

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


Отбор предикторов по частоте их использования (Feature importance) при создании модели CatBoost

Идея заключается в том, что у каждого алгоритма есть свои особенности построения деревьев, и мы будем отбирать те предикторы, которые чаще используются алгоритмом конкретным алгоритмом, в данном случае CatBoost.

Однако, для оценки равномерности по шкале времени, будем использовать множество выборок и сводить их данные в единую таблицу. Такой подход позволит отсеять случайные события, оказавшие сильное влияние на выбор предиктора в одной из моделей. Закономерности, на которых построена модель, должны встречаться на протяжении всей выборки, что может способствовать правильной классификации на новых данных. Данная особенность применима к данным, получаемым с рынка, т.е. данным не имеющим завершенности, в том числе со скрытой цикличностью, т.е. не временной, а событийной. При этом желательно штрафовать предикторы, которые в одном из участков не вошли в 30%-50% лучших, что позволит отобрать предикторы, которые наиболее часто оказываются востребованы при создании моделей на разных временных участках.

Так же, для снижения фактора случайности, нужно использовать модели с разным значением Seed, думаю что таких моделей должно быть от 25 до 100. Стоит ли добавлять коэффициент в зависимости от качества полученной модели или просто усреднить все результаты по предикторам - пока не знаю, но думаю, что надо начинать с простого, т.е. просто усреднить.

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

Получить таблицу квантования можно:

  1. Установив гиперпараметры для CatBoost по типу и числу разбиений на кванты всей учебной выборки, и сохранить результаты в csv.
  2. Установив гиперпараметры для CatBoost по типу и числу разбиений на кванты выбрав один из участков выборки, допустим самый лучший, и сохранить результаты в csv.
  3. Получить таблицу с помощью отдельного скрипта, который выбирает лучшие варианты из множества таблиц.
Ранее полученные таблицы используются для каждой выборки через принудительную загрузку таблицы при обучении.

Квантовать можно самому до подачи в буст - все будет под вашим контролем.
От 0 до0,00005 =0,00005 от 0,00005 до 0,00010 = 0,00010 и т.д

 
elibrarius:

Квантовать можно самому до подачи в буст - все будет под вашим контролем.
От 0 до0,00005 =0,00005 от 0,00005 до 0,00010 = 0,00010 и т.д

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

 
Aleksey Vyazmikin:

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

Вам 3х мало? И так утроилось число экспериментов)) куда еще?
 
Aleksey Vyazmikin:

Либо я не понял сути, тогда напишите подробней, либо я не понимаю, чем предложенные действия отличаются от добавлении к предиктору_1 дополнительного предиктора_2, содержащего информацию о времени?

Есть пока причины не писать подробности, но они когда-нибудь появятся. Части схемы уже описывались тут. Вижу это единственным вменяемым вариантом, не привязанным к шелухе отбора признаков. В идеале признаки могут быть любыми, метки тоже. Задача алгоритма откалиброваться под них, с учетом временной составляющей (фильтрация мест, где эти признаки не работают). Пруфы - мета лейбелинг от Прадо с некоторым тюнингом этого подхода. Вы находитесь совершенно в другой степи, поэтому понимания может и не возникнуть.
 
elibrarius:
Вам 3х мало? И так утроилось число экспериментов)) куда еще?

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

 
Maxim Dmitrievsky:
Есть пока причины не писать подробности, но они когда-нибудь появятся. Части схемы уже описывались тут. Вижу это единственным вменяемым вариантом, не привязанным к шелухе отбора признаков. В идеале признаки могут быть любыми, метки тоже. Задача алгоритма откалиброваться под них, с учетом временной составляющей (фильтрация мест, где эти признаки не работают). Пруфы - мета лейбелинг от Прадо с некоторым тюнингом этого подхода. Вы находитесь совершенно в другой степи, поэтому понимания может и не возникнуть.

Да, про калибровку алгоритма, действительно, ничего не ясно. Даже если отфильтровали места на обучении, то как распознавать места эти при применении - не ясно.

 
elibrarius:

Фанат фильма матрица?

При чем тут матрица?
Читаю умных людей, за час чтения информации можно получить больше чем за 10 лет чтения бложыков всяких недобитков сайнтистов, заморских 
и не очень...
 
Пока сделал так, разбил выборку для обучения (60% от всей выборки) на подвыборки по 6 месяцев - получилось 8 выборок. Для тестовой выборки использую ту же выборку, что и для обучения, таким образом фактически происходит заучивание и модель будет состоять в 1000 деревьев (не знаю, может ограничиться сотней?). Квантовую таблицу взял по показателям обучения на выборке без дополнительного разбиения - всего 8 квантов предлагается. Выборка маленькая, надеюсь, что за сутки все модели получаться, потом буду делать скрипт для обработки данных.
 

Любителям фреймворков.

https://habr.com/ru/post/559796/

и в пандан рекомендую - пробуйте прикрутить куда фантазии хватит -

Постоянные Фейгенбаума.

Прогнозирование временных рядов с помощью AutoML
Прогнозирование временных рядов с помощью AutoML
  • 2021.05.30
  • habr.com
В лаборатории моделирования природных систем Национального центра когнитивных разработок Университета ИТМО мы активно исследуем вопросы применения автоматического машинного обучения для различных задач. В этой статье мы хотим рассказать о применении AutoML для эффективного прогнозирования временных рядов, а также о том, как это реализовано в...
Причина обращения: