使用极值理论解释异常检测结果

极值分析(EVA)是一种统计方法 , 主要用于估计与以前观察到的事件相比最罕见的事件的概率 。 应用领域通常是工程 , 气象 , 水文学 , 金融和海洋学 。

使用极值理论解释异常检测结果
文章图片
这是一种存在于不同年份的方法 , 用于处理与参考分布的极端偏差 。
在评估异常学习应用中的深度学习模型时 , 我们使用EVA 。 我们不会尝试重新发明任何东西 , 我们只是使用极值理论来对我们的监督方法的结果提供额外的解释 。 我们的方法与算法无关 , 可以轻松地进行概括或修改以适合每个建模管道 。
在本文中 , 我们基于深度学习结构开发了时间序列预测应用程序 。 正确验证后 , 我们将通过EVA检查预测的可靠性 。 我们检查在选定的控制周期内产生的残差 , 以区分它们的“极端”程度以及将来出现的“频率” 。 生成关于这些方面的统计数据和置信度可以使我们指出异常 , 即我们的深度学习框架未建模的情况在将来会如何显示 。
数据
我们使用来自温哥华开放数据目录的数据集 。 它可以在Kaggle上轻松访问 , 并报告2003年至2017年在加拿大城市注册的犯罪记录超过5亿笔 。 我们仅关注日常犯罪的汇总 。 如下图所示 , 该系列似乎非常嘈杂 。

使用极值理论解释异常检测结果
文章图片
按日分类的犯罪汇总系列
但是 , 可以在每周和每月的水平上检测到某种形式的季节性 。

使用极值理论解释异常检测结果
文章图片
犯罪季节性水平系列
我们使用这些信息来建立一个预测模型 , 根据过去的观察序列 , 该模型可以预测未来几天的未来犯罪 。 为此 , 我们开发了Seq2SeqLSTM自动编码器 。 它的结构非常适合对我们的数据建模 , 因为我们可以将原始时间信号与时间嵌入的创建结合在一起 。 编码器输入的是数字输入序列(目标历史记录的序列)以及历史工作日和月份的数字嵌入 。 解码器接收解码器输出以及未来工作日和月份的数字嵌入 , 以产生提前7天的预测 。
通过使用keras-hypetune(一种仅基于NumPy进行Keras超参数调整的简单框架)的网格搜索方法 , 通过优化验证集上的参数来计算训练过程 。
下面将描述在我们的验证集上生成的预测以及针对每个未来时滞计算的相应性能 。 我们的参考基准是通过最后一次有效观察的虚拟重复构成的 。

使用极值理论解释异常检测结果
文章图片
【使用极值理论解释异常检测结果】现实与不同时间范围的预测

使用极值理论解释异常检测结果
文章图片
在不同时间范围内计算出的MSE
极值分析
至此 , 我们已经对模型的优化版本进行了训练 , 可以立即使用 。 我们现在要尝试的是使用EVA典型技术来解释性能 。 对于我们的实验 , 术语“验证集”用于以更通用的方式定义“控制组” , 即用于操作调整和EVA应用的时间间隔 。
我们感兴趣的第一个成分是模型在验证集上产生的残差 。 我们将残差的绝对值视为极值 。 这种选择是合理的 , 因为它们代表了未知的情况 , 在这些情况下我们的预测模型显示出缺乏性能 。 换句话说 , 我们的模型倾向于错误的情况尚未得到研究 , 因此被标记为异常事件 。
异常的程度由与现实和预测的距离来衡量 。 EVA的标准方法包括将所有高于固定阈值的观测值识别为异常/极端(峰值超过阈值) , 或构建将原始序列分成多个块的最大序列(块最大值方法) 。 方法的选择与领域相关 , 并且可以产生不同的结果 。

使用极值理论解释异常检测结果
文章图片
从左起:将残差最大值方法应用于残差序列;在每个区块中检测到的一系列最大点(作者提供的图片)
第二步包括对极值建模 。 我们要分配参考值的分布来源 。 根据之前关于如何选择异常/极端的选择 , 我们有不同的候选分布 。 对于我们的工作 , 我们选择“块最大值”方法 , 其块长度为30天 。 通过这种方法 , 我们有信心认为极端事件是从广义极值(GEV)或Gumble分布中提取的 。 该选择可以通过数学方法执行最大似然估计 , 然后从中选择具有最佳参数的最佳分布 。

使用极值理论解释异常检测结果
文章图片
异常/极端的经验和估计分布
有了这些作品 , 我们就准备好迈出最后一步 。 我们只需要选择一些时间步 , 从技术上讲就是返回期 , 就可以在其上计算相对返回值 。 对于每个返回期 , 我们可以预期至少有一个实例超过了估计的返回值 。 给定t为回报期 , 预期回报值(E)意味着在接下来的t*30天中 , 我们可以预期看到一些超过E的值 , 其概率等于1/t 。 在我们的特定研究案例中 , 返回值是我们可能期望在即将到来的将来超过的残差 , 即可以归类为异常的意外事件 。