Discussão do artigo "Floresta de Decisão Aleatória na Aprendizagem por Reforço" - página 10

 
VANDER:

Para torná-lo não binário, mas com um número arbitrário de descendentes em cada nó, assim:


Não acho que faça sentido dividir mais de duas ramificações de um nó, como na sua imagem.

Afinal, se passarmos várias divisões por 2 ramificações, obteremos o mesmo resultado. Apenas a profundidade da árvore será maior (não 3 como em sua figura, mas 7-10).

Um algoritmo padrão calculará rapidamente até 100.500 nós.

Em geral, li que existem algoritmos com várias ramificações a partir de um nó. Talvez você possa encontrá-los em R ou Python.

[Excluído]  
Ah, bem, isso é apenas um livro didático sobre algoritmos em gráficos, talvez por meio de listas ou hash.
 

Há algum problema com o algoritmo?

Estou recebendo constantemente o erro de divisão por zero em "dataanalysis.mqh"!


Criei minha própria versão com vários símbolos... mas esse erro é muito chato!

Ficaria muito grato com alguma ajuda.

a respeito.

Arquivos anexados:
 

Acho que o resultado desse EA no artigo é muito bom

mas em uma conta real com dinheiro real, qual é o problema desse EA que precisa ser corrigido?

ou outra pergunta, qual é o ponto fraco desse EA que precisa ser desenvolvido, corrigido ou atualizado para melhor?

Alguém pode me dar uma sugestão?

Obrigado

 

Obrigado por abrir meus olhos para a biblioteca Alglib, que eu não sabia que vinha com a versão mais recente do Metatrader 5....

Eu me vi reinventando a roda de certa forma!

 

Olá, esse artigo é muito fascinante. No entanto, quando tento compilar o modelo de regressão de floresta de decisão aleatória, são gerados 93 erros.

O primeiro erro é um erro de identificador não declarado. A variável que está tentando ser chamada é a propriedade m_buffsize do RDF.

A chamada é feita pelo manipulador de eventos OnTester. Incluí um trecho do código.


double OnTester()
  {
   if(clear_model) return 0;

   if(MQLInfoInteger(MQL_OPTIMIZATION)==true)
     {
      if(numberOfsamples>0)
        {
         CDForest::DFBuildRandomDecisionForest(RDFpolicyMatrix,numberOfsamples,3,1,number_of_trees,regularization,RDFinfo,RDF,RDF_report);
        }
      
      FileDelete("RDFBufsize"+_Symbol+(string)_Period+".txt",FILE_COMMON);
      FileDelete("RDFNclasses"+_Symbol+(string)_Period+".txt",FILE_COMMON);
      FileDelete("RDFNvars"+_Symbol+(string)_Period+".txt",FILE_COMMON);
      FileDelete("RDFMtrees"+_Symbol+(string)_Period+".txt",FILE_COMMON);
      
      int filehnd=FileOpen("RDFBufsize"+_Symbol+(string)_Period+".txt",FILE_READ|FILE_WRITE|FILE_CSV|FILE_ANSI|FILE_COMMON);
      FileWrite(filehnd,RDF.m_bufsize);
      FileClose(filehnd);

      filehnd=FileOpen("RDFNclasses"+_Symbol+(string)_Period+".txt",FILE_READ|FILE_WRITE|FILE_CSV|FILE_ANSI|FILE_COMMON);
      FileWrite(filehnd,RDF.m_nclasses); //THIS IS WHERE THE ERROR IS BEING THROWN.

Qual é a melhor maneira de resolver isso?

Erro de tempo de compilação

Fig. 1: Alguns dos erros lançados durante o tempo de compilação.