基于python的时间序列数据异常检测

基于python的时间序列数据异常检测,python,python-3.x,machine-learning,time-series,Python,Python 3.x,Machine Learning,Time Series,我正试图编写一个python代码来检测时间序列数据中的异常情况。我的输入数据如下所示: 在这里,红色标记的区域是异常。我希望得到异常数据点的x坐标。到目前为止,我已经尝试了一种基本的if条件(即if速率

我正试图编写一个python代码来检测时间序列数据中的异常情况。我的输入数据如下所示:
在这里,红色标记的区域是异常。我希望得到异常数据点的x坐标。到目前为止,我已经尝试了一种基本的if条件(即if速率<100,数据点异常)和各种统计技术,如:平均值、标准偏差、不同窗口大小的滚动平均值等。但是,它们都没有很好地工作。有没有一种方法可以通过使用一些统计方法来实现我想要的?如果没有简单的方法可以做到这一点,我知道我必须寻找机器学习算法。在这种情况下,哪种算法适合我的数据集?谢谢。

看起来您的数据是以块的形式出现的,如果您能够区分块(两个样本之间可能有一定的延迟),您可以查看块中样本的分布。如果你知道你的利率永远不会降到100以下,我会从这个开始,稍微整理一下,然后看看剩余的分布。模式值应该有助于识别“中间”,即最常见的值。切断所有数据—一定量的标准偏差可能有助于获得干净的数据,但不能保证不会切断任何所需的数据


编辑:在获取模式之前,你必须将数据放入垃圾箱。

@AdrienWehrlé我试图寻找均值和标准差的突然下降。然而,在数据的良好区域,平均值和标准偏差也会下降。因此,对它们设置限制也会削减一些好的数据。