Discusión sobre el artículo "Redes neuronales: así de sencillo (Parte 17): Reducción de la dimensionalidad" - página 2

 

Hola Dmitriy


Este error se produce cuando intento compilar el código EA


no se puede convertir el tipo 'bool' al tipo 'matrix' pca.mqh 241 13

este error apunta aqui


bool CPCA::Study(matrix &data)

{

matriz X;

ulong total = datos.Filas();

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

return false;

v_Medias = datos.Media(0);

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

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

{

vector temp = datos.Fila(i) - v_Medias;

temp /= v_STDs;

X = X.Row(temp, i); <<<<<<<<<<<<<<<<<<<<<<<< Línea con error

}


Gracias por la ayuda

Rogerio

 
MrRogerioNeri #:

Hola Dmitriy


Este error se produce cuando intento compilar el código EA


no se puede convertir el tipo 'bool' al tipo 'matrix' pca.mqh 241 13

este error apunta aquí


bool CPCA::Study(matrix &data)

{

matriz X;

ulong total = datos.Filas();

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

return false;

v_Medias = datos.Media(0);

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

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

{

vector temp = datos.Fila(i) - v_Medias;

temp /= v_STDs;

X = X.Row(temp, i); <<<<<<<<<<<<<<<<<<<<<<<< Línea con error

}


Gracias por la ayuda

Rogerio

Hola Rogerio

Reemplazar X = X.Row(temp, i); a

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

al compilar genera 2 errores. fragmento de código

p217 for(ulong r=0; r<total; r++)

218 {

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

220 temp / = v_STDs;

221 resultado=resultado.Fila(temp,r);

error de compilación en la línea 221 - no se puede convertir el tipo 'bool' a 'matrix

línea 241 X = X.Row(temp,i); mismo error


¿Cómo solucionarlo? ¿Alguien puede darme una pista? Creo que tengo que mirar el código un poco más arriba, pero no tengo conocimientos suficientes para averiguarlo.

¡Sigo siendo un experto!

 
ne86.mo error de compilación en la línea 221 - no se puede convertir el tipo 'bool' a 'matrix

línea 241 X = X.Row(temp,i); mismo error


¿Cómo solucionarlo? ¿Alguien me puede dar una pista? Creo que debería mirar el código de arriba, pero no tengo suficientes conocimientos para solucionarlo.

¡Sigo siendo un experto!

No necesitas asignar. En las versiones actuales, el vector se escribe directamente en la matriz, y se devuelve el resultado lógico de la operación.

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

DMITRY!!! te felicito en nuestra fiesta nacional DIA DE RUSIA !!!! ¡Salud ! ¡¡¡Éxito y buena suerte en todos sus empeños !!! Feliz y

¡¡¡¡feliz fin de semana con la familia y amigos !!!!

Consejo ! ¿Debo seguir para dominar el tema : "la enseñanza de NS sin un maestro" con mi hardware.

Procesador i7 procesador 3,5 ghertz, RAM 8 GB, vidiokarta Nvidio 2060 c 8 GB.

En el artículo 15 todo compila bien pero kmeans advisor no funciona.

Escribe Crear datos : 10000 de 10040 y todo se detiene.

nada inteligible se escribe en el registro : " error de ejecución 0 ".

en MT5 poner 250000 barra en la ventana

El Asesor de Expertos se ejecutó en el comercio real "Sberbank" - 6min.

¡El ciclo de "entrenamiento con un maestro" en los mismos datos pasó en general dormido, pero aquí me tropecé!