代码之家  ›  专栏  ›  技术社区  ›  peoro

计算实际平均值

  •  0
  • peoro  · 技术社区  · 14 年前

    我有一个相对较小的(~100个值)整数集:每个整数表示我运行的测试持续的时间(毫秒)。

    计算平均值的简单算法是将所有 n 值并将结果除以 n个 ,但这并没有考虑到某些荒谬的高/低值一定是错误的,应该被丢弃。

    有哪些算法可用于估计实际平均值?

    4 回复  |  直到 14 年前
        1
  •  2
  •   Uberto    14 年前

    正如您所说,您可以丢弃所有偏离平均值超过给定值的值,然后重新计算平均值。另一个有趣的值是中值,这是最常见的值。

        2
  •  1
  •   arena-ru    14 年前

    这取决于你考试的不同条件。这是概率论的一项任务。 最简单的方法之一是尝试计算 中值的 ,您可以处理荒谬的高/低值。请看下面的链接: Wiki about median

        3
  •  1
  •   dennycrane    14 年前

    如您所述,如果存在非常高/低的值,算术平均值就不好。 正如有人建议的那样,您可以计算中值,即,在值的排序列表中,“中间”值(如果您的集合包含不均匀数量的项)或两个“中间”值的算术平均值(否则)。

    另一种方法是把最低和最高的五个 percentiles 计算其余的算术平均值。

        4
  •  1
  •   Juha Syrjälä    14 年前

    一些选项:

    • 首先丢弃N个最高值和最低值,然后计算其余值的算术平均值。将N设置为适当的值,以便丢弃例如1%或10%的值。
    • 使用 median ,或中间值。
    • 使用 geometric mean 这就降低了异常值的权重。

    维基百科列表 some ways 计算不同的“平均”值