statistics - 以秒计算事物并保持运行平均值的算法

标签 statistics go

我想按某些属性计算请求并按特定时间段(可能按秒)汇总它们,然后计算最近 10 秒、最近 2 分钟等的运行平均值/最大值/分钟。

(对我而言)显而易见的方法是只列出秒数,当我需要移动/运行平均值时,只需返回列表中适当的时间量并计算平均值。除了围绕存储聚合值以在较长时间段内使用的一些明显优化之外,我还缺少什么想法?

最佳答案

我更喜欢指数移动平均线,因为它更简单并且不需要将值保存在数组中

这是我以前用过的函数

func MovingExpAvg(value, oldValue, fdtime, ftime float64) float64 {
  alpha := 1.0 - math.Exp(-fdtime/ftime)
  r := alpha * value + (1.0 - alpha) * oldValue
  return r
}

和代码示例

http://play.golang.org/p/OZ25cwKMnT

关于statistics - 以秒计算事物并保持运行平均值的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12538959/

相关文章:

戈朗 : fatal error: all goroutines are asleep - deadlock

mongodb - 我应该保留什么 setLimit(int64) 方法来显示 Collections 中的所有记录

python - Python 中统计模型中的 ADF 测试

mysql - SQL - 如何找到查询的最佳性能数字

statistics - 如何在 Pentaho Schema Workbench 中定义标准差函数

machine-learning - 无法从 statsmodels 导入 MSTL

go - bcrypt 生成不正确的哈希 - 我的用户输入处理是否正确?

go - 如何深拷贝对象

types - struct{a int;b int} 和 struct{b int;a int} 有什么区别?

java - 泊松分布的最大似然估计?