1

我在检测数据集中快速上升的曲线时遇到了一些问题。
数据集示例:
6500(整数值)、2013-04-16 15:31(日期时间值或时间戳,以毫秒为单位)6480、2013-04-16 15:31
6480、2013-04-16 15:32
6450、2013 -04-16 15:33
6430, 2013-04-16 15:34
6410, 2013-04-16 15:35
...
2110, 2013-04-26 1:56

这个数据数组形成了一个图表:

我需要帮助检测图表中异常快速的跳跃,例如 - 检测涂成黑色的线条的起点和终点:

最好的解决方案,在我看来 -使用梯度或局部最大值和最小值,但我不明白如何应用它来解决这个问题。

我将不胜感激任何提示或任何代码算法(任何语言),谢谢。

4

1 回答 1

2

你所有的快速跳跃都是向上跳跃而不是向下跳跃。如果您的数据集是 V[i] 0<=i<n,您只需要查看是否 V[i] - V[i-1] > T 其中 T = 某个阈值来检测跳跃。所以这都是关于如何设置T的问题。我建议阈值也会变化,所以它是T[i]而不是固定数字T。例如,你可以让T[i] = MC[i]其中 C[i] 是最近变化的指数加权移动平均值,即

C[i] = C[i-1] * (1 - W) + W * Abs(V[i-1] - V[i-2])

在这里,如果 W=1,则 C[i] 始终是最近的变化,但是当 W<1 时,它会平均最近的变化,最近的变化具有最大的权重。乘数 M 可以是例如 2,这意味着您正在寻找最近变化的指数加权移动平均线的两倍跳跃。这些方面的东西应该可以工作:-)

于 2013-05-12T14:53:42.397 回答