L'apprentissage automatique dans la négociation : théorie, modèles, pratique et algo-trading - page 485

 
Mickey Moose:
Est-il possible d'apprendre à une machine à reconnaître des images ?

? ??

Vous n'avez pas google ?

 
mytarmailS:

? ??

vous n'avez pas google ?

Vous êtes donc incapable de le faire ?
 
Mickey Moose:
Donc vous n'êtes pas capable de le faire ?

Je peux...

D'où cela vient-il ? Et votre question portait sur autre chose, d'ailleurs.

 

Question pour les experts. Pourquoi le tampon est envoyé à l'imprimante, mais la ligne ne veut pas être dessinée, et n'est pas appelée par un autre indicateur ????.

 
mytarmailS:

Je peux...

D'où cela vient-il ? Et votre question portait sur autre chose, d'ailleurs.


D'après votre réponse.

Je veux intégrer un module de reconnaissance des formes dans mon robot, écrit en µl, et j'essaie de savoir ce qu'il faut y mettre et en quoi il doit consister.

et si vous m'envoyez sur google je conclurai que c'est impossible (dans votre version)

 
Mickey Moose:


tout classificateur, l'image est représentée comme une matrice

Quel est le problème ? Ou voulez-vous que je vous écrive un code ?

 
mytarmailS:
tout classificateur, l'image est représentée comme une matrice

Quel est le problème ? Ou voulez-vous que je vous écrive un code ?

Je veux comprendre ce dont vous avez besoin pour définir les paramètres de la reconnaissance avec ce qu'il faut rechercher et comment cela s'appelle. Exactement les descriptions des outils
 
Mickey Moose:
Je veux comprendre ce qu'il faut faire pour définir les paramètres de reconnaissance, ce qu'il faut rechercher et comment cela s'appelle. Exactement les descriptions des outils
Vous pouvez aller ici, peut-être que vous comprendrez ce qui se passe.

Regards.
 

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

Un cours sur la neuronique pour la reconnaissance d'images, des vidéos de conférences universitaires. Très bien, mais en anglais.

 

Question : La sortie RF donne normalement un AVGerr et un RMSerr dans la région de

0.0000921245

0.0000920833

0.0000926474

0.0000930916

C'est AVGerr.

Pourquoi tant de zéros ? J'ai vu dans des articles que les erreurs sont généralement de 0,1, 0,9, etc.

Calculé comme ça :

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

Et voici un script de test pour calculer la table de multiplication (table RF d'enseignement) :

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

Vous pouvez l'exécuter, le vérifier, il calcule bien la table de multiplication.

Il y a également une très petite erreur : 2017.09.27 16:26:12.267 RF sample (EURUSD,H1) Info=1 Error=0.0000000000000020