Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 485

 
Mickey Moose:
¿Es posible enseñar a una máquina a reconocer imágenes?

???

¿no tienes google?

 
mytarmailS:

???

¿no tienes google?

¿Así que eres incapaz de hacerlo?
 
Mickey Moose:
¿Así que no eres capaz de hacerlo?

Puedo...

¿De dónde viene eso? Y tu pregunta era sobre otra cosa, por cierto.

 

Pregunta para los expertos. ¿Por qué el buffer sale a la impresora, pero la línea no quiere ser dibujada, ni es llamada por otro indicador????

 
mytarmailS:

Puedo...

¿De dónde viene eso? Y tu pregunta era sobre otra cosa, por cierto.


De su respuesta.

Quiero construir un módulo de reconocimiento de patrones en mi robot, escrito en µl, y estoy tratando de averiguar qué poner en él y en qué debería consistir.

y si me mandas a google concluyo que es imposible (en su versión)

 
Mickey Moose:


cualquier clasificador, la imagen se representa como una matriz

¿Cuál es el problema? ¿O quieres que te escriba un código?

 
mytarmailS:
cualquier clasificador, la imagen se representa como una matriz

¿Cuál es el problema? ¿O quieres que te escriba un código?

Quiero entender lo que necesita para establecer los parámetros de reconocimiento con lo que debe buscar y lo que se llama. Exactamente las descripciones de las herramientas
 
Mickey Moose:
Quiero entender lo que se necesita para establecer los parámetros de reconocimiento con lo que hay que buscar y cómo se llama. Exactamente las descripciones de las herramientas
Puedes ir aquí, quizás entiendas qué es lo que hay.

Saludos.
 

https://www.youtube.com/channel/UCPk8m_r6fkUSYmvgCBwq-sw/videos

Curso de neurónica para el reconocimiento de imágenes, vídeos de conferencias universitarias. Muy bueno, pero en inglés.

 

Pregunta: La salida de RF normalmente da AVGerr y RMSerr en la región de

0.0000921245

0.0000920833

0.0000926474

0.0000930916

Es AVGerr.

¿Por qué tantos ceros? He visto en artículos que los errores suelen ser de 0,1, 0,9, etc.

Calculado así:

static double CDForest::DFAvgError(CDecisionForest &df,CMatrixDouble &xy,
                                   const int npoints)
  {
//--- create variables
   double result=0;
   int    i=0;
   int    j=0;
   int    k=0;
   int    i_=0;
//--- creating arrays
   double x[];
   double y[];
//--- allocation
   ArrayResizeAL(x,df.m_nvars);
   ArrayResizeAL(y,df.m_nclasses);
//--- initialization
   result=0;
   for(i=0;i<=npoints-1;i++)
     {
      //--- copy
      for(i_=0;i_<=df.m_nvars-1;i_++)
         x[i_]=xy[i][i_];
      //--- function call
      DFProcess(df,x,y);
      //--- check
      if(df.m_nclasses>1)
        {
         //--- classification-specific code
         k=(int)MathRound(xy[i][df.m_nvars]);
         for(j=0;j<=df.m_nclasses-1;j++)
           {
            //--- check
            if(j==k)
               result=result+MathAbs(y[j]-1);
            else
               result=result+MathAbs(y[j]);
           }
        }
      else
        {
         //--- regression-specific code
         result=result+MathAbs(y[0]-xy[i][df.m_nvars]);
        }
     }
//--- return result
   return(result/(npoints*df.m_nclasses));
  }

Y aquí hay un script de prueba para calcular la tabla de multiplicación (tabla de RF de enseñanza):

#include <Math\Alglib\dataanalysis.mqh>
//+------------------------------------------------------------------+
#define _rand(min,max) ((rand()/(double)SHORT_MAX)*((max)-(min))+min)
//+------------------------------------------------------------------+
void OnStart()
{
   CDecisionForest      Trf;
   CDecisionForestShell RFshell;
   CMatrixDouble        PatternsMatrix;
   CDFReport            RF_report;
   int RFinfo;
   double vector[2], out[1];
   
   // подготовка данных
   PatternsMatrix.Resize(100,3);
   int m=0;     // first pattern
   for(int i=1; i<=10; i++)
      for(int j=1; j<=10; j++)
      {
         PatternsMatrix[m].Set(0,i/10.0);       // input 1
         PatternsMatrix[m].Set(1,j/10.0);       // input 2
         PatternsMatrix[m].Set(2,(i*j)/100.0);  // target
         m++; //next pattern
      }
   // создание RF
   CDForest::DFBuildRandomDecisionForest(PatternsMatrix,100,2,1,500,1,RFinfo,Trf,RF_report);
   Print("Info=",RFinfo,"  Error=",DoubleToString(CDForest::DFAvgError(Trf,PatternsMatrix,100),50));  
   // проверка сети на целочисленных данных
   string s="Тест 1 >> ";
   for(int i=1; i<=10; i++)
   {
      int d1=(int)_rand(1,10), d2=(int)_rand(1,10);
      vector[0]=d1/10.0;
      vector[1]=d2/10.0;
      CDForest::DFProcess(Trf,vector,out);
      s+=(string)d1+"*"+(string)d2+"="+DoubleToString(out[0]*100,0)+" // ";
   }
   Print(s);
   // проверка сети на дробныx данных
   s="Тест 2 >> ";
   for(int i=1; i<=5; i++)
   {
      double d1=NormalizeDouble(_rand(1,10),1), d2=NormalizeDouble(_rand(1,10),1);
      vector[0]=d1/10.0;
      vector[1]=d2/10.0;
       CDForest::DFProcess(Trf,vector,out);
      s+=DoubleToString(d1,1)+"*"+DoubleToString(d2,1)+"="+DoubleToString(out[0]*100,2)+
         "("+DoubleToString(d1*d2,2)+") // ";
   }
   Print(s);
}

Puedes ejecutarlo, comprobarlo, calcula bien la tabla de multiplicar.

También hay un error muy pequeño: 2017.09.27 16:26:12.267 RF sample (EURUSD,H1) Info=1 Error=0.0000000000000020