首页 > 新闻中心 > 娱乐新闻
时间序列中的异常检测方法

时间序列是以有序方式记录并在时间上相关的观察结果。

然而并不是所有的观测值都是有效数据,一些不符合预期行为的观察结果我们可以定义为异常值。这些观察结果与噪声、错误或不需要的数据有关,分析人员对这些数据本身并不感兴趣。在这些情况下,应删除或纠正异常值以提高数据质量,并生成可供其他数据挖掘算法使用的更清洁的数据集。例如,消除传感器传输错误以获得更准确的预测,因为主要目标是做出预测。

时间序列的异常检测问题通常被表述为识别相对于一些规范或通常信号的异常数据点。看看一些异常值类型:

点异常值是与时间序列中的其他值(全局异常值)或其相邻点(局部异常值)进行比较时,在特定时间实例中表现异常的数据。

点异常值可以是单变量或多变量,具体取决于它们是否分别影响一个或多个时间相关变量。

这意味着其联合行为异常的连续时间点,尽管每个单独的观察不一定是异常点。子序列异常值也可以是全局或局部的,并且可以影响一个(单变量子序列异常值)或多个(多变量子序列异常值)时间相关变量。

分析师可以使用很少的技术来识别数据中的不同异常。它从基本的统计分解开始,并且可以用于自编码器。让我们从基本的开始,了解它如何以及为什么有用。

STL (Seasonal-Trend decomposition procedure based on Loess) 为时序分解中一种常见的算法。这种技术使您能够将时间序列信号分成三个部分:季节性、趋势和残留。它适用于季节性时间序列,这也是最流行的时间序列数据类型。

2.1.1 算法原理

2.1.2 特点

优点:它简单、健壮,可以处理很多不同的情况,并且仍然可以直观地解释所有异常情况。

缺点:这种技术的最大缺点是严格的调整选项。除了阈值和置信区间之外,您无能为力。例如,您正在跟踪您网站上对公众关闭然后突然打开的用户。在这种情况下,您应该分别跟踪启动周期之前和之后发生的异常情况。

2.1.3 应用示例

2.2.1 算法原理

我们可以利用决策树的强大功能和稳健性来识别时间序列数据中的异常值/异常。可以使用监督学习来教树对异常和非异常数据点进行分类。为此,我们需要标记异常数据点。无人监督通常会更有效的!我们可以使用Isolation Forest algorithm来预测某个点是否是异常值,而无需任何标记数据集的帮助。

Isolation Forest是南大周志华老师的团队在2010年提出一个异常检测算法,在工业界很实用,算法效果好,时间效率高,能有效处理高维数据和海量数据。与其他流行的异常值检测方法不同的主要思想是IForest显式识别异常而不是分析正常数据点。与任何树集成方法一样,IForest是基于决策树的。换句话说,Isolation Forest检测异常纯粹是基于异常是少数且不同的数据点这一事实。异常隔离是在不使用任何距离或密度测量的情况下实现的。在应用IsolationForest模型时,我们设置 contamination = outliers_fraction,即告诉模型数据中存在多少比例的异常值。这是一个试验/错误指标。拟合和预测(数据)对数据执行异常值检测,正常返回 1,异常返回 -1。最后,我们使用时间序列视图可视化异常。

2.2.2 特点

优点:这种技术的最大优点是您可以引入任意数量的随机变量或特征来制作更复杂的模型。

缺点:缺点是越来越多的功能可能会很快开始影响您的计算性能。在这种情况下,您应该仔细选择功能。

2.2.3 应用实例

如您所见,该算法在开始时将一些点标记为“异常值”并且整体表现不佳。这是由于三个原因:一开始,该算法非常天真,无法理解什么是异常。它获得的数据越多,它能够看到的变化就越多,并且它会自我调整。如果您看到许多真阴性,则意味着您的污染参数太高。相反,如果您没有看到应该在的红点,则表示污染参数设置得太低。该数据非平稳,低频趋势影响算法整体运行

我们可以针对数据进行一阶差分,将非平稳数据转化为平稳数据进行分析。可以看出效果非常好!

2.3.1 算法原理

使用预测的异常检测基于一种方法,即过去的几个点通过添加一些随机变量(通常是白噪声)生成对下一个点的预测。 使用这种方法的难点在于您应该选择差异数、自回归数和预测误差系数。每次使用新信号时,都应该建立一个新的预测模型。另一个障碍是您的信号在差分后应该是静止的。简而言之,这意味着您的信号不应该依赖于时间,这是一个重要的约束。

我们可以使用不同的预测方法,例如移动平均线、自回归方法和 ARIMA 及其不同的变体。使用 ARIMA 检测异常的过程是:从过去的数据中预测新的点,并找出与训练数据中的量级的差异。选择一个阈值并根据该差异阈值识别异常。

2.3.2 特点

优点:该算法可以很好地处理不同的季节性参数,例如每月或每年,并且它对所有时间序列指标具有原生支持。

如果仔细观察,与IForest相比,该算法可以很好地处理边缘情况。

缺点:由于该技术基于预测,因此在有限的数据场景中会遇到困难。有限数据中的预测质量会降低,异常检测的准确性也会降低。

2.3.3 应用实例

我们使用ARIMA 模型作为检测模型就行检测举例。

待补充

2.4.1 算法原理

该方法非常简单,落在定义的集群之外的数据实例可能会被标记为异常,我们将使用 k-means 聚类。

2.4.2 特点

优点:这种技术的最大优势与其他无监督技术类似,即您可以引入任意数量的随机变量或特征来制作更复杂的模型。

缺点:缺点是越来越多的功能可能会很快开始影响您的计算性能。除此之外,还有更多的超参数需要调整和调整,因此模型性能总是存在很大差异。

2.4.3 应用实例

针对上述的原始数据我们进行差分得到平稳数据:

原始信号以及差分信号

寻找最佳的分类数目K,可以得出K=4时,集群后趋于平稳,这意味着添加更多集群并不能解释我们相关变量中更多的方差。

我们使用以下步骤来查找和可视化异常:计算每个点与其最近的质心之间的距离。最大的距离被认为是异常。我们使用 outliers_fraction 向算法提供有关我们数据集中存在的异常值比例的信息,类似于 IsolationForest 算法。这主要是一个超参数,需要正确设置 hit/trial 或 grid-search - 作为一个起始数字,让我们估计一下,outliers_fraction=0.1使用 outliers_fraction 计算 number_of_outliers。将阈值设置为这些异常值的最小距离。anomaly 的异常结果包含上述方法Cluster (0:normal, 1:anomaly)。使用集群视图可视化异常。使用时间序列视图可视化异常。

2.5.1 算法原理

自动编码器是一种无监督技术,可在通过不同维度提取其特征的同时重新创建输入数据。因此,换句话说,如果我们使用来自自动编码器的数据的潜在表示,它对应于降维。如果我们降低维度,我们不会丢失一些信息,包括异常值吗?答案是,一旦确定了主要模式,就会发现异常值。许多基于距离的技术(例如 KNN)在计算完整特征空间中每个数据点的距离时都会遭受维度灾难。必须降低高维。

有趣的是,在降维过程中会发现异常值。我们可以说异常值检测是降维的副产品。

自动编码器是一种发现异常的无监督方法。

2.5.2 特点

优点自动编码器可以轻松处理高维数据。 与其非线性行为有关,它可以在高维数据集中找到复杂的模式。

缺点由于它是一种基于深度学习的策略,如果数据较少,它将特别困难。如果网络深度增加并且在处理大数据时,计算成本将会飙升。

2.5.3 应用示例

待补充

您可能还喜欢的
最新信息
返回顶部