Обсуждение статьи "Нейросети — это просто (Часть 17): Понижение размерности" - страница 2

 

Здравствуйте Дмитрий


При попытке скомпилировать код советника возникает данная ошибка


cannot convert type 'bool' to type 'matrix' pca.mqh 241 13

Эта ошибка указывает сюда:


bool CPCA::Study(matrix &data)

{

матрица X;

ulong total = data.Rows();

if(!X.Init(total, data.Cols()))

return false;

v_Means = data.Mean(0);

v_STDs = data.Std(0) + 1e-8;

for(ulong i = 0; i < total; i++)

{

vector temp = data.Row(i) - v_Means;

temp /= v_STDs;

X = X.Row(temp, i); <<<<<<<<<<<<<<<<<<<<<<<< Строка с ошибкой

}


Спасибо за помощь

Рожерио

 
MrRogerioNeri #:

Здравствуйте Дмитрий


Эта ошибка возникает, когда я пытаюсь скомпилировать код советника


cannot convert type 'bool' to type 'matrix' pca.mqh 241 13

эта ошибка указывает сюда:


bool CPCA::Study(matrix &data)

{

матрица X;

ulong total = data.Rows();

if(!X.Init(total, data.Cols()))

return false;

v_Means = data.Mean(0);

v_STDs = data.Std(0) + 1e-8;

for(ulong i = 0; i < total; i++)

{

vector temp = data.Row(i) - v_Means;

temp /= v_STDs;

X = X.Row(temp, i); <<<<<<<<<<<<<<<<<<<<<<<< Строка с ошибкой

}


Спасибо за помощь

Рожерио

Здравствуйте, Rogerio.

Замените X = X.Row(temp, i); на

if(!X.Row(temp, i))
   return false;
 

при компиляции выдает 2 ошибки. фрагмент кода

стр217  for(ulong   r=0;  r<total;   r++)

    218    {

   219        vector  temp= data.Row(r)- v_Means;

  220         temp / = v_STDs;

  221        result=result.Row(temp,r);

ошибка компиляции в строке 221  -  cannot convert type 'bool' to type 'matrix'

 стр 241  X = X.Row(temp,i);         таже ошибка


Как исправить? Может кто подскажет? По моему смотреть код надо чуть выше,но знаний не хватает разобраться

Я еще делитант!

 
ne86.mo #:

при компиляции выдает 2 ошибки. фрагмент кода

стр217  for(ulong   r=0;  r<total;   r++)

    218    {

   219        vector  temp= data.Row(r)- v_Means;

  220         temp / = v_STDs;

  221        result=result.Row(temp,r);

ошибка компиляции в строке 221  -  cannot convert type 'bool' to type 'matrix'

 стр 241  X = X.Row(temp,i);         таже ошибка


Как исправить? Может кто подскажет? По моему смотреть код надо чуть выше,но знаний не хватает разобраться

Я еще делитант!

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

for(ulong r = 0; r < total; r++)
     {
      vectorf temp = data.Row(r) - v_Means;
      temp /= v_STDs;
      result.Row(temp, r);
     }
 

ДМИТРИЙ!!! поздравляю Вас с нашим общенародным праздником ДЕНЬ РОССИИ !!! Здоровья ! Успехов и удачи во всех делах !!! Веселых  и

счастливых выходных в кругу семьи и друзей !!!

Посоветуйте! Стоит ли мне продолжить осваивать тему : "обучение НС без учителя" с моим железом.

процессор  i7 частота 3.5 Ггерц , оперативка 8 Гб, видиокарта Nvidio 2060  c  8 Гб.

В статье 15 все прекрасно компилируется но советник kmeans не работает.

пишет  Create data :  10000 of 10040  и все прерывается

в журнале ничего вразумительного не пишет : " ошибка выполнения 0 "

в МТ5 установлено 250000 бар в окне

советник запускал на реальной торговле  "Сбербанк" - 6мин.

 Цикл "обучение с учителем" на тех же данных прошел в общем то уснешно,а тут споткнулся!