Conselhos práticos, por favor. - página 5

 
Dmitry Fedoseev:
Mod 1 Modo 2 Modo 3 Modo 4 Modo 5 (vi) Modo 6 (vi) Modo 7 (vi) Modo 8 (vi) Mod 9 (vi) Mod 10 (vi) Mod 11 (vi) Mod 12 (viii) mod 13 (vi) 14 Modo 15 Montante
4,43 1 17,09 1 15,82 2 2,53 1 0,63 1 17,72 1 28,48 1 5,70 2 13,29 3 5,70 2 8,23 2 6,33 2 0,63 1 3,16 3 6,96 3 23
5,06 2 17,72 2 12,66 1 3,80 2 0,63 1 19,62 2 29,11 2 4,43 1 9,49 2 5,06 1 6,33 1 6,33 2 1,90 2 1,90 2 6,33 2 26
4,43 1 20,25 3 16,46 3 4,43 3 0,63 1 17,72 1 29,75 3 6,33 3 5,06 1 8,23 3 10,13 3 5,06 1 0,63 1 1,27 1 4,43 1 29


A soma mais baixa é 23, escolhendo a primeira fileira.

Obrigado, eu também vou tomar nota disso.

Mas estes são valores de erro, é confiável usar este método de estimativa de classificação?
Nas estatísticas, eles usam principalmente a soma dos quadrados para estimar os erros.
E a soma dos quadrados e a classificação têm resultados diferentes, então qual método confiar?

;))

Em que área matemática o método de classificação é utilizado?
Para fumar este material e entender onde ele é utilizado.
 

O método utilizado deve ser aquele que oferece uma solução satisfatória para o problema em questão. Ao aplicar qualquer método, você deve entender o que está fazendo e o que está obtendo.

Se você não tem idéia do que deve ser um resultado satisfatório, não faz diferença o método a ser utilizado.

 
Dmitry Fedoseev:

O método utilizado deve ser aquele que oferece uma solução satisfatória para o problema em questão. Ao aplicar qualquer método, você deve entender o que está fazendo e o que está obtendo.

E se você não tem idéia do que deve ser um resultado satisfatório, não faz diferença qual método utilizar.

Concordo em parte, mas neste caso, estamos avaliando o valor do erro em si e não sua recorrência em um módulo.
Este método é adequado para avaliar valores repetidos.
Não creio que seja o método certo para avaliar os valores de erro em si.

 
Roman:

Concordo parcialmente, mas neste caso estamos avaliando o erro em si, não sua recorrência em um módulo.
Este método é adequado para avaliar valores recorrentes.
Não creio que seja o método certo para avaliar os valores de erro em si.

Se os valores forem repetitivos, eles darão exatamente o mesmo resultado que a troca com 1, 2 e 3.

Leia o primeiro post deste tópico, aí o autor do tópico formulou seu problema - basta lê-lo, não inventá-lo.

 
Dmitry Fedoseev:

Se os valores forem repetitivos, eles mesmos darão exatamente o mesmo resultado que trocando-os com 1, 2, 3.

Leia o primeiro post deste tópico, onde o autor do tópico formulou seu problema - basta lê-lo, não inventá-lo.

Portanto, ninguém está inventando. Como entendi do primeiro post, a tarefa original era estimar a minimização do erro.
E o autor em sua tabela chegou a derivar a média de todos os erros. Mas ele não achou que fosse prático ou informativo.
Estimar a minimização de erros e estimar valores de repetição são tarefas diferentes.

 
Roman:

Portanto, ninguém está inventando. Como entendi do primeiro post, o objetivo original era estimar a minimização de erros.
E o iniciador do tópico calculou a média de todos os erros em sua mesa. Mas ele não achou que fosse prático ou informativo.
Estimar a minimização de erros e estimar valores recorrentes são tarefas diferentes.

Só usar a média não é suficiente, você também precisa evitar um grande excesso.

 
Dmitry Fedoseev:

Não basta ter uma média, você também precisa ter uma baixa taxa de ejeção.

e assim o produto

 
Dmitry Fedoseev:

Não basta usar apenas a média, também é preciso evitar grandes aberrações.

Depois é necessário preparar adicionalmente os dados de entrada, normalizá-los ou padronizá-los.
No meu exemplo, isto é levado em consideração pela MathPow(arr[i] - (max-min)/* ou avg*/, 2.0), e o produto é realizado pela função quadrada.
Ou seja, leva-o à segunda potência, que corresponde ao produto.

 

Enquanto estamos falando de normalização e padronização, este alinhamento se aplica quando os valores a serem comparados precisam ser levados à mesma escala.
O que você quer dizer com "normalização na mesma escala"?
Por exemplo, quando precisamos comparar números como 81.500 e 1.13453 ou 5200.1 ou 27340, etc.
Ou seja, os valores têm um número diferente de dígitos após o número inteiro.
Para comparar tais dados ou transferi-los para um modelo, se o modelo tiver vários sinais, aplicar a normalização ou padronização,
, para que o modelo calcule corretamente e produza o cálculo correto.
Eu escrevi tais funções, se alguém precisar delas, por favor, use-as.

//--------------------------------------------------------------------
//Возвращает максимальное значение элементов массива
double ArrayMax(double & arrIn[])
{
   uint size = ArraySize(arrIn);
   if(size == 0) 
      return(0.0);          
   
   double max = arrIn[0];
   for(uint i=1; i<size; i++)
      if(arrIn[i] > max) 
         max = arrIn[i];

   return(max);
}

//--------------------------------------------------------------------
//Возвращает минимальное значение элементов массива
double ArrayMin(double & arrIn[])
{
   uint size = ArraySize(arrIn);
   if(size == 0) 
      return(0.0);   
   
   double min = arrIn[0];  
   for(uint i=1; i<size; i++)
      if(arrIn[i] < min) 
         min = arrIn[i];

   return(min);
}

//--------------------------------------------------------------------
//Возвращает средне арефметическое значение элементов массива
double ArrayMean(double & arrIn[])
{
   uint size = ArraySize(arrIn);
   if(size == 0) 
      return(0.0);         

   double sum = 0.0;       
   for(uint i=0; i<size; i++) 
      sum += arrIn[i];     
   
   return(sum/size);
}

//--------------------------------------------------------------------
//Возвращает среднеквадратичное (стандартное) отклонение значений элементов массива
double ArrayStd(double & arrIn[])
{
   uint size = ArraySize(arrIn);
   if(size == 0) 
      return(0.0);   
   
   double sum  = 0.0; 
   double mean = ArrayMean(arrIn); 
          
   for(uint i=0; i<size; i++)
      sum += MathPow(MathAbs(arrIn[i]-mean), 2.0);
      
   return(MathSqrt(sum/size));
}

//--------------------------------------------------------------------
//Возвращает нормализованные значения элементов масcива
void ArrayNormalized(double & arrIn[], double & arrOut[])
{
   uint size = ArraySize(arrIn);
   if(size == 0) 
      return; 
      
   double min = ArrayMin(arrIn);   
   double max = ArrayMax(arrIn);
   
   for(uint i=0; i<size; i++)
      arrOut[i] = (arrIn[i]-min) / (max-min);   
}

//--------------------------------------------------------------------
//Возвращает стандвртизированые значения элементов масcива
void ArrayStandardized(double & arrIn[], double & arrOut[])
{
   uint size = ArraySize(arrIn);
   if(size == 0) 
      return; 
      
   double mean = ArrayMean(arrIn);
   double std  = ArrayStd(arrIn);
   
   for(uint i=0; i<size; i++)
      arrOut[i] = (arrIn[i]-mean) / std;   
}
 
Roman:

Enquanto estamos falando de normalização e padronização, este alinhamento se aplica quando os valores a serem comparados precisam ser levados à mesma escala.
O que você quer dizer com "normalização na mesma escala"?
Por exemplo, quando precisamos comparar números como 81.500 e 1.13453 ou 5200.1 ou 27340, etc.
Ou seja, os valores têm um número diferente de dígitos após o número inteiro.
Para comparar tais dados ou transferi-los para um modelo, se o modelo tiver vários sinais, aplicar a normalização ou padronização,
, para que o modelo calcule corretamente e produza o cálculo correto.
Eu escrevi tais funções, se alguém precisar delas, por favor, use-as.

Por que você não gosta de ArrayMaximum e ArrayMinimum? Por que você teve que escrevê-lo através de um loop?
Razão: