Discussão do artigo "Redes neurais de maneira fácil (Parte 17): Redução de dimensionalidade" - página 2

 

Olá, Dmitriy


Este erro está ocorrendo quando tento compilar o código do EA


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

Esse erro ocorre aqui:


bool CPCA::Study(matrix &data)

{

matriz X;

ulong total = data.Rows();

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

return false;

v_Means = dados.Mean(0);

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

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

{

vetor temp = dados.Row(i) - v_Means;

temp /= v_STDs;

X = X.Row(temp, i); <<<<<<<<<<<<<<<<<<<<<<<< Linha com erro

}


Obrigado pela ajuda

Rogerio

 
MrRogerioNeri #:

Oi Dmitriy


Esse erro está ocorrendo quando tento compilar o código do EA


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

Esse erro aponta aqui:


bool CPCA::Study(matrix &data)

{

matriz X;

ulong total = data.Rows();

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

return false;

v_Means = dados.Mean(0);

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

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

{

vetor temp = dados.Row(i) - v_Means;

temp /= v_STDs;

X = X.Row(temp, i); <<<<<<<<<<<<<<<<<<<<<<<< Linha com erro

}


Obrigado pela ajuda

Rogério

Olá , Rogério.

Substituir X = X.Row(temp, i); para

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

Ao compilar, ele gera 2 erros. fragmento de código

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

218 {

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

220 temp / = v_STDs;

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

Erro de compilação na linha 221 - não é possível converter o tipo 'bool' para o tipo 'matrix'

linha 241 X = X.Row(temp,i); mesmo erro


Como corrigir isso? Alguém pode me dar uma dica? Acho que preciso examinar o código um pouco mais a fundo, mas não tenho conhecimento suficiente para descobrir.

Ainda sou um delinquente!

 
ne86.mo Erro de compilação na linha 221 - não é possível converter o tipo 'bool' para o tipo 'matrix'

linha 241 X = X.Row(temp,i); mesmo erro


Como corrigir isso? Alguém pode me dar uma dica? Acho que você deveria dar uma olhada no código acima, mas não tenho conhecimento suficiente para descobrir isso.

Ainda sou um especialista!

Você não precisa atribuir. Nas versões atuais, o vetor é gravado diretamente na matriz, e o resultado lógico da operação é retornado.

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

DMITRY!!! parabenize-o pelo nosso feriado nacional RUSSIA DAY !!!! Saúde! Sucesso e boa sorte em todos os seus empreendimentos !!! Feliz e

feliz fim de semana com a família e os amigos !!!!

Conselho: Devo continuar a dominar o tópico: "ensinando NS sem um professor" com meu hardware.

Processador i7 3.5 ghertz, RAM 8 GB, vidiokarta Nvidio 2060 c 8 GB.

No artigo 15, tudo compila bem, mas o consultor kmeans não funciona.

Ele grava Create data : 10000 of 10040 e tudo para.

Nada inteligível é escrito no registro: " erro de execução 0".

No MT5, defina 250000 barras na janela

O Expert Advisor foi executado na negociação real "Sberbank" - 6min.

O ciclo de "treinamento com um professor" nos mesmos dados passou dormindo, mas aqui eu tropecei!