L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 485

 
Mickey Moose:
È possibile insegnare a una macchina a riconoscere le immagini?

???

Non avete Google?

 
mytarmailS:

???

non hai google?

Quindi non siete in grado di farlo?
 
Mickey Moose:
Quindi non sei in grado di farlo?

Posso...

Da dove viene questo? E la sua domanda riguardava un'altra cosa, comunque.

 

Domanda per gli esperti. Perché il buffer viene inviato alla stampante, ma la linea non vuole essere disegnata, né viene chiamata da un altro indicatore????

 
mytarmailS:

Posso...

Da dove viene questo? E la sua domanda riguardava un'altra cosa, comunque.


Dalla tua risposta.

Voglio costruire un modulo di riconoscimento dei modelli nel mio robot, scritto in µl, e sto cercando di capire cosa metterci dentro e in cosa dovrebbe consistere.

e se mi mandi su google concluderò che è impossibile (nella tua versione)

 
Mickey Moose:


qualsiasi classificatore, l'immagine è rappresentata come una matrice

Qual è il problema? O vuoi che ti scriva un codice?

 
mytarmailS:
qualsiasi classificatore, l'immagine è rappresentata come una matrice

Qual è il problema? O vuoi che ti scriva un codice?

Voglio capire di cosa avete bisogno per impostare i parametri di riconoscimento con cosa cercare e come si chiama. Esattamente le descrizioni degli strumenti
 
Mickey Moose:
Voglio capire cosa serve per impostare i parametri di riconoscimento con cosa cercare e come si chiama. Esattamente le descrizioni degli strumenti
Potete andare qui, forse capirete come stanno le cose.

Saluti.
 

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

Un corso sulla neuronica per il riconoscimento delle immagini, video di lezioni universitarie. Molto buono, ma in inglese.

 

Domanda: l'uscita RF dà normalmente AVGerr e RMSerr nella regione di

0.0000921245

0.0000920833

0.0000926474

0.0000930916

È AVGerr.

Perché così tanti zeri? Ho visto in articoli che gli errori sono di solito 0,1, 0,9 ecc.

Calcolato in questo modo:

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));
  }

Ed ecco uno script di prova per calcolare la tabella di moltiplicazione (tabella RF di insegnamento):

#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);
}

Potete eseguirlo, controllarlo, calcola bene la tabella di moltiplicazione.

C'è anche un errore molto piccolo: 2017.09.27 16:26:12.267 RF sample (EURUSD,H1) Info=1 Error=0.0000000000000020