algorithm - 检测转换数据持续下降模式的最佳算法

标签 algorithm math anomaly-detection

我正在尝试使用一种算法来查找和排名持续下降的数据。 基础条件:

断点位置(蓝色箭头)未知但大于 x(例如可以在 t=4 或 t=9 中但不能小于 t=2)

考虑到数据方差,B 部分(断点之后)的 AVG 明显小于 A 部分(断点之前)。

A部分和B部分的比例越大,得分越高。

需要有关最佳实践的建议。

enter image description here

更新:我吐出 X 轴在那些日子之前持续 2 天和 10 天。 并使用 SUM((x_last_2_days -x_avg last_10_days)/std_over_all )

所以我得到了以下模式

等级 2 - 良好 enter image description here

等级 3 - 有争议 enter image description here

等级 6 - 差 enter image description here

等级 7 - 好 enter image description here

等级 8 - 差 enter image description here

如何忽略不良模式或改进算法。

最佳答案

看起来你正在处理一个嘈杂的time series .您制定的问题是已知的step detection or edge detection .你解决它的方法列在那里的 wiki 中(寻找滑动窗口)。因为数据是嘈杂的,所以你必须使用统计方法来检测嘈杂数据中的特征,以区分模式的变化和纯噪声。具体实现需要一些分析和可能的模拟。

一般来说,时间序列的分析和信号处理都会涉及到去趋势、去季节、边缘检测,这样剩下的就是纯白噪声了。使用的工具是Fourier transform , autocorrelation

关于algorithm - 检测转换数据持续下降模式的最佳算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71922091/

相关文章:

c - Adaboost 如何与 Viola 和 Jones 算法一起工作?

c# - 将两个整数映射到一个(有上限)

c++ - 在 C++ 程序中评估从 max 导出的 3d 样条曲线

Python 异常检测 (Pyod) 不收敛

algorithm - 使用 Apache Spark 对时间序列数据进行 K-Means

java - 如何使用递归创建二进制搜索算法

algorithm - Prim 算法和 Dijkstra 算法之间的区别?

c++ - 如何使用 opencv (c++) 分割光滑表面上的异常

algorithm - 给定以下方程组,找到最大值?

python - 当 A、B、M 是大数时,如何计算 (A^B)%M?