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

 
Aleksey Nikolayev #:

Насколько понимаю, закомментированы команды для работы с R в интерактивной сессии. Сначала загружаете весь скрипт целиком, чтобы определить функции, а потом команды построчно, нажимая ввод после каждой. Это наверно что-то вроде стандарта в научных публикациях - опираться только на командную строку и избегать всяких сред типа Рстудио.

Для краткости обозвал шаблонами одновременно дерево CTree из коллекции данных и шаблоны классов, которые вроде тоже неизбежны.

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


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

Пока так и не попробовал всё это дело - завис над одной своей задачей.

Обязательно буду пробовать запустить на своих данных. Накапливаю разные решения на эту тему.

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

 
Aleksey Vyazmikin #:

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

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

Конкретно эту статью вплотную изучать не планирую, поскольку она только краешком касается интересующей меня темы.  CHAID немного ближе, но тоже не совсем то.

 
Vladimir Perervenko #:

Владимир, какой максимальный "честный" акураси вы получали на новых данных?

И с каким алгоритмом МО?

 
Aleksey Nikolayev #:

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

Конкретно эту статью вплотную изучать не планирую, поскольку она только краешком касается интересующей меня темы.  CHAID немного ближе, но тоже не совсем то.

То-то и оно, хочется находить именно в динамике изменения очередности последовательности какую то закономерность, или хотя бы оценку смещения с выявлением точки перелома. И это я говорю о банальных бинарных предикторах. К примеру выявить 5 последовательностей, которые встречались последние пять лет, посмотреть на их устойчивость предрасположенности к значению целевой, и дальше, если пойдут существенные изменения как последовательностей, так и предрасположенности, то либо исключать предиктор из обучения, либо из модели. За последние пол года много всяких методов прочитал/просмотрел - но всё это закодировать мне просто не реально будет для проверки - работы очень много. Самое печальное, когда работаешь над чем то, а потом понимаешь, что результата нет ожидаемого.

В чём видите преимущество  CHAID?

 

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

Каждый шаг - добавление правила. Правила примерно так выглядит по смыслу if( arr_Q[n0][i]==1 || arr_Q[n1][i]==1 ||  arr_Q[nn][i]==1 ) Propusk=true;

Это гифка - нужно нажать для того, что бы работала.

Баланс - прибыль в пунктах - пятизнак.

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

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


 
Aleksey Vyazmikin #:

То-то и оно, хочется находить именно в динамике изменения очередности последовательности какую то закономерность, или хотя бы оценку смещения с выявлением точки перелома. И это я говорю о банальных бинарных предикторах. К примеру выявить 5 последовательностей, которые встречались последние пять лет, посмотреть на их устойчивость предрасположенности к значению целевой, и дальше, если пойдут существенные изменения как последовательностей, так и предрасположенности, то либо исключать предиктор из обучения, либо из модели. За последние пол года много всяких методов прочитал/просмотрел - но всё это закодировать мне просто не реально будет для проверки - работы очень много. Самое печальное, когда работаешь над чем то, а потом понимаешь, что результата нет ожидаемого.

ИМХО, плохой подход в комбинаторном смысле. Слишком богатый набор последовательностей вполне может привести к переобученности - всегда будут случайно возникшие "хорошие" последовательности.

Aleksey Vyazmikin #:

В чём видите преимущество  CHAID?

Продуманность с точки зрения матстата, прежде всего. Это и остановка построения дерева по достижению заданного уровня значимости, вместо какого-нибудь левого правила. И использование поправки Бонферони и тд. Просто эстетически приятно смотреть на столь продуманную модель) Хотя, конечно, использование только номинальных признаков совсем не устраивает, поэтому ищу (пытаюсь построить) другое.

 
Aleksey Vyazmikin #:

То-то и оно, хочется находить именно в динамике изменения очередности последовательности какую то закономерность, или хотя бы оценку смещения с выявлением точки перелома. И это я говорю о банальных бинарных предикторах. К примеру выявить 5 последовательностей, которые встречались последние пять лет, посмотреть на их устойчивость предрасположенности к значению целевой, и дальше, если пойдут существенные изменения как последовательностей, так и предрасположенности, то либо исключать предиктор из обучения, либо из модели. За последние пол года много всяких методов прочитал/просмотрел - но всё это закодировать мне просто не реально будет для проверки - работы очень много. Самое печальное, когда работаешь над чем то, а потом понимаешь, что результата нет ожидаемого.

В чём видите преимущество  CHAID?

1) Если действовать следущим образом - получится ли такой же результат, как у вас (по смыслу)?
Берем лист (после 5 сплитов), сортируем все примеры в нем по времени, если вначале рост, а потом падение выше какого-то значения - удаляем лист из использования.

2) На графиках у вас ООС?

3) Отсев правил/листов происходит по данным из трейна или валида/теста.

 
Aleksey Nikolayev #:

ИМХО, плохой подход в комбинаторном смысле. Слишком богатый набор последовательностей вполне может привести к переобученности - всегда будут случайно возникшие "хорошие" последовательности.

Тут вопрос в выявлении стабильности, если она есть на истории, то есть хоть какой то повод ждать её при реальном использовании признаков в модели. А сам метод для выявления этого - может быть разный. Но, оценки распределения мало, это не позволяет оценить устойчивость. Либо нужна чистка. А ещё я столкнулся с тем, что если брать по интервалам, допустим месяц, то сигналов уже мало становится для каких либо статистических выводов. На этом пока и поставил многоточие... В любом случае важно оценивать распределение событий по времени.

Aleksey Nikolayev #:

Продуманность с точки зрения матстата, прежде всего. Это и остановка построения дерева по достижению заданного уровня значимости, вместо какого-нибудь левого правила. И использование поправки Бонферони и тд. Просто эстетически приятно смотреть на столь продуманную модель) Хотя, конечно, использование только номинальных признаков совсем не устраивает, поэтому ищу (пытаюсь построить) другое.

Надо будет попробовать. А Вы делали сравнения с другими вариантами построения деревьев, результат действительно лучше?

 
Forester #:

1) Если действовать следущим образом - получится ли такой же результат, как у вас (по смыслу)?
Берем лист (после 5 сплитов), сортируем все примеры в нем по времени, если вначале рост, а потом падение выше какого-то значения - удаляем лист из использования.

2) На графиках у вас ООС?

3) Отсев правил/листов происходит по данным из трейна или валида/теста.

1. Отклонение - нормальное явление, тут вопрос в цикличности, если это про лист разговор ( у меня квантовый отрезок - буквально лист два сплита F>=X1 && F<X2 ). Т.е. если это колебания даже возле нуля, то уже не плохо, но они не должны быть сильно задраны в одну сторону (для оценки я беру 10 интервалов выборки). Или буквально, как Вы пишите, в начале был рост, а потом в основном падение - это сразу в мусор. Но это всё про листья, а если квантовый отрезок, то там отбор по смещению вероятности от 5% от средней для класса, как один из критериев первоначального отбора.

2. Нет конечно, я же написал, что это выборка для обучения. Самого обучения какой либо модели нет - предполагаю что нужно ещё обучить.

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

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

Из минусов метода - падение Recall, но он не сильней чем у модели CatBoost - примерно до 0,5 в примере.

 
Aleksey Vyazmikin #:

 А Вы делали сравнения с другими вариантами построения деревьев, результат действительно лучше?

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