快捷搜索:  汽车  科技

时间序列异常检测(实时时间序列异常检测)

时间序列异常检测(实时时间序列异常检测)在大多数情况下,一些点的异常可能看起来像是运气不好的情况。而对于模式异常,数据创造了一个看起来与正常情况非常不同的模式。模式异常更难发现,因为我们首先必须能够定义一个正常的模式,然后我们可能需要更多的数据来能够分类,这个模式与历史活动相比是异常的。异常现象通常被分为点状异常和模式异常。点状异常是指异常的单个实例,而模式异常则代表异常的数据集群。在这篇文章中,我们探讨了不同的异常检测方法,可以在大数据源上实时扩展。这个 tsmoothie包可以帮助我们完成这个任务。 Tsmoothie是一个用于时间序列平滑和异常点检测的python库,可以以矢量的方式处理多个序列。它很有用,因为它可以提供我们需要的技术来监测传感器的时间。异常情况的类型首先,让我们定义一下异常现象。它们可以是任何不同的或不正常的、与样本或历史数据中的其他数据有很大偏差的东西。

在多个时间序列传感器上开发一个监测系统

时间序列异常检测(实时时间序列异常检测)(1)

照片由 lovely shots于 Unsplash

尽管多年来收集不同来源的大量数据变得更加容易,但公司需要确保他们正在收集的数据能够带来价值。为了帮助从数据中收集洞察力,机器学习和分析已经成为趋势性工具。由于这些领域需要实时的洞察力,大量不受欢迎的数据会造成实际问题。

在做出决定之前,关键是在采取行动之前,我们必须问:我们的数据中是否存在可能歪曲算法分析结果的异常情况?如果异常情况确实存在,关键是我们要自动检测并减轻其影响。这可以确保我们在采取行动之前得到尽可能准确的结果。

在这篇文章中,我们探讨了不同的异常检测方法,可以在大数据源上实时扩展。这个 tsmoothie包可以帮助我们完成这个任务。 Tsmoothie是一个用于时间序列平滑和异常点检测的python库,可以以矢量的方式处理多个序列。它很有用,因为它可以提供我们需要的技术来监测传感器的时间。

异常情况的类型

首先,让我们定义一下异常现象。它们可以是任何不同的或不正常的、与样本或历史数据中的其他数据有很大偏差的东西。

异常现象通常被分为点状异常和模式异常点状异常是指异常的单个实例,而模式异常则代表异常的数据集群。

在大多数情况下,一些点的异常可能看起来像是运气不好的情况。而对于模式异常,数据创造了一个看起来与正常情况非常不同的模式。模式异常更难发现,因为我们首先必须能够定义一个正常的模式,然后我们可能需要更多的数据来能够分类,这个模式与历史活动相比是异常的。

下面我们介绍不同的模拟场景,在这些场景中,我们应用适合于异常检测的不同技术。它们的采用是与领域相关的,而且都是基于简单的假设。这种简单性在所有我们缺乏信息或存在少量数据的任务中是很重要的。

点异常

我们在这里的目的是检测那些与其他的数据点有如此大的偏差。这引起了人们的怀疑,即这些点是由一个不同的机制产生的。

使用了两种不同的算法:卷积平滑器和指数平滑器。两者都使用滑动窗口法对接收的信号进行平滑。卷积法使用离散的线性卷积,而指数法使用指数加权的卷积。卷积是一种数学运算,可以被描述为两个序列的乘积的积分:原始信号和权重。卷积平滑器使用预先定义的窗口函数(线性、汉宁、汉明、巴特利、黑曼)生成的权重。在线性类型的情况下,权重都是一样的,都等于1。这使得该操作等同于移动平均。指数平滑器使用用指数函数生成的权重。因此,在计算平滑的时候,最近的观察值的权重最大。

分别考虑了两种不同的数据结构:随机漫步系列和无趋势的季节性系列。

时间序列异常检测(实时时间序列异常检测)(2)

随机漫步中的卷积平滑器的点异常现象

时间序列异常检测(实时时间序列异常检测)(3)

在没有趋势的季节性数据中使用指数平滑器的点反常现象

当收集到一个新的数值时,就会计算出平滑的结果。真实观测值和相应的平滑值之间的差异被称为残差。我们用它们来定义离群点或异常点,即真实观测值超过残差置信区的点。

从模拟中,我们可以看到,我们的方法能够检测到可以归类为点状异常的峰值和疯狂的值。

模式异常

我们在这里的目的是检测一组连续的数据点,这些数据点总体上是异常的,尽管单个点可能是也可能不是点状异常。当我们在寻找模式异常时,基本假设是原始数据必须显示出一种模式。例如,季节性的时间序列就是这种情况。

时间序列中的季节性在很多数据中都可以观察到。研究季节性成分对于有效的异常检测至关重要。在这方面,一个关键的挑战是如何确定季节性时期并将其与趋势分开。季节-趋势-分解是检测季节和趋势成分的常用方法之一。卷积滤波、LOWESS或自然立方体-直线是tsmoothie用来检测趋势成分的技术。而季节性模式是用各期的平均数聚集来检测的。从提取的趋势和观察到的季节性的联合,我们可以建立一个假想的平滑值的时间序列。

有趋势的季节性序列被考虑在内,使用分解平滑器检测模式异常。在第一种情况下,我们的目的是检测那些不尊重数据中迄今存在的研究模式的观测值。对于大多数人来说,这就是打破季节性模式的观测值的情况。在第二种情况下,我们在某些区间引入了一个转变。我们想看看这是否被检测出是一个可以改变趋势的剧烈变化,从而被指出是异常的。

时间序列异常检测(实时时间序列异常检测)(4)

带趋势的季节性数据中使用分解平滑器的模式异常现象

时间序列异常检测(实时时间序列异常检测)(5)

季节性数据中带有趋势和转移的分解平滑器的模式反常现象

平滑机制和残差置信带的计算和以前一样。

从模拟结果中,我们可以看到,我们的方法能够检测到不尊重季节性模式的峰值。我们还可以指出我们的传感器偏离了过去观测中存在的假设模式的部分。在这最后一种情况下,我们也试图提供一个理论信号的重建。

摘要

在这篇文章中,我们介绍了一些标准的技术来开发一个时间序列数据的监测工具。当我们想检测异常情况,但又不愿意透露底层系统的很多信息时,我们的方法显得非常有用。所提出的方法对于同时处理多个时间序列也是很好的。我们必须注意选择正确的方法并进行一些参数的调整。

猜您喜欢: