什么是异常检测?

异常检测定义

异常检测是指识别数据集或系统中超出正常范围的数据点的过程。 在数据分析期间或通过机器学习,异常检测会标记不符合您数据中大多数的通常模式或统计模型的情况。异常可能表现为异常值、意外更改或错误——这取决于您正在分析的数据类型以及您设置的任何预定义参数。异常检测很有用,因为您可以快速有效地定位潜在问题或威胁,并保持系统的完整性和可靠性。


异常类型

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

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

geo_point field in Data Visualizer

为什么异常检测很重要?

异常检测非常重要,因为它可以帮助您识别可能导致未来问题的异常模式、行为或事件。您的组织可以对您选择监控的每个系统和数据集中潜在的风险、低效率和异常情况发出警报。这为您提供了快速主动干预所需的信息,以防止任何问题升级。了解您业务各个方面的所有这些异常情况,可以确保一切顺利运行,显示您可以重点改进的地方,并保护您免受内部和外部攻击。


异常检测的工作原理

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

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

接下来,进一步调查检测到的异常,以了解其原因和影响。验证异常以确保它们不是由于测量误差或随机波动引起的误报或异常值非常重要。一旦验证了异常,就该采取行动了。这可能意味着进一步调查、维护或维修、安全措施、质量控制调整或任何其他可以减轻其影响的步骤。


异常检测技术

大多数异常检测技术可以是基于规则的或基于机器学习的。后者可以分为三个基于机器学习的组:监督技术、无监督技术和半监督技术。选择哪种技术取决于您尝试解决的问题的特定要求以及您拥有的标记数据量。

监督机器学习异常检测技术是需要标记数据的技术,这些数据在训练期间清楚地定义了正常和异常实例。该模型学习正常数据的模式,然后根据其学习到的内容将新的数据点分类为正常或异常。

无监督机器学习异常检测技术在没有标记数据的情况下工作。它们假设异常是罕见的,并且与大多数数据显着不同。这些技术旨在识别异常模式、异常值或偏离正常行为的偏差。

半监督机器学习异常检测技术使用标记数据和未标记数据的组合。它们利用标记数据来建立正常行为的基线,然后使用未标记数据来识别偏离此基线的偏差。这在处理非结构化数据时尤其有用。

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


异常检测的用例

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

  • 网络安全异常检测有助于识别网络流量、系统日志和用户活动中的异常模式或行为。这可以帮助您发现网络威胁,如入侵尝试、恶意软件和数据泄露。
  • 应用程序和系统监控异常检测对于监控应用程序、服务器和网络基础设施的性能至关重要。它可以帮助您避免潜在的中断,因为它可以在诸如延迟、CPU 使用率和内存利用率等指标中快速查找和报告异常情况。
  • 欺诈检测:异常检测可以通过发现异常的消费模式、从异常地理位置进行的购买和其他可疑活动来重点关注信用卡欺诈和身份盗窃。
  • 硬件维护:您还可以利用异常检测来监控硬件的运行状况。这包括诸如 CPU 温度、风扇速度和电压水平等因素。它可以标记可能意味着即将发生故障的异常情况,以便您可以在中断之前开始维修。
  • 用户行为分析异常检测可以分析应用程序、网站和其他在线平台中的用户行为模式和趋势,同时避免用户画像。它有助于识别不寻常的用户交互,还可以帮助个性化安全措施。

异常检测的优势

异常检测具有许多优势。以下是它可以帮助您的组织的几种方式

  • 它允许您在问题变得更大之前尽早发现问题。如果您及早发现异常,就可以采取行动来阻止可能的损害或中断。
  • 它在识别可能具有恶意的可疑活动(例如网络攻击或欺诈)方面起着关键作用。这使您可以快速发现潜在威胁并提高安全性。
  • 它可以通过查找偏离系统最佳性能的偏差来发现低效率。这可以帮助您简化流程,并为系统的整体改进提出想法。
  • 它对客户服务至关重要,因为它会发现可能影响客户满意度的异常情况,无论是服务中断还是可能表明问题的客户服务咨询的异常增加。
  • 基于机器学习的异常检测还具有能够始终监控您的系统的额外好处。
  • 它甚至可以帮助您实现监管合规性,因为它也可以发现偏离监管要求以及行业标准的偏差。

异常检测的局限性和挑战

异常检测技术存在一定的局限性和挑战。以下是一些需要注意的缺点

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

异常检测最佳实践

遵循异常检测最佳实践对于获得最佳结果非常重要。以下是一些您应该牢记的要点

  • 在开始之前,请确保充分了解数据的模式和特征。
  • 为预期行为建立尽可能准确的基线模式或阈值。不要在这个步骤上吝啬——如果你这样做,你将来会遇到问题。
  • 选择一种与您的组织生成的数据类型非常匹配的异常检测技术。(如果这是最佳方法,您可以组合多种技术。)
  • 定期监控您的异常检测系统的性能,并在您生成的数据发生变化时对其进行更新。
  • 如果您有任何疑问,请务必联系您的团队中分析主题领域的专家。他们可以帮助您更准确地解释结果。

使用 Elastic 进行异常检测

Elastic 提供了一个清晰、易于使用的界面,该界面利用各种机器学习技术来提供对您的数据进行复杂的实时分析。Elastic 的异常检测功能包括逐步工作流程,可帮助您构建更好的异常检测机器学习作业。它还包括可视化效果,使您更容易了解异常及其根本原因,以及在您的各个领域中可靠地检测异常行为。

详细了解Elastic 机器学习以及Elastic 可观测性如何帮助您的企业。


异常检测资源

Kibana 指南:异常检测

异常检测入门

异常检测算法

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