如何检测油箱上的事件
数据挖掘
时间序列
数据清理
2022-03-01 12:58:27
2个回答
欢迎来到 SO!看起来你有一个时间序列问题。通常,处理时间序列的第一步是考虑差异。让我们将的燃料水平。您需要计算。
在此步骤之后,您可能会看到您识别为不良数据的峰值是异常值。例如,您可以通过查看低于和高于 2.5 个百分位或 5 个百分位的所有数据来检测这些。通常这需要一些仔细的分析工作,以确保您不会删除太多。一旦您确定了最佳可行百分位数是多少,您就可以对数据进行Winsorize。
最后,您将查看结果分布底部的数据点。这些很可能是您认定为盗窃的点。
我希望这有帮助。
因此,正如我的评论所建议的那样,我认为有一种相对简单的方法可以解决这个问题。那是傅里叶变换。我现在回想起来,在频域中表示信号时,删除部分基于时间的信号很容易。因为只需对信号应用滤波器以去除信号中不需要的分量。在您的情况下,这些尖峰(突然变化)看起来像频域中的高频信号。所以理论上,您应该能够对转换后的数据应用低通滤波器以消除尖峰(假货),然后将滤波后的信号转换回时域。然后就像这样,您已经摆脱了数据中的所有这些突然变化。
重申。
- 使用傅里叶变换的一些变体将现有信号(您的数据)转换为频域。
对变换后的信号(变换后的数据)应用低通滤波器。请注意,您需要为低通滤波器选择合适的截止频率。这应该相对简单,因为您的大部分数据变化非常缓慢。
将傅里叶变换的逆变换应用于变换后的数据,以将其带回时域。你的峰值现在应该在你的数据中消失了。
这是一个非常简单的过程,使用 DSP 库的任何语言都只需要大约 3~4 行代码。
其它你可能感兴趣的问题

