Обсуждение статьи "Машинное обучение от Яндекс (CatBoost) без изучения Phyton и R" - страница 3

 
Andrey Dibrov:
А, попробуйте повторить этот же эксперимент, только добавив к обучающей выборке еще месяц-два истории и потом сравнить два теста. Останется ли нейросеть стабильной, какое влияние на эту модель имеют более современные ценовые движения...

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

Я убежден, что данных мало на коротких выборках, но я сейчас обучаю выборки, что б удовлетворить любопытство читателей:

1. Окно за год с разным числом деревьев - сравним результат. (не используется контрольная выборка)

2. Окно за 3 год с разным числом деревьев - сравним результат. (не используется контрольная выборка)

3. Окно за год с добавлением новых данных каждый месяц с разным числом деревьев - сравним результат. (не используется контрольная выборка)

Придется подождать завершение вычислительного процесса - моделей строится много.

 
Aleksey Vyazmikin:

Давайте от абстракций перейдем к цифрам. На сколько малое окно будет эффективным?

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

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

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

 
Valeriy Yastremskiy:

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

Так оптимальную ширину мы сможем узнать только после того, как сможем задетектить новое состояние рынка.

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

 
Aleksey Vyazmikin:

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

Я убежден, что данных мало на коротких выборках, но я сейчас обучаю выборки, что б удовлетворить любопытство читателей:

1. Окно за год с разным числом деревьев - сравним результат. (не используется контрольная выборка)

2. Окно за 3 год с разным числом деревьев - сравним результат. (не используется контрольная выборка)

3. Окно за год с добавлением новых данных каждый месяц с разным числом деревьев - сравним результат. (не используется контрольная выборка)

Придется подождать завершение вычислительного процесса - моделей строится много.

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

 
Andrey Dibrov:

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

Как без экспериментов с нейросетями на выборке Вы планируете получить ответ на поставленный вопрос?

Можно оценить показатели предикторов во времени, вот к примеру процент закрытия от "чего то там" - видно на диаграмме, что смещение гуляет по строкам (каждая строка N строк выборки) - и если возьмём 1/10 выборки, то у нас будет недостаточно информации, когда показатель сместится в сторону (к примеру это зависит от глобальной тенденции на верхнем TF).


Кстати, на рисунке видно, как происходит разбитие (квантование) данных в виде сетки CatBoostом.
 

Пока готов первый вариант:

1. Окно за год с разным числом деревьев - сравним результат. (не используется контрольная выборка)

400 деревьев получается, что недостаточно, а 1600 избыточно.

Динамика у кривых схожая, есть идеи, почему так?

 
Aleksey Vyazmikin:

Пока готов первый вариант:

1. Окно за год с разным числом деревьев - сравним результат. (не используется контрольная выборка)

400 деревьев получается, что недостаточно, а 1600 избыточно.

Динамика у кривых схожая, есть идеи, почему так?

200 не хватает информации, а 1600 происходит потеря информации, или не выявление значимой. 

 
Valeriy Yastremskiy:

200 не хватает информации, а 1600 происходит потеря информации, или не выявление значимой. 

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

 

2. Окно за 3 год с разным числом деревьев - сравним результат. (не используется контрольная выборка)


Опять наблюдаем, что оптимальным является 800 итераций, поэтому для третьего варианта не стал делать больше. Что смущает - так это сильный провал в марте 2020 - то ли это влияние кризиса, выходящего за рамки модели, то ли ошибка в выборке - я делал обучение на склейке и мог попасться гэп из-за перехода на новый фьючерсный контракт, которого в реале не было. Из позитивного - обучения явно идет лучше, чем при 12 месяцах (смотрите этот отрезок времени на прошлом графике!), что радует и говорит опять же о том, что на 12 месяцах не умещается вся вариативность рынка.

3. Окно за год с добавлением новых данных каждый месяц с разным числом деревьев - сравним результат. (не используется контрольная выборка)


На рисунке видно, что прирост модели из 400 итераций происходил быстрей или вровень, но с ростом размера выборки тенденция изменилось, и модель из 800 итераций стала отрываться, меньше ошибаясь и лучше закрывая месяц. Видимо, тут надо в динамике увеличивать размер модели.

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

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

 

На рисунке ниже представлена информация о Recall - синяя гистограмма - это модели с накоплением выборки, а красная - модели с фиксированным окном 12 месяцев.

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

Причина обращения: