数据科学中异常检测技术的入门指南

在本文中,我将为您简要介绍异常检测,并指导您通过不同的技术来识别异常

异常检测是处理数据时不可避免的重要任务。在诸多领域,如制造业、金融和网络安全中都广泛应用。

第一次接触异常检测可能会感到有难度,需要一步一步地跟随指南进行学习。在我第一次作为数据科学家的经历中,我记得曾经为掌握这门学科而苦苦挣扎。

首先,异常检测需要识别值与其余数据点显著偏离的稀有观测值。这些异常值通常被称为离群值,是少数,而大部分项目属于正常类别。这意味着我们正在处理的是一个不平衡的数据集。

另一个挑战是,工作中大多数时候没有标记的数据,很难在没有目标的情况下解释预测。这意味着您不能使用通常用于分类模型的评估指标,您需要采用其他方法来解释和信任模型的输出。让我们开始吧!

什么是异常检测?

异常检测是指在数据中发现不符合预期行为的模式的问题。这些不符合预期的模式通常被称为异常值、离群值、不协调观察、异常、异常、异常或不同应用领域中的污染物。信用异常检测:一项调查

这是一个简短的关于异常检测的好定义。异常通常与在数据收集过程中获得的错误相关联,并因此被消除。但也有一些情况,存在具有与其余数据完全不同的可变性的新项目,因此需要适当的方法识别这种类型的观察结果。在许多领域运营的公司中,如金融和制造业,识别这些观测结果非常有用。

有哪些异常类型?

有三种主要的异常类型:点异常、上下文异常和集体异常。

正如您可能推断的那样,点异常构成了最简单的情况。它发生在单个观测值与其余数据相比是异常的情况下,因此被识别为离群值/异常值。例如,假设我们想在银行客户的交易中进行信用卡欺诈检测。在这种情况下,点异常可以被认为是客户的欺诈行为。

异常的另一种情况可以是上下文异常。您只能在特定情境中遇到这种异常。例如,美国的夏季热浪。您可以注意到1930年有一个巨大的峰值,代表了在美国发生的一个极端事件,称为尘土风暴。之所以这样称呼,是因为那是一个造成南中部美国沙尘暴的时期。

第三种也是最后一种类型的异常是集体异常。最直观的例子是想象一下我们今年从几个月开始就没有降水的情况下。如果我们将过去50年的数据进行比较,就会发现从未出现过类似的行为。一个异常的集合中的单个数据实例本身可能不会被识别为离群点,但所有这些数据点一起表明了一个集体异常。在这种情况下,一天没有降水不足以被视为异常,而许多天没有降水可以被认为与前几年的数据相比是异常的。

可以用哪些机器学习模型进行异常检测?

有几种方法可以应用于异常检测:

  1. 孤立森林是一种无监督和非参数技术,由Fey Tony Liu于2012年引入。与随机森林一样,它是一种集成学习方法,可以并行训练决策树。但与其他集成方法不同的是,它专门隔离异常值,使其与其他项目区分开。这种方法背后的假设是这个方法的有效性的原因:(1)异常值是相对于较为常见的正常数据而言的少数类;(2)异常值往往很快被发现,因为其平均路径最短。
  2. 局部离群因子是由Markus M. Breuning在2000年提出的一种基于密度的聚类算法,它通过计算特定项与其邻居之间的局部密度偏差来检测异常。它假定与异常值周围的密度应该明显不同于其邻居周围的密度。此外,离群值的密度应该较低。
  3. 自编码器是由两个神经网络组成的无监督模型,一个是编码器,一个是解码器。在训练过程中,只有正常数据传递给模型。通过这种方式,它学习了正常数据的压缩表示,这应该与异常值的表示不同。还有一个假设是,异常数据不能被模型很好地重建,因为它与正常数据完全不同,因此应该具有更高的重构误差。

如何在无监督环境下评估异常检测模型?

在无监督环境下,没有任何评估指标可以帮助您了解正确阳性预测率(精度)或实际阳性率(召回率)。

在没有任何可能评估模型性能的情况下,提供模型预测的解释比以往任何时候都更为重要。这可以通过使用可解释性方法,如 SHAP 和 LIME 来实现。

有两种可能的解释:全局和局部。全局可解释性的目的是提供模型作为一个整体的解释,而局部可解释性旨在解释单个实例的模型预测。

最后的想法

我希望您会发现这个快速概述的异常检测技术是有用的。正如您所注意到的,这是一个具有挑战性的问题,适当的技术取决于情况。我还应强调,在应用任何异常检测模型之前,进行一些探索性分析非常重要,例如 PCA 以在较低维空间中可视化数据和箱形图。如果您想深入了解,请查看下面的资源。谢谢阅读!祝您有美好的一天!

资源

  • 由 V. Chandola 撰写的 Anomaly Detection:一项调查
  • 隔离森林的论文
  • 论文评论:利用修补重建进行视觉异常检测
  • SHAP 的论文
  • LIME 的论文

Eugenia Anello 目前是意大利帕多瓦大学信息工程系的研究员。她的研究项目专注于连续学习与异常检测的结合。