Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 818

 
Dr. Trader:

A melhor maneira de fazer isso é usar uma floresta, esse modelo criará um conjunto de regras assim:


1: DeltaLess350 <= 0.5
2: ZZ_D <= 0
Decisão 0

1: DeltaLess350 <= 0.5
2: ZZ_D > 0
3: DeltaMore350 <= 0.5
Decisão 0

1: DeltaLess350 <= 0.5
2: ZZ_D > 0
3: DeltaMore350 > 0.5
Decisão 1

DeltaLess350 > 0.5
Decisão 1


O artigo descreve como fazer isso em R:
https://www.mql5.com/ru/articles/1165

Na aba "Modelo" selecione floresta, defina o número de árvores em configurações = 1, crie modelo e clique no botão Regras você verá esta lista de regras

Obrigado pela resposta, talvez eu esteja lendo errado, mas parece que o modelo não está correto a partir da fórmula do Excel para a primeira (e subsequentes linhas) da linha com os dados "= IF(AND(B2=1;D2=1);AND(C2=1;D2=1));1;0)".

Ou seja, é melhor usar andaimes para uma lógica clara? O mesmo que para a extracção de características, certo?

Obrigado pelo artigo - vou estudá-lo novamente - lembro-me de o ler há muito tempo, mas agora tenho um pouco mais de conhecimento, talvez seja mais claro.

Adicionado: A imagem é interessante, mas claramente a lógica não é adivinhada... ou é?
 

Eu reescrevi um pouco o posto, usando uma árvore em vez de uma floresta, por isso é mais conveniente. A fórmula parece diferente em ambos os casos, mas a resposta ainda está correta.

Se a resposta puder ser encontrada pela combinação certa de valores nos dados de entrada, então a floresta funciona bem, sim. Todos os tipos de operações como adição e multiplicação não funcionam na floresta.

 
Aleksey Vyazmikin:

parece que o modelo não está correto a partir do excel tal fórmula para a primeira (e linhas subseqüentes) linha com dados "=If(OR(AND(B2=1;D2=1);AND(C2=1;D2=1));1;0)".

Eu não sei. Checado em excel - a fórmula da floresta estava errada apenas algumas vezes. A fórmula da árvore coincidiu em todos os casos.

 
Dr. Trader:

Eu reescrevi um pouco o posto, usando uma árvore em vez de uma floresta, por isso é mais conveniente. A fórmula parece diferente em ambos os casos, mas a resposta ainda está correta.

Se a resposta puder ser encontrada pela combinação certa de valores nos dados de entrada, então a floresta funciona bem, sim. Todos os tipos de operações como adição e multiplicação não funcionam.

Bem, agora tem o seu resultado, mas existe uma forma de minimizar as condições para uma linha, ou função, para que possamos aplicá-las em código imediatamente após fazer as correcções? Ou será que tenho de descrever todas as lógicas que me transformam e, ao mesmo tempo, não cometer um erro de interpretação do resultado? Só que se o conjunto de valores de entrada puder ser medido em dezenas, é um processo muito demorado...

 
Dr. Trader:

Eu não sei. Eu verifiquei no Excel - a fórmula da floresta estava errada apenas algumas vezes. A fórmula da árvore correspondeu em todos os casos.

Sim, a fórmula da árvore foi por exclusão, a julgar pelo código, que se revelou ser a solução certa.

 

É ainda mais simples, não há necessidade de se preocupar com fórmulas, após o treinamento você obtém um modelo R regular com o qual você pode fazer previsões sobre novos dados.

Toda a previsão é feita com uma função

predict(model, newdata)

modelo - este é um modelo criado anteriormente (árvore, floresta, neurônio, etc., em R existem centenas de modelos diferentes). newdata é uma tabela com novos dados para previsão

 
Dr. Trader:

É ainda mais simples, não há necessidade de se preocupar com fórmulas, após o treinamento você obtém um modelo R regular com o qual você pode fazer previsões sobre novos dados.

Toda a previsão é feita com uma função

modelo - este é um modelo criado anteriormente (árvore, floresta, neurónio, etc., em R existem centenas de modelos diferentes). newdata - tabela com novos dados para previsão

É interessante, mas ainda não está claro - eu nunca trabalhei com o R antes... Eu devia fazê-lo, para que pudesse chegar ao fundo da questão.

Aqui está outra pergunta, se os dados de entrada tiverem dados errados, que são puramente aleatórios, será que a floresta/árvore será capaz de detectá-los? É possível organizar a desativação automática coluna por coluna dos dados de entrada em termos de sua enumeração, incluindo a busca de dados à esquerda para excluí-los?

 

A floresta mais comum irá simplesmente encontrar um conjunto mínimo de dados com os quais definir uma meta. Mas não irá analisar ruídos e erros, mesmo usando-os se eles ajudarem a melhorar a precisão da previsão. É por isso que, por exemplo, não podemos simplesmente pegar um monte de indicadores forex e tentar prever as tendências.

Há várias modificações avançadas da floresta, têm tentativas de eliminar ruídos e erros e tudo o que você escreveu. Os pacotes gbm, xgboost em R, por exemplo. Eles funcionam bem em geral, mas são fracos para forex, você precisa de outros truques.

 
Aleksey Vyazmikin:

Você pode me dizer qual algoritmo de rede neural pode ser usado para descobrir a lógica (neurônio) da coluna "Calc"? dica número um: se você pode fazer sem a aprendizagem da máquina, então faça-o :)

1: decida o tamanho da amostra, a sua amostra é muito pequena

2. vá para modelos simples (lineares) de classificação/regressão, muito provavelmente eles funcionarão para você, mas se o erro for muito grande, você pode tentar ir para modelos mais complexos (não lineares). eles estão disponíveis na biblioteca de algibeiras (árvores de decisão e floresta também estão disponíveis).

3) Nunca tome nenhum conselho, especialmente no lado R :))) É hora de bani-los deste fórum.

4. Se o problema é resolúvel sem a aprendizagem da máquina, é melhor não o usar.

 
Dr. Trader:

A floresta mais comum irá simplesmente encontrar um conjunto mínimo de dados com os quais definir uma meta. Mas não irá analisar ruídos e erros, mesmo usando-os se eles ajudarem a melhorar a precisão da previsão. É por isso que, por exemplo, não podemos simplesmente pegar um monte de indicadores forex e tentar prever as tendências.

Há diferentes modificações avançadas da floresta, têm tentativas de eliminar ruídos e erros e tudo o que você escreveu. Os pacotes gbm, xgboost em R, por exemplo. Eles funcionam bem como um todo, mas eles são fracos para forex, você precisa de outros truques.

Não quero dar valores de indicadores, o meu objectivo é dar uma descrição lógica das observações (podem ser notícias e rácios de diferentes indicadores no espaço em relação uns aos outros - em geral uso em negociação real para tomar decisões), previamente construídos usando estes indicadores e tentar eliminar falsos, ou seja, os dados de entrada serão 0 e 1, ou ligeiramente mais dígitos num input (aqui está a questão, se eu quiser ver o efeito dos dias de semana, então é melhor fazer diferentes pares de input

E alguém já fez uma comparação de diferentes algoritmos para eficiência, bem, se a resposta é conhecida, como no meu exemplo, mas para tarefas mais complexas?

Razão: