Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 485

 
Mickey Moose:
А можно ли научить машину распознавать картинки?

???

у вас нет гугла?

 
mytarmailS:

???

у вас нет гугла?

То есть вы это сделать не способны?
 
Mickey Moose:
То есть вы это сделать не способны?

Могу...

Откуда такие выводы? И вообще ваш вопрос был совсем о другом, так между прочим. 

 

Вопрос к знатокам. Почему буфер в принт выводится, а линию рисовать не хочет, и другим индикатором не вызывается????

 
mytarmailS:

Могу...

Откуда такие выводы? И вообще ваш вопрос был совсем о другом, так между прочим. 


из вашего ответа.

я хочу встроить в робота модуль распознавания картинок, написанный на мкл, и пытаюсь понять что туда засунуть и из чего он должен состоять.

и если вы меня посылаете в гугл делаю вывод - это невозможно (в вашем исполнении)

 
Mickey Moose:


любой классификатор берите, картинка представляеться в виде матрицы 

В чем вообще проблема? Или вы хотите что бы  я вам код написал?

 
mytarmailS:
любой классификатор берите, картинка представляеться в виде матрицы 

В чем вообще проблема? Или вы хотите что бы  я вам код написал?

Я хочу понять  что нужно для задания параметров распознавания с помощью чего искать и кае это называется. Именно описания инструментов
 
Mickey Moose:
Я хочу понять  что нужно для задания параметров распознавания с помощью чего искать и кае это называется. Именно описания инструментов
вам сюда , может быть поймете что к чему.

с уважением.
 

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

Курс по нейронкам для распознавания изображений, видеозаписи с лекций университета. Очень хорошо, но на английском.

 

Такой вопрос: RF на выходе выдает обычно AVGerr и RMSerr в районе 

0.0000921245

0.0000920833

0.0000926474

0.0000930916

Это AVGerr

почему столько нолей? в статьях я видел что ошибки обычно 0.1, 0.9 и т.п.

Расчитывается вот так:

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

А вот проверочный скрипт для расчета таблицы умножения (обучаю RF таблице):

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

Можете запустить, проверить, таблицу умн. считает хорошо

И тоже очень маленькая ошибка: 2017.09.27 16:26:12.267 RF sample (EURUSD,H1) Info=1  Error=0.0000000000000020


Причина обращения: