4

基于连续的实时事件流(每个事件的时间很容易知道,但每个事件没有价值,它们都是相同的),如何编写一个过滤器/过程来输出连续平滑的事件率?所谓连续,我的意思是它可以例如绘制为图表,而不是每个事件的时间,而是提供有关每个特定时间的估计事件率的信息。我知道“平滑”可能是模棱两可的,但我正在寻找最简单的方法来使结果图看起来平滑。例如,每个事件不应该有任何大的峰值。

4

2 回答 2

2

这可以通过移动平均线来实现。取最后 N 个事件,其中 N 是平均窗口的大小。计算这 N 个事件中的第一个和最后一个事件之间的时间差。如果您以秒为单位测量并且想要每分钟的事件率,那么您可以将 60 秒除以以秒表示的时间差,然后乘以 N-1。

currentAvgRate = (N-1) * 60 / (最后 N 个事件之间的时间差)

N 的值越大,曲线越平滑,但对局部变化的反应就越小。

于 2014-08-05T23:34:19.120 回答
2

通过平均。例如,每次您收到一个事件时,都将一个事件添加到一个。每秒删除 1/60 的 a。它会给你一个简单的平均值,滑动窗口约为一分钟。

于 2012-07-31T01:02:55.547 回答