我有一组数据流,我想分析这些数据是否突变,并可能忽略数据中的尖峰/噪声。我研究过移动平均数,winsorised方法和其他几种可能的解决方案,包括控制系统中的PID控制器,小马库和numpy以寻求如何解决这个问题的线索。检测流数据中的更改
示例数据集如下。
22.0,22.0,22.0,22.0 ,20.8806130178211,20.8806130178211,20.8806130178211,20.8806130178211,20.8806130178211,20.8806130178211,21.840329667841555,21.840329667841555,20.8806130178211, 20.8806130178211,20.8806130178211,20.8806130178211,20.8806130178211,20.8806130178211,21.840329667841555, 21.840329667841555,21.840329667841555, 21.840329667841555,22.80350850198276
理想情况下,我想检测第1部分,第3部分和第4部分的值以粗体显示。第二部分可以像对待一样。
寻找一种优雅的数学/算法解决方案,其工作原理类似于移动平均值,因为如果数据长时间不变(窗口是动态的),它将忽略旧数据。在上述数据的情况下,当考虑下一个数据窗口20.8806130178211时,初始值22被忽略。
解决方案(程序/类)应该能够接受新的数据输入值(22.0232),并且如果计算出的值在可接受的范围内,即返回true或false的值, 。
感谢
SFK