Des conseils pratiques, s'il vous plaît. - page 5

 
Dmitry Fedoseev:
Mod 1 Mode 2 Mode 3 Mode 4 Mode 5 (vi) Mode 6 (vi) Mode 7 (vi) Mode 8 (vi) Mod 9 (vi) Mod 10 (vi) Mod 11 (vi) Mod 12 (viii) mod 13 (vi) 14 Mode 15 Montant
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


La somme la plus faible est 23, choisissant la première ligne.

Merci, j'en prends note également.

Mais il s'agit de valeurs d'erreur, est-il fiable d'utiliser cette méthode d'estimation du classement ?
En statistiques, ils utilisent principalement la somme des carrés pour estimer les erreurs.
Et la somme des carrés et le classement donnent des résultats différents, alors à quelle méthode se fier ?

;))

Dans quel domaine mathématique la méthode de classement est-elle utilisée ?
Pour fumer ce matériel et comprendre où il est utilisé.
 

La méthode utilisée doit être celle qui apporte une solution satisfaisante au problème posé. Lorsque vous appliquez une méthode, quelle qu'elle soit, vous devez comprendre ce que vous faites et ce que vous obtenez.

Si vous n'avez aucune idée de ce que devrait être un résultat satisfaisant, la méthode à utiliser ne fait aucune différence.

 
Dmitry Fedoseev:

La méthode utilisée doit être celle qui apporte une solution satisfaisante au problème posé. Lorsque vous appliquez une méthode, quelle qu'elle soit, vous devez comprendre ce que vous faites et ce que vous obtenez.

Et si vous n'avez aucune idée de ce que devrait être un résultat satisfaisant, la méthode à utiliser ne fait aucune différence.

Je suis en partie d'accord, mais dans ce cas, nous évaluons la valeur de l'erreur elle-même et non sa récurrence dans un module.
Cette méthode est adaptée à l'évaluation de valeurs répétitives.
Je ne pense pas que ce soit la bonne méthode pour évaluer les valeurs d'erreur elles-mêmes.

 
Roman:

Je suis partiellement d'accord, mais dans ce cas, nous évaluons l'erreur elle-même, et non sa récurrence dans un module.
Cette méthode est adaptée à l'évaluation de valeurs récurrentes.
Je ne pense pas que ce soit la bonne méthode pour évaluer les valeurs d'erreur elles-mêmes.

Si les valeurs sont répétitives, elles donneront exactement le même résultat que si on les échangeait avec 1, 2 et 3.

Lisez le premier message de ce fil, où l'auteur du fil a formulé son problème - lisez-le, ne l'inventez pas.

 
Dmitry Fedoseev:

Si les valeurs sont répétitives, elles donneront elles-mêmes exactement le même résultat que si on les échangeait avec 1, 2, 3.

Lisez le premier message de ce fil, où l'auteur du fil formule son problème - lisez-le, n'inventez rien.

Donc personne n'invente rien. Si j'ai bien compris le premier message, la tâche initiale était d'estimer la minimisation des erreurs.
Et l'auteur, dans son tableau, a même calculé la moyenne de toutes les erreurs. Mais il ne pensait pas que c'était pratique ou instructif.
La minimisation des erreurs d'estimation et l'estimation des valeurs répétées sont des tâches différentes.

 
Roman:

Donc personne ne l'invente. Si j'ai bien compris le premier message, l'objectif initial était de minimiser les erreurs d'estimation.
Et le topicstarter a même fait la moyenne de toutes les erreurs dans son tableau. Mais il ne pensait pas que c'était pratique ou instructif.
L'estimation de la minimisation des erreurs et l'estimation des valeurs récurrentes sont des tâches différentes.

Il ne suffit pas d'utiliser la moyenne, il faut aussi éviter un dépassement important.

 
Dmitry Fedoseev:

Il ne suffit pas d'avoir une moyenne, il faut aussi avoir un faible taux d'éjection.

et donc le produit

 
Dmitry Fedoseev:

Il ne suffit pas d'utiliser la moyenne, il faut aussi éviter les grandes valeurs aberrantes.

Vous devez alors préparer en plus les données d'entrée, les normaliser ou les standardiser.
Dans mon exemple, cela est pris en compte par MathPow(arr[i] - (max-min)/* ou avg*/, 2.0), et le produit est effectué par la fonction carré.
C'est-à-dire qu'elle le porte à la deuxième puissance, ce qui correspond au produit.

 

Puisque nous parlons de normalisation et de standardisation, cet alignement s'applique lorsque les valeurs comparées doivent être ramenées à la même échelle.
Que voulez-vous dire par "normalisation à la même échelle" ?
Par exemple, lorsque nous devons comparer des nombres comme 81.500 et 1.13453 ou 5200.1 ou 27340 etc.
C'est-à-dire que les valeurs ont un nombre différent de chiffres après le nombre entier.
Pour comparer ces données ou les passer dans un modèle, si celui-ci comporte plusieurs signes, il faut appliquer une normalisation ou une standardisation,
, afin que le modèle calcule correctement et produise le bon calcul.
J'ai écrit de telles fonctions, si quelqu'un en a besoin, utilisez-les.

//--------------------------------------------------------------------
//Возвращает максимальное значение элементов массива
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:

Puisque nous parlons de normalisation et de standardisation, cet alignement s'applique lorsque les valeurs comparées doivent être ramenées à la même échelle.
Que voulez-vous dire par "normalisation à la même échelle" ?
Par exemple, lorsque nous devons comparer des nombres comme 81.500 et 1.13453 ou 5200.1 ou 27340 etc.
C'est-à-dire que les valeurs ont un nombre différent de chiffres après le nombre entier.
Pour comparer ces données ou les passer dans un modèle, si celui-ci comporte plusieurs signes, il faut appliquer une normalisation ou une standardisation,
, afin que le modèle calcule correctement et produise le bon calcul.
J'ai écrit de telles fonctions, si quelqu'un en a besoin, utilisez-les.

Pourquoi n'aimez-vous pas ArrayMaximum et ArrayMinimum ? Pourquoi avez-vous dû l'écrire en boucle ?
Raison: