Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 818
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Для этого лучше использовать лес, эта модель создаст такой набор правил:
1: DeltaLess350 <= 0.5
2: ZZ_D <= 0
Decision 0
1: DeltaLess350 <= 0.5
2: ZZ_D > 0
3: DeltaMore350 <= 0.5
Decision 0
1: DeltaLess350 <= 0.5
2: ZZ_D > 0
3: DeltaMore350 > 0.5
Decision 1
DeltaLess350 > 0.5
Decision 1
В статье есть описание как подобное сделать в R:
https://www.mql5.com/ru/articles/1165
На закладке "Model" выберите лес, число деревьев поставьте в настройках =1, создайте модель, и потом нажав на кнопку Rules увидите такой список правил
Спасибо за ответ. Может я не верно читаю, но кажется что модель не верная из экселя такая формула для первой (и последующих строк) строки с данными "=ЕСЛИ(ИЛИ(И(B2=1;D2=1);И(C2=1;D2=1));1;0)"
Т.е. для четкой логики лучше использовать леса? Так же как и для выделения признаков, верно?
За статью спасибо - изучу ещё раз - помню что читал давно, но теперь знаний чуть больше, может будет понятней.
Добавил: Картинка интересная, но явно не угадана логика... или нет?Немного переписал пост, используя дерево вместо леса, так удобней вышло. Формула в обоих случаях выглядит иначе, но ведь ответ всё равно правильный.
Если ответ можно найти правильной комбинацией значений у входных данных, то лес хорошо работает, да. Всякие там операции типа сложения и умножения лес не умеет.
кажется что модель не верная из экселя такая формула для первой (и последующих строк) строки с данными "=ЕСЛИ(ИЛИ(И(B2=1;D2=1);И(C2=1;D2=1));1;0)"
Ну не знаю.. Проверил в экселе - формула из леса ошиблась пару раз всего. Формула дерева совпала во всех случаях.
Немного переписал пост, используя дерево вместо леса, так удобней вышло. Формула в обоих случаях выглядит иначе, но ведь ответ всё равно правильный.
Если ответ можно найти правильной комбинацией значений у входных данных, то лес хорошо работает, да. Всякие там операции типа сложения и умножения лес не умеет.
Хорошо, вот результат он свой выдал, а есть ли там возможность свернуть условие в одну строку, или функцию, что б подкорректировав можно было применять оперативно в коде? Или надо сидеть и каждые повороты логики описывать самостоятельно, и при этом не ошибиться с интерпретацией результата? Просто если входящий набор значений измеряется десятками, то это крайне трудоемкий процесс...
Ну не знаю.. Проверил в экселе - формула из леса ошиблась пару раз всего. Формула дерева совпала во всех случаях.
Да, формула из дерева пошла путем исключения, судя по коду, что оказалось верным решением.
Всё даже проще, с формулами возиться не нужно, там после обучения получается обычная R модель с которой можно делать предсказания на новых данных.
Всё предсказание делается одной функцией
model - это ранее созданная модель (дерево, лес, нейронка, итд, в R там соти разных моделей). newdata - табличка с новыми данными для предсказания
Всё даже проще, с формулами возиться не нужно, там после обучения получается обычная R модель с которой можно делать предсказания на новых данных.
Всё предсказание делается одной функцией
model - это ранее созданная модель (дерево, лес, нейронка, итд, в R там соти разных моделей). newdata - табличка с новыми данными для предсказания
Это интересно, но пока не ясно до конца - ранее с R не работал... надо делать, что б уже предметно разбираться.
Вот меня мучает ещё один вопрос, если во входных данных есть ошибочные данные, которые чисто случайны, то сможет ли лес/дерево это определить? Можно ли организовать автоматическое отключение входных данных по столбцам в плане их перебора, в том числе на предмет поиска левых данных с целью их исключения?
Самый обычный лес просто найдёт минимальный набор данных с которыми можно определить таргет. Но шумы и ошибки он анализировать не будет, даже использует их если они помогут улучшить точность предсказания. Поэтому например нельзя просто набрать кучу индикаторов для форекса, и пытаться предсказывать тренды.
Есть разные продвинутые модификации леса, в них есть попытки отсеять шум и ошибки, и всё что вы написали. Пакеты gbm, xgboost в R например. Работают в целом хорошо, но для форекса слабоваты, тут нужны другие приёмы.
Подскажите, какой алгоритм нейронной сети можно использовать для выявления логики(нейрона) столбца "Calc"?совет номер раз: если можете обойтись без машинного обучения, то обойдитесь :)
1: определитесь с размером выборки, ваша выборка очень маленькая
2. изучите простые модели классификации/регрессии (линейные), скорее всего они вам подойдут, а если ошибка будет большая то можно попробовать перейти на более сложные (нелинейные) Есть в библиотеке alglib в поставке терминала (деревья решений и лес тоже есть)
3. Никогда не слушайте никаких советов, особенно перейти на R :))) пора их вобще выгнать с этого форума
4. Если задача решаема без машинного обучения, то лучше его не использовать
Самый обычный лес просто найдёт минимальный набор данных с которыми можно определить таргет. Но шумы и ошибки он анализировать не будет, даже использует их если они помогут улучшить точность предсказания. Поэтому например нельзя просто набрать кучу индикаторов для форекса, и пытаться предсказывать тренды.
Есть разные продвинутые модификации леса, в них есть попытки отсеять шум и ошибки, и всё что вы написали. Пакеты gbm, xgboost в R например. Работают в целом хорошо, но для форекса слабоваты, тут нужны другие приёмы.
Значение индикаторов я не хочу подавать, моя цель подавать логически описанные наблюдения(наблюдалась ситуация или нет - это могут быть и новости и отношение разных индикаторов в пространстве друг относительно друга - в общем сжатая информация, которой я пользуюсь в реальной торговле для принятия решения), ранее построенные на основании этих индикаторов, и попробовать отсеять ошибочные, т.е. входные данные будут 0 и 1, или чуть больше цифр на один вход (тут кстати вопрос, если я хочу посмотреть на влияние дней недели, то мне лучше делать разные входные параметры маркирующие день, или достаточно один параметр обозначить от 1 до 5?).
А кто-то вообще делал сравнение разных алгоритмов на предмет эффективности, ну, если ответ известен, как в моем примере, но для более сложных задач?