检测社交媒体量时间序列中的异常
我如何检测社交媒体量中的异常:基于残差的方法照片由 Joshua Hoehne 在 Unsplash 上拍摄在社交媒体时代,分析对话量对于了解用户行为、检测趋势以及最重要的是识别异常至关重要。了解异常发生的时间可以帮助管理层和营销部门应对危机情况。在本文中,我们将使用来自 Twitter 的真实示例,探索一种基于残差的方法来检测社交媒体量时间序列数据中的异常。对于这样的任务,我将使用 Numenta Anomaly Benchmark 的数据,它提供了 Twitter 帖子的成交量数据,其基准测试中有 5 分钟的帧窗口。我们将从两个角度分析数据:作为第一个练习,我们将使用完整数据集检测异常,然后我们将在实时场景中检测异常,以检查此方法的响应程度。使用完整数据集检测异常分析示例 Twitter 成交量数据集让我们首先加载和可视化 Apple 的示例 Twitter 成交量数据集:AAPL Twitter 成交量的成交量和对数成交量作者图片从此图中,我们可以看到我们的数据中有几个峰值(异常)。这些成交量峰值是我们想要识别的。查看第二张图(对数刻度),我们可以看到 Twitter 成交量数据显示了清晰的每日周期,白天活动较多,夜间活动较少。这种季节性模式是共同的
来源:走向数据科学使用完整数据集检测异常
分析示例 Twitter 成交量数据集
分析示例 Twitter 成交量数据集让我们首先加载并可视化 Apple 的示例 Twitter 成交量数据集:
从此图中,我们可以看到我们的数据中存在几个峰值(异常)。 这些成交量峰值是我们想要识别的。
查看第二张图(对数刻度),我们可以看到 Twitter 成交量数据显示了清晰的每日周期,白天活动较多,夜间活动较少。 这种季节性模式在社交媒体数据中很常见,因为它反映了用户的昼夜活动。 它还呈现出每周的季节性,但我们将忽略它。
消除季节性趋势
我们希望确保这个周期不会干扰我们的结论,因此我们将把它去除。要消除这种季节性,我们将进行季节性分解。
首先,我们将计算成交量的移动平均值 (MA),这将捕捉趋势。然后,我们将计算观察到的成交量与 MA 的比率,这将给我们乘性季节性效应。
正如预期的那样,季节性趋势遵循昼夜循环,白天达到峰值,夜间达到鞍点。
为了进一步进行分解,我们需要根据之前发现的乘性趋势计算成交量的预期值。