检测社交媒体量时间序列中的异常

我如何检测社交媒体量中的异常:基于残差的方法照片由 Joshua Hoehne 在 Unsplash 上拍摄在社交媒体时代,分析对话量对于了解用户行为、检测趋势以及最重要的是识别异常至关重要。了解异常发生的时间可以帮助管理层和营销部门应对危机情况。在本文中,我们将使用来自 Twitter 的真实示例,探索一种基于残差的方法来检测社交媒体量时间序列数据中的异常。对于这样的任务,我将使用 Numenta Anomaly Benchmark 的数据,它提供了 Twitter 帖子的成交量数据,其基准测试中有 5 分钟的帧窗口。我们将从两个角度分析数据:作为第一个练习,我们将使用完整数据集检测异常,然后我们将在实时场景中检测异常,以检查此方法的响应程度。使用完整数据集检测异常分析示例 Twitter 成交量数据集让我们首先加载和可视化 Apple 的示例 Twitter 成交量数据集:AAPL Twitter 成交量的成交量和对数成交量作者图片从此图中,我们可以看到我们的数据中有几个峰值(异常)。这些成交量峰值是我们想要识别的。查看第二张图(对数刻度),我们可以看到 Twitter 成交量数据显示了清晰的每日周期,白天活动较多,夜间活动较少。这种季节性模式是共同的

来源:走向数据科学

使用完整数据集检测异常

分析示例 Twitter 成交量数据集

分析示例 Twitter 成交量数据集

让我们首先加载并可视化 Apple 的示例 Twitter 成交量数据集:

AAPL Twitter 成交量的成交量和对数成交量作者图片
AAPL Twitter 成交量的成交量和对数成交量作者图片

从此图中,我们可以看到我们的数据中存在几个峰值(异常)。 这些成交量峰值是我们想要识别的。

查看第二张图(对数刻度),我们可以看到 Twitter 成交量数据显示了清晰的每日周期,白天活动较多,夜间活动较少。 这种季节性模式在社交媒体数据中很常见,因为它反映了用户的昼夜活动。 它还呈现出每周的季节性,但我们将忽略它。

消除季节性趋势

我们希望确保这个周期不会干扰我们的结论,因此我们将把它去除。要消除这种季节性,我们将进行季节性分解。

首先,我们将计算成交量的移动平均值 (MA),这将捕捉趋势。然后,我们将计算观察到的成交量与 MA 的比率,这将给我们乘性季节性效应。

时间对成交量的乘性效应 作者图片
时间对成交量的乘性效应 作者图片

正如预期的那样,季节性趋势遵循昼夜循环,白天达到峰值,夜间达到鞍点。

为了进一步进行分解,我们需要根据之前发现的乘性趋势计算成交量的预期值。

AAPL Twitter 成交量的观察值和预期值以及对数成交量作者图片
AAPL Twitter 成交量的观察值和预期值以及对数成交量作者图片

分析残差和检测异常

分析残差和检测异常
AAPL Twitter 成交量季节性分解后的绝对误差和对数误差作者图片
AAPL Twitter 成交量异常信号作者图片