什么是异常检测?

异常检测定义

异常检测是识别数据集或系统中超出正常范围的数据点的过程。在数据分析过程中,或通过机器学习算法,异常检测会在大部分数据中标记出不符合常规模式或统计模型的实例。异常情况可能表现为异常值、意外变化或错误,具体取决于您正在分析的数据类型和您设置的任何预定义参数。异常检测非常有用,因为您可以快速有效地锁定潜在问题或威胁,并保持系统的完整性和可靠性。


异常类型

以下是异常检测方法可以发现的几种类型的异常。(需要注意的是,这些类别并不互斥;异常可能会同时显示多个类别的特征。)

  • 点异常是指与数据集的其余部分明显不同的单个数据点。例如,某个特定的信用卡持有者突然刷信用卡进行大额购买是不正常的,这就属于一个异常点,需要标记出来作为潜在的信用卡欺诈进行调查。
  • 上下文异常是指数据点的正常行为可能会因其上下文而变化。一个常见的例子是,在一年中最繁忙的购物日“黑色星期五”,零售网站的流量和销售额会出现大幅增长。这样的峰值在一年中的其他时间是不正常的,因此为这一天设置了特殊的参数。
  • 集体异常会涉及一组数据点,这些数据点总体上表现出异常行为,即使单个数据点看起来可能正常。这些异常是通过观察多个数据点之间的关系或模式来识别的。DDoS 攻击是一个集体异常的例子,因为它从多个来源产生不同于正常流量模式的流量。
  • 时间异常时间序列异常 — 当时间序列(如事件序列或季节性变化)中的数据存在偏差时,就会出现这两种异常。例如,度假胜地旅游旺季的变化、特定季节的异常天气、非高峰时段的交通流量激增,这些都属于时间异常。
  • 空间异常地理异常涉及空间或地理数据中出现的异常。这些异常可以通过观察数据点之间的空间关系来发现。例如,在公共卫生数据中,如果在某一特定地区被诊断患有某种疾病的人异常集中,这将是一种空间异常,可作为局部爆发进行调查。

geo_point field in Data Visualizer

为什么异常检测很重要?

异常检测很重要,因为它可以帮助您识别在某一时刻可能导致问题的异常模式、行为或事件。在您选择让它监测的每个系统和数据集中,当出现潜在风险、低效和异常情况时,您的组织就可以收到告警。这会为您提供所需的信息,以便快速主动地进行干预,将问题消灭在萌芽状态。通过了解业务各个方面的所有这些异常情况,可以保持业务平稳运行,向您展示有待重点改进的地方,并保护您免遭内部和外部攻击。


异常检测的工作原理

异常检测的工作原理是,首先建立一个基线行为配置文件。这个配置文件表示一切正常运行时数据的预期模式和行为。这个文件通常是使用历史数据或正常行为的代表性样例创建的。

在建立正常行为配置文件后,新传入的数据就会与这个配置文件进行比较。对数据点进行评估,查看它们与正常行为配置文件的预期特征的匹配程度。任何明显与之偏离的数据点都会被标记为异常。(这些偏差可以使用各种统计技术、机器学习算法或基于规则的方法来识别,我们将在下一节中进行介绍。)

接下来,对检测到的异常进行进一步调查,以了解它们原因和影响。重要的是要验证异常,以确保它们不是由测量误差或随机波动造成的误报或异常值。一旦异常得到证实,就需要即刻采取行动。这些行动可能包括进一步调查、维护或维修、加强安全措施、调整质量控制,或者任何其他可减轻异常影响的措施。


异常检测技术

大多数异常检测技术可以是基于规则方法的,也可以是基于机器学习算法的。后者可以细分为三类基于机器学习的技术:监督型技术、非监督型技术和半监督型技术。选择哪种技术取决于您要解决的问题的具体要求,以及您有多少标记的数据。

监督型 ML 异常检测技术是需要标记数据的技术,在训练过程中正常和异常实例都有明确定义。这种模型会先学习正常数据的模式,然后再根据所学内容将新数据点分类为正常或异常。

非监督型 ML 异常检测技术无需标记数据即可工作。它们假定异常很罕见,且与大多数数据有明显不同。这些技术主要用于识别异常模式、异常值或偏离正常行为的异常情况。

半监督型 ML 异常检测技术会结合使用标记的数据和未标记的数据。它们利用标记的数据来建立正常行为的基线,然后使用未标记的数据识别偏离这个基线的行为。这种技术非常适合处理非结构化数据。

虽然机器学习通常用于异常检测,但值得一提的是,其他技术(如统计方法、基于规则的方法和信号处理技术)也可用于异常检测。这些非机器学习技术依赖于不同的原理和算法来识别数据中的异常。


异常检测用例

异常检测在不同领域有各种各样的用例。以下是您可能遇到的一些用例:

  • 网络安全异常检测有助于识别网络流量、系统日志和用户活动中的异常模式或行为。这有助于您发现各种网络威胁,例如入侵企图、恶意软件和数据泄露。
  • 应用程序和系统监测异常检测对于监测应用程序、服务器和网络基础架构的性能至关重要。它可以快速发现并报告延迟、CPU 使用率和内存使用率等指标的异常,从而帮助您避免潜在的中断。
  • 欺诈检测:异常检测可以发现异常消费模式、在不常出现的地理位置进行的购物和其他可疑活动,从而锁定信用卡欺诈和身份盗用行为。
  • 硬件维护:您可以利用异常检测来监测硬件的运行情况。这包括 CPU 温度、风扇速度和电压电平等因素。它可以标记出可能意味着即将发生故障的异常情况,以便让您做到防患于未然。
  • 用户行为分析异常检测既可分析应用程序、网站和其他在线平台中的用户行为模式和趋势,同时又能避免对用户进行特征分析。它非常有助于识别异常的用户交互,而且还有助于对安全措施进行个性化设置。

异常检测的优势

异常检测有很多优势。以下是它可为组织提供帮助的几种方式:

  • 它可让您未雨绸缪,防患于未然。如果您能及早发现异常,就能采取行动来阻止可能造成的损害或中断。
  • 它可在识别可能具有恶意的可疑活动(例如网络攻击或欺诈)方面发挥关键作用。这让您能够快速发现潜在威胁并提高安全性。
  • 它可以发现效率低下问题,不放过偏离系统最佳性能的任何异常情况。这可以帮助您简化流程,为系统的整体改进出谋划策。
  • 它对客户服务至关重要,因为它能发现可能影响客户满意度的异常情况,无论是服务中断还是客户服务问询的异常增加,都可能表明存在问题。
  • 基于机器学习的异常检测还有一个额外的优势,那就是能够随时监测系统
  • 它甚至还可以帮助您遵守法规,因为它可以发现偏离法规要求和行业标准的异常情况。

异常检测的局限性和挑战

异常检测技术具有一定的局限性和挑战。以下是一些需要注意的局限之处:

  • 监督型机器学习模型可能需要大量标记的数据才能正常工作。如果异常检测训练模型的标记数据量不足,其准确性就会受到影响。
  • 为异常检测算法设置不准确的阈值来进行测量,可能会导致各种报告错误。
  • 如果算法是基于现已过时的历史模型训练的,则模型的性能可能会降低。更新模型可能既费力又耗时。
  • 即使阈值设置准确,这种算法偶尔也会产生误报(正常数据点被标记为异常)或漏报(未检测到异常)。要在这两种类型的错误之间取得平衡可能很难,因为减少一种错误往往会导致另一种错误的增加。
  • 异常检测算法可能对干扰或无关的数据非常敏感。您可以使用预处理技术和其他降噪方法来减轻这种情况。
  • 当您对大型数据集或实时流数据进行异常检测时,可扩展性可能是一个挑战。您的组织可能需要比当前更多的计算资源才能处理所有数据。

异常检测最佳实践

要获得最佳结果,遵循异常检测的最佳实践非常重要。以下是一些您应该记住的做法:

  • 在开始之前,请务必全面了解数据的模式和特征。
  • 为预期行为建立尽可能准确的基线模式或阈值。请不要省去这一步,否则以后会遇到问题。
  • 选择与组织生成的数据类型相匹配的异常检测技术。(如果这是最好的方法,您可以结合使用多种技术。)
  • 定期监测异常检测系统的性能,并在生成的数据发生变化时进行更新。
  • 如果您有任何疑问,请一定要让团队中的专家参与主题分析。他们可以帮助您更准确地解读结果。

使用 Elastic 进行异常检测

Elastic 提供了清晰、易用的界面,可利用各种机器学习技术对数据进行复杂的实时分析。Elastic 的异常检测功能包括分步工作流,可帮助您构建更好的异常检测机器学习作业。此外,它还提供了可视化功能,可让您轻松了解异常情况及其根本原因,并可靠地检测各个域的异常行为。

立即了解更多关于 Elastic Machine Learning 的信息,以及 Elastic 可观测性如何为您的业务提供帮助。


异常检测资源

Kibana 指南:异常检测

异常检测入门

异常检测算法

检测地理数据中的异常位置