Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 3167
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Насколько понимаю, закомментированы команды для работы с R в интерактивной сессии. Сначала загружаете весь скрипт целиком, чтобы определить функции, а потом команды построчно, нажимая ввод после каждой. Это наверно что-то вроде стандарта в научных публикациях - опираться только на командную строку и избегать всяких сред типа Рстудио.
Для краткости обозвал шаблонами одновременно дерево CTree из коллекции данных и шаблоны классов, которые вроде тоже неизбежны.
Детекция аномалий там значится в целях - ищется же где аномально часты пожары.
PS. Когда-то писал уже вам про использование распределения Пуассона, а здесь это развито до рабочего кода.
Пока так и не попробовал всё это дело - завис над одной своей задачей.
Обязательно буду пробовать запустить на своих данных. Накапливаю разные решения на эту тему.
По поводу распределения Пауссона - как бы в теории интересно, но когда смотрю на данные, на последовательность, то допустим, может подряд идти 20 нулей, а потом миксы из нулей и единиц, и вот эти пропуски существенные, они как то кажутся не соответствуют распределению.
По поводу распределения Пауссона - как бы в теории интересно, но когда смотрю на данные, на последовательность, то допустим, может подряд идти 20 нулей, а потом миксы из нулей и единиц, и вот эти пропуски существенные, они как то кажутся не соответствуют распределению.
Вроде идея в том, чтобы посредством сплитов по признакам, раскидать примеры по группам, которые отличаются друг от друга и внутри которых есть однородность. Совсем не факт, что конкретные признаки позволяют это сделать. Да и вообще не факт, что хоть какие-нибудь позволяют - из-за нестационарности, например.
Конкретно эту статью вплотную изучать не планирую, поскольку она только краешком касается интересующей меня темы. CHAID немного ближе, но тоже не совсем то.
Владимир, какой максимальный "честный" акураси вы получали на новых данных?
И с каким алгоритмом МО?
Вроде идея в том, чтобы посредством сплитов по признакам, раскидать примеры по группам, которые отличаются друг от друга и внутри которых есть однородность. Совсем не факт, что конкретные признаки позволяют это сделать. Да и вообще не факт, что хоть какие-нибудь позволяют - из-за нестационарности, например.
Конкретно эту статью вплотную изучать не планирую, поскольку она только краешком касается интересующей меня темы. CHAID немного ближе, но тоже не совсем то.
То-то и оно, хочется находить именно в динамике изменения очередности последовательности какую то закономерность, или хотя бы оценку смещения с выявлением точки перелома. И это я говорю о банальных бинарных предикторах. К примеру выявить 5 последовательностей, которые встречались последние пять лет, посмотреть на их устойчивость предрасположенности к значению целевой, и дальше, если пойдут существенные изменения как последовательностей, так и предрасположенности, то либо исключать предиктор из обучения, либо из модели. За последние пол года много всяких методов прочитал/просмотрел - но всё это закодировать мне просто не реально будет для проверки - работы очень много. Самое печальное, когда работаешь над чем то, а потом понимаешь, что результата нет ожидаемого.
В чём видите преимущество CHAID?
Такой метод обучения - детекция выгодных для исключения строк из выборки (обнуление) по квантовому отрезку.
Каждый шаг - добавление правила. Правила примерно так выглядит по смыслу if( arr_Q[n0][i]==1 || arr_Q[n1][i]==1 || arr_Q[nn][i]==1 ) Propusk=true;
Это гифка - нужно нажать для того, что бы работала.
Баланс - прибыль в пунктах - пятизнак.
Да, это только кусок выборки для обучения, пока дальше не делал - экспериментирую.
Добавлено: А вот другой критерий оценки выбора квантового отрезка, по которому будет исключён сигнал - кажется, что тут бодрей произошло удаление убыточных строк.
То-то и оно, хочется находить именно в динамике изменения очередности последовательности какую то закономерность, или хотя бы оценку смещения с выявлением точки перелома. И это я говорю о банальных бинарных предикторах. К примеру выявить 5 последовательностей, которые встречались последние пять лет, посмотреть на их устойчивость предрасположенности к значению целевой, и дальше, если пойдут существенные изменения как последовательностей, так и предрасположенности, то либо исключать предиктор из обучения, либо из модели. За последние пол года много всяких методов прочитал/просмотрел - но всё это закодировать мне просто не реально будет для проверки - работы очень много. Самое печальное, когда работаешь над чем то, а потом понимаешь, что результата нет ожидаемого.
ИМХО, плохой подход в комбинаторном смысле. Слишком богатый набор последовательностей вполне может привести к переобученности - всегда будут случайно возникшие "хорошие" последовательности.
В чём видите преимущество CHAID?
Продуманность с точки зрения матстата, прежде всего. Это и остановка построения дерева по достижению заданного уровня значимости, вместо какого-нибудь левого правила. И использование поправки Бонферони и тд. Просто эстетически приятно смотреть на столь продуманную модель) Хотя, конечно, использование только номинальных признаков совсем не устраивает, поэтому ищу (пытаюсь построить) другое.
То-то и оно, хочется находить именно в динамике изменения очередности последовательности какую то закономерность, или хотя бы оценку смещения с выявлением точки перелома. И это я говорю о банальных бинарных предикторах. К примеру выявить 5 последовательностей, которые встречались последние пять лет, посмотреть на их устойчивость предрасположенности к значению целевой, и дальше, если пойдут существенные изменения как последовательностей, так и предрасположенности, то либо исключать предиктор из обучения, либо из модели. За последние пол года много всяких методов прочитал/просмотрел - но всё это закодировать мне просто не реально будет для проверки - работы очень много. Самое печальное, когда работаешь над чем то, а потом понимаешь, что результата нет ожидаемого.
В чём видите преимущество CHAID?
1) Если действовать следущим образом - получится ли такой же результат, как у вас (по смыслу)?
Берем лист (после 5 сплитов), сортируем все примеры в нем по времени, если вначале рост, а потом падение выше какого-то значения - удаляем лист из использования.
2) На графиках у вас ООС?
3) Отсев правил/листов происходит по данным из трейна или валида/теста.
ИМХО, плохой подход в комбинаторном смысле. Слишком богатый набор последовательностей вполне может привести к переобученности - всегда будут случайно возникшие "хорошие" последовательности.
Тут вопрос в выявлении стабильности, если она есть на истории, то есть хоть какой то повод ждать её при реальном использовании признаков в модели. А сам метод для выявления этого - может быть разный. Но, оценки распределения мало, это не позволяет оценить устойчивость. Либо нужна чистка. А ещё я столкнулся с тем, что если брать по интервалам, допустим месяц, то сигналов уже мало становится для каких либо статистических выводов. На этом пока и поставил многоточие... В любом случае важно оценивать распределение событий по времени.
Продуманность с точки зрения матстата, прежде всего. Это и остановка построения дерева по достижению заданного уровня значимости, вместо какого-нибудь левого правила. И использование поправки Бонферони и тд. Просто эстетически приятно смотреть на столь продуманную модель) Хотя, конечно, использование только номинальных признаков совсем не устраивает, поэтому ищу (пытаюсь построить) другое.
Надо будет попробовать. А Вы делали сравнения с другими вариантами построения деревьев, результат действительно лучше?
1) Если действовать следущим образом - получится ли такой же результат, как у вас (по смыслу)?
Берем лист (после 5 сплитов), сортируем все примеры в нем по времени, если вначале рост, а потом падение выше какого-то значения - удаляем лист из использования.
2) На графиках у вас ООС?
3) Отсев правил/листов происходит по данным из трейна или валида/теста.
1. Отклонение - нормальное явление, тут вопрос в цикличности, если это про лист разговор ( у меня квантовый отрезок - буквально лист два сплита F>=X1 && F<X2 ). Т.е. если это колебания даже возле нуля, то уже не плохо, но они не должны быть сильно задраны в одну сторону (для оценки я беру 10 интервалов выборки). Или буквально, как Вы пишите, в начале был рост, а потом в основном падение - это сразу в мусор. Но это всё про листья, а если квантовый отрезок, то там отбор по смещению вероятности от 5% от средней для класса, как один из критериев первоначального отбора.
2. Нет конечно, я же написал, что это выборка для обучения. Самого обучения какой либо модели нет - предполагаю что нужно ещё обучить.
3. На трейне в примере. Но не отсев, а как раз выбор тех, которые будут в качестве фильтра, т.е. загонять в ноль отклик модели. Ну и исключать строки/примеры из обучения, видимо.
А вообще, если сделать упор на выявления устойчивых этих квантовых отрезков (считайте - бинарных предикторов), то и дальше такая "модель" будет работать без обучения каким либо классификатором. А пока это сделать не удаётся, применять классификаторы и смысла нет особого. Конечно, рандом никто не отменял, и можно найти какие то успешные модели, но вот обоснованно так считать будет сложно.
Из минусов метода - падение Recall, но он не сильней чем у модели CatBoost - примерно до 0,5 в примере.
А Вы делали сравнения с другими вариантами построения деревьев, результат действительно лучше?
То что попадалось в готовом виде не очень подходит для рынка, а самопальное не готово. Но особых надежд не питаю, потому особо и не тороплюсь.