请提供实用的建议。 - 页 5

 
Dmitry Fedoseev:
模式1 模式2 模式3 模式4 模式5 (六) 方式6 (六) 方式7 (六) 方式8 (六) Mod 9 (六) Mod 10 (六) Mod 11 (六) Mod 12 (八)模13 (六) 14 模式15 数量
4,431 17,091 15,822 2,531 0,631 17,721 28,481 5,702 13,293 5,702 8,232 6,332 0,63 1 3,163 6,963 23
5,062 17,722 12,661 3,802 0,631 19,622 29,112 4,43 1 9,492 5,061 6,331 6,332 1,902 1,902 6,332 26
4,431 20,253 16,463 4,433 0,631 17,721 29,75 3 6,333 5,061 8,233 10,13 3 5,061 0,631 1,27 1 4,431 29


最低的和是23,选择第一行。

谢谢,我也会注意到这一点。

但这些都是误差值,用这种方法来估计评级是否可靠?
在统计学中,他们主要使用平方之和来估计误差。
而平方之和和评级的结果不同,那么该相信哪种方法呢?

;))

排名方法是在哪个数学领域使用的?
吸取这种材料并了解它的用途。
 

所用的方法应该是能给手头的问题一个满意的解决方案的方法。在应用任何方法时,你必须明白你在做什么,你会得到什么。

如果你不知道一个令人满意的结果应该是什么,那么使用什么方法就没有区别。

 
Dmitry Fedoseev:

所用的方法应该是能给手头的问题一个满意的解决方案的方法。在应用任何方法时,你必须明白你在做什么,你会得到什么。

如果你不知道一个令人满意的结果应该是什么,那么使用什么方法就没有区别。

我部分同意,但在这种情况下,我们要评估的是错误的价值本身,而不是它在一个模块中的重复出现。
这种方法适用于评估重复值。
我不认为这是评估错误值本身的正确方法。

 
Roman:

我部分同意,但在这种情况下,我们评估的是错误本身,而不是它在一个模块中的重复出现。
这种方法适用于评估反复出现的数值。
我不认为这是评估错误值本身的正确方法。

如果这些数值是重复的,它们将得到与1、2、3互换完全相同的结果。

请阅读本主题的第一篇帖子,本主题的作者在那里提出了他的问题--只是阅读它,而不是编造它。

 
Dmitry Fedoseev:

如果这些数值是重复的,它们本身会得到与1、2、3互换完全相同的结果。

请阅读本主题的第一篇帖子,该主题的作者提出了他的问题--只需阅读它,而不是编造它。

所以没有人不是在编造它。根据我对第一个帖子的理解,最初的任务是估计误差最小化。
而作者在他的表格中甚至得出了所有误差的平均值。但他认为这并不实际,也没有什么内容。
估计误差最小化和估计重复值是不同的任务。

 
Roman:

所以没有人在编造它。根据我对第一个帖子的理解,最初的目的是估计误差最小化。
而且,该专题组甚至将他的表格中的所有错误都平均化了。但他认为这并不实际,也没有什么内容。
估计误差最小化和估计重复出现的值是不同的任务。

仅仅使用平均值是不够的,你还需要避免大的过冲。

 
Dmitry Fedoseev:

仅有平均数是不够的,你还需要有低的弹射率。

因此,该产品

 
Dmitry Fedoseev:

仅仅使用平均值是不够的,我们还需要避免大的离群值。


在我的例子中,MathPow(arr[i]-(max-min)/*或avg*/, 2.0)考虑到了这一点,而乘积则由平方函数来完成。
也就是说,它把它带到了二次方,这对应的是乘积。

 

当我们在讨论规范化和标准化的问题时,当被比较的数值需要被带到相同的尺度时,这种调整就适用了。
你说的 "归一化为同一尺度 "是什么意思?
例如,当我们需要比较像81.500和1.13453或5200.1或27340等数字时。
也就是说,这些数值 整数后面 有不同的数字。
为了比较这类数据或将其传入模型,如果模型有几个标志,应用规范化或标准化,
,这样模型就能正确计算,产生正确的计算。
我已经写了这样的函数,如果有人需要,请使用它们。

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

当我们在讨论规范化和标准化的问题时,当被比较的数值需要被带到相同的尺度时,这种调整就适用了。
你说的 "归一化为同一尺度 "是什么意思?
例如,当我们需要比较像81.500和1.13453或5200.1或27340等数字时。
也就是说,这些数值 整数后面 有不同的数字。
为了比较这类数据或将其传入模型,如果模型有几个标志,应用规范化或标准化,
,这样模型就能正确计算,产生正确的计算。
我已经写了这样的函数,如果有人需要,请使用它们。

为什么你不喜欢ArrayMaximum和ArrayMinimum?你为什么要通过循环来写呢?