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

 
Aleksey Vyazmikin:

А если находить ветви с хорошей вероятностью и их кодировать в один предиктор, а потом ещё раз давать дереву на перемол, тогда дерево будет думать как из найденных результатов сделать улучшение (предикторы же ему должны тогда понравится, раз в них большой процент верных решений?), как думаете?

Не знаю :) С деревом я такими экспериментами не занимался. Но например всякие GBM модели так и работают - строят дерево, затем ещё одно которое даст улучшение по сравнению с прошлым, затем ещё одно, итд.

 
Dr. Trader:

Если ветвить дальше, то точность на этих данных конечно вырастет. Но скорее всего упадёт на новых данных.

Тут достигнут некий оптимум, когда дерево уже что-то научилось, но оверфита ещё нету, и можно ожидать похожий результат на новых данных.

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

 
Dr. Trader:

Не знаю :) С деревом я такими экспериментами не занимался. Но например всякие GBM модели так и работают - строят дерево, затем ещё одно которое даст улучшение по сравнению с прошлым, затем ещё одно, итд.

Видимо надо почитать про эти GBM модели... а где их воспроизводят (только R?)?

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

 

Dr. Trader, я вот что обнаружил, если мы рассматриваем комбинацию из Levl_first_H1, Levl_High_H1, Levl_Low_H1, Levl_Support_H1, Levl_Close_H1 , как отдельное целое правило, в общем как оно изначально задумывалось, то получается занятная табличка


Из таблицы следует:

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

2. Появление новых уникальных правил от 2015 к 2016 году составило 41%, а с целевой 1 новых правил 55%, т.е. 45% правил из 2015 года осталось и продолжало действовать, что я считаю уже хорошо.

3. В выборке за 2015 и 2016 года используется всего 21% всех возможных комбинаций, тут или оставшиеся крайне уникальны, или недостаточна выборка.

Может стоит как то использовать эти факты при построении дерева?

Добавлено:

Далее провел такой эксперимент, к целевым 1 и 0 2015 года очищенные от дубликатов прибавил правила целевых 0 и 1 2016 года, потом удалил повторяющиеся строки, и получился удручающий результат, который что-то не могу осмыслить

Получается что ложных правил на целевую "1" - 81%, а на целевую "0" - 38%, хотя и не известно какой процент строк содержит процент ошибки... возможно же разное соотношение, иначе бы новых правил добавилось ровно столько, сколько их было обнаружено в 2016 году, а это не так, а значит что правила не всегда выполняются и им просто нужны дополнительные условия - предикторы.

 

Aleksey Vyazmikin:


Из таблицы следует:

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

Алексей, предлагаю сразу по-взрослому НС-ку делать. Только на одних выборках и лесах мы (MQL сообщество) далеко не уедем.

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

Мы ЗДЕСЬ с Максимом пофантазировали на этот счёт, прошу ознакомиться и подтвердить наличие там здравого смысла.

 
geratdc_:

Алексей, предлагаю сразу по-взрослому НС-ку делать. Только на одних выборках и лесах мы (MQL сообщество) далеко не уедем.

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

Мы ЗДЕСЬ с Максимом пофантазировали на этот счёт, прошу ознакомиться и подтвердить наличие там здравого смысла.

Вот я как раз и не уверен, что на рынке есть место НС...

 

А теперь внимание. Решил эту неделю порабоать по Доковскому скрипту и елмнн сетям.

А теперь самое интересное и что это может быть?????

При максимальном количестве нейронов равное 200 (по умолчанию) качество обучения составляло 0.6 по оценке R-score. Однако уменьшив максимальное количество скрытых нейронов до 30 я увеличил оценку до 0.85 (что очень хорошо). Однако стал получать копии моделей по весам. Получаю ВСЕГДА одни и те же веса. Вот тут и вопрос. Генетика упорно приходит в один и тот же минимум функции. Неужели данные настолько однозначны что в облисти вещественных чисел мы попадаем в один минимум с идентичными весовыми коэфицентами сети. Посмотрим как она то работает на недели...

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

 
Aleksey Vyazmikin:

Видимо надо почитать про эти GBM модели... а где их воспроизводят (только R?)?

В Питоне должно быть тоже.

Aleksey Vyazmikin:

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

Запущу алгоритм сегодня на ночь, покажу завтра что вышло

Aleksey Vyazmikin:

Из таблицы следует:

...

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

 
Mihail Marchukajtes:

При максимальном количестве нейронов равное 200 (по умолчанию) качество обучения составляло 0.6 по оценке R-score. Однако уменьшив максимальное количество скрытых нейронов до 30 я увеличил оценку до 0.85 (что очень хорошо). 

Генетика пытается за ограниченное количество вызовов функции найти правильные параметры. Сузив число вариантов этого параметра (30 вместо 200) генетика может более детально исследовать регион от 1 до 30. И это правильно, если знаешь конкретные пределы для поиска какого-то параметра модели, то лучше генетике сразу дать эту информацию.


Альтернативно:

gaResult <- ga(type="real-valued",
               fitness = GaFitness,
               min = c(1,1,0),
               max = c(NHID_MAX, length(ACTFUN_NAMES), 1000),
               popSize = 500,
               monitor=plot)

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

 

О, будет что почитать, а то забыл что это. Вернее, забыл чем отличается GBM ot XGboost.. или не знал

gbm вроде можно бустить любые модели, xgb вроде на деревьях

знаю что бустинг немного лучше бэггинга, через который лес строится. А как там с переобучением не знаю.

https://habr.com/company/ods/blog/327250/

https://datascienceplus.com/gradient-boosting-in-r/

Открытый курс машинного обучения. Тема 10. Градиентный бустинг
Открытый курс машинного обучения. Тема 10. Градиентный бустинг
  • 2018.05.17
  • habr.com
Всем привет! Настало время пополнить наш с вами алгоритмический арсенал. Сегодня мы основательно разберем один из наиболее популярных и применяемых на практике алгоритмов машинного обучения — градиентный бустинг. О том, откуда у бустинга растут корни и что на самом деле творится под капотом алгоритма — в нашем красочном путешествии в мир...
Причина обращения: