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

 
Aleksey Vyazmikin:

оценка oob (out of bag)

 
Maxim Dmitrievsky:

оценка oob (out of bag)

Читал про этот метод тут https://habr.com/company/ods/blog/324402/ но не смог увидеть, как оценка может влиять на поиск закономерности в изменяемых данных. Может я не верно говорю, но вот простой пример в выборке у нас, допустим, есть такая закономерность

"

1+2=3

...

1+2=3,5

...

1+2=3,8

...

1+2=3,5

...

1+2=3

"

"..." - это не определенный промежуток времени через которое меняется правило. Пусть даже в идеале  там есть закономерность изменения правил. Как леса смогут найти эту закономерность, что мол через n строк выборки будет изменено правило, а через n*x правило вернется в изначальное? А  если характер смены правил не просто временной интервал, а влияние других обстоятельств, данные о которых есть в выборки, но закономерность их влияния можно оценить только по последовательности наступления событий (т.е. по последовательности подачи каждой строки с данными)? Леса же выдергивают куски по разным методикам, как они смогут увидеть не только горизонтальную (набор предикторов) закономерность, но и вертикальную (изменение предикторов относительно прошлого n)?

 
Aleksey Vyazmikin:

позже отвечу, вечером.. резко внезапно захотелось пиццы и светленького

 
Maxim Dmitrievsky:

позже отвечу, вечером.. резко внезапно захотелось пиццы и светленького

Весна - может объяснять внезапность :)

Буду ждать ответа, спасибо, что уделяете время моим, наверное, глупым вопросам.

 
Aleksey Vyazmikin:

Весна - может объяснять внезапность :)

Буду ждать ответа, спасибо, что уделяете время моим, наверное, глупым вопросам.

наоборот правильные логичные вопросы, я сам недавно ими задавался

 
Aleksey Vyazmikin:

"..." - это не определенный промежуток времени через которое меняется правило. Пусть даже в идеале  там есть закономерность изменения правил. Как леса смогут найти эту закономерность, что мол через n строк выборки будет изменено правило, а через n*x правило вернется в изначальное? А  если характер смены правил не просто временной интервал, а влияние других обстоятельств, данные о которых есть в выборки, но закономерность их влияния можно оценить только по последовательности наступления событий (т.е. по последовательности подачи каждой строки с данными)? Леса же выдергивают куски по разным методикам, как они смогут увидеть не только горизонтальную (набор предикторов) закономерность, но и вертикальную (изменение предикторов относительно прошлого n)?

Ну не совсем изменение закономерности. Скорее, более грубое приближение. Если выборка достаточно большая, например, то леса обучаются на случайных подмножествах, выдирают из нее куски, да, а на oob (оставшихся кусках) модель валидируется, и сравниваются ошибки. Если ошибки +- одинаковые, значит леса не переобучены, значит больше вероятность правильных предсказаний в будущем. Если ошибка на oob не удовлетворительная, то можно немного поиграть с настройками, например, уменьшить обучающее подмножество (добавить больше шума в модель) и увеличить валидационное. Тем самым, модель уже хуже аппроксимирует обучающие примеры, ошибка будет больше, но на новых данных есть шанс получить точно такую же ошибку, т.е. модель будет стабильной на обеих подвыборках. А поскольку подвыборки сами по себе выбираются случайно, то охватывается большое кол-во неизвестных на обучающей подв. случаев. Понятно, что это не панацея, но дает больше гибкости в работе,  в отличии от просто деревьев. То же самое и с ансамблями НС.

 
Maxim Dmitrievsky:

Ну не совсем изменение закономерности. Скорее, более грубое приближение. Если выборка достаточно большая, например, то леса обучаются на случайных подмножествах, выдирают из нее куски, да, а на oob (оставшихся кусках) модель валидируется, и сравниваются ошибки. Если ошибки +- одинаковые, значит леса не переобучены, значит больше вероятность правильных предсказаний в будущем. Если ошибка на oob не удовлетворительная, то можно немного поиграть с настройками, например, уменьшить обучающее подмножество (добавить больше шума в модель) и увеличить валидационное. Тем самым, модель уже хуже аппроксимирует обучающие примеры, ошибка будет больше, но на новых данных есть шанс получить точно такую же ошибку, т.е. модель будет стабильной на обеих подвыборках. А поскольку подвыборки сами по себе выбираются случайно, то охватывается большое кол-во неизвестных на обучающей подв. случаев. Понятно, что это не панацея, но дает больше гибкости в работе,  в отличии от просто деревьев. То же самое и с ансамблями НС.

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

А если нарезать выборку и обучать на меньших кусках (допустим год разрезать на 12 месяцев и взять так 2-3 года), а потом уже, в случае дерева, собрать все правила от каждого дерева с большим весом и сопаставить их с 24 выборками (если правила работает менее чем на х% вариантов выборки, то выкинуть его), то не сможем ли мы увидеть, что разные правила будут работать на разных периодах? Тогда можно сделать предположение о цикличности, которая должна иметь место быть на финансовых рынках, в силу исчисления времени (финансовым отчетам).

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


Если взять предиктор под названием "arr_TimeH" и задуматься, то становится очевидно, что в разное время от рынка можно ждать разное поведение, так в 10 утра на открытии биржи будет сильное движение, так как отрабатывается информация (накопленные события) с момента отсутствия торгов, а в остальное время может быть ситуация разной, те же плановые новости могут выходить, после которых будет весьма вероятно сильное движение рынка, с другой стороны есть вечерняя сессия, где движение часто меняется против прошлого дня, может быть менее амплитудно, т. е. время явно влияет на состояние рынка и дерево это увидело, а корреляционный анализ нет. Поэтому я думаю, что методы МО для трейдинга надо использывать с поправкой на трейдинг, а не просто доверять уде устоявшимся традициям, в том числе предобработки данных.


P. S. Оформлял таблички в фотошопе, галочки ставил по желанию, что б выделить цвет, и офигел, когда увидел, что цвет галочек совпал с цветом шкал оценки значимости - вподь до тона! Как так? Получается, что я бессознательно на это обратил внимание и это повлияло на мой выбор, может так же торгуют интуитивно люди, т.е. по системе, которую не осознают.

 
Aleksey Vyazmikin:
 

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

Возможно по комбинации ваших временных предикторов (месяц,неделя,день,час...) дерево просто выходит на конкретный BUY/SELL бар.

Это как запомнить Time больших баров и прибыльно торговать по ним на истории, хотя корреляция этого атрибута с движением цены будет практически нулевая.

 
Ivan Negreshniy:

Возможно по комбинации ваших временных предикторов (месяц,неделя,день,час...) дерево просто выходит на конкретный BUY/SELL бар.

Это как запомнить Time больших баров и прибыльно торговать по ним на истории, хотя корреляция этого атрибута с движением цены будет практически нулевая.

Возможно, и выходит, но предикторов всего два - день недели и час, т.е. можно получить 5*14=70 групп по такому признаку, а в выборке 403933 строк, т.е. в группу попадает 5770 строк, с другой стороны целевых 33000, то получается на каждую группу 471 целевая попадает. А если ещё учесть, что есть и другие предикторы - то у нас уже будет очень много групп. Это как яблоко порезать вдоль и поперек на кусочки, промаркировать дольки и записать в табличку те дольки, где больше одних признаков, чем других, а так-как долек очень много, то будут дольки и только с одним признаком. Поэтому и встает вопрос, сколько должно быть предикторов на определенный размер выборки? Какого размера должны быть куски яблока?

Ну а сама по себе закономерность в днях и часах есть, и влияние тут оказывают хронометрические факторы - открытие торговой сессии, период торговых сессий, новости (экономические/статистические, которые в основном выходят в одно и то же время и день недели).

 
Aleksey Vyazmikin:

Возможно, и выходит, но предикторов всего два - день недели и час, т.е. можно получить 5*14=70 групп по такому признаку, а в выборке 403933 строк, т.е. в группу попадает 5770 строк, с другой стороны целевых 33000, то получается на каждую группу 471 целевая попадает. А если ещё учесть, что есть и другие предикторы - то у нас уже будет очень много групп. Это как яблоко порезать вдоль и поперек на кусочки, промаркировать дольки и записать в табличку те дольки, где больше одних признаков, чем других, а так-как долек очень много, то будут дольки и только с одним признаком. Поэтому и встает вопрос, сколько должно быть предикторов на определенный размер выборки? Какого размера должны быть куски яблока?

Ну а сама по себе закономерность в днях и часах есть, и влияние тут оказывают хронометрические факторы - открытие торговой сессии, период торговых сессий, новости (экономические/статистические, которые в основном выходят в одно и то же время и день недели).

Maxim Dmitrievsky, как ты решаешь эту проблему?

Вообще какие варианты есть? Куски яблока могут быть разными..
Для каждой нс из ансамбля добавить той или иной контекст и юзать эти контексты в неком управляющем нс?
Под контекстом имею в виду, например, связь с каким то базовым определением, понятием, предиктором и плюс какие то данные..

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