什么是异常检测?
异常检测定义
异常检测是指识别数据集中或系统中与常态不符的数据点的过程。 在数据分析或通过机器学习过程中,异常检测会标记与您大多数数据中通常的模式或统计模型不符的实例。异常可能表现为离群值、意外变化或错误 - 这取决于您分析的数据类型以及您设置的任何预定义参数。异常检测很有用,因为您可以快速有效地定位潜在问题或威胁,并维护系统的完整性和可靠性。
异常类型
以下是异常检测方法可以找到的几种异常类型。(需要注意的是,这些类别并不相互排斥;异常可能同时表现出多个类别的特征。)
- 点异常是指与数据集中的其他数据点明显不同的单个数据点。例如,对于特定信用卡持有人来说,突然出现的大额信用卡消费与常态不符,这将被标记为点异常,以便调查其是否可能存在信用卡欺诈行为。
- 上下文异常是指数据点的正常行为可能因其上下文而异。一个常见的例子是零售网站在黑色星期五(一年中最繁忙的购物日)经历了流量和销售额的大幅增长。这种激增在一年中的其他时间将是异常的,因此需要为这一天设置特殊的参数。
- 集体异常是指一组数据点整体表现出异常行为,即使单个数据点可能看起来正常。这些异常是通过观察多个数据点之间的关系或模式来识别的。一个DDoS 攻击就是一个集体异常的例子,因为它会从多个来源产生与正常流量模式不同的流量。
- 时间异常和时间序列异常是指在时间序列(例如事件序列或季节性变化)中数据出现偏差的情况。例如,度假目的地的旅游旺季发生变化、特定季节出现异常天气模式或非高峰时段出现流量激增,这些都将是时间异常。
- 空间异常和地理异常是指发生在空间或地理数据中的异常。这些异常可以通过查看数据点之间的空间关系来找到。例如,在公共卫生数据中,特定区域出现异常高比例的疾病诊断个体将被视为空间异常,并被调查为局部爆发。
为什么异常检测很重要?
异常检测很重要,因为它可以帮助您识别可能导致未来问题的异常模式、行为或事件。您的组织可以收到有关您选择监控的每个系统和数据集中的潜在风险、效率低下和异常的警报。这为您提供了在任何问题升级之前快速主动干预所需的信息。了解您业务各个方面的所有这些异常,可以确保一切顺利运行,向您展示可以重点改进的地方,并保护您免受内部和外部攻击。
异常检测的工作原理
异常检测首先通过建立一个基线行为概况来工作。该概况代表了数据在一切正常运行时的预期模式和行为。它通常是使用历史数据或正常行为的代表性样本创建的。
一旦建立了正常行为模式,就会将新的传入数据与该模式进行比较。对数据点进行评估,以查看它们与正常行为模式的预期特征匹配程度。任何与正常行为模式显著偏离的数据点都会被标记为异常。(这些偏差可以使用各种统计技术、机器学习算法或基于规则的方法来识别,我们将在下一节中解释。)
接下来,会进一步调查检测到的异常,以了解其原因和影响。重要的是要验证异常,以确保它们不是由测量误差或随机波动引起的误报或异常值。一旦异常得到验证,就该采取行动了。这可能意味着进一步调查、维护或修理、安全措施、质量控制调整,或任何其他可以减轻其影响的步骤。
异常检测技术
大多数异常检测技术可以是基于规则的或基于机器学习的。后者可以分为三个基于机器学习的组:监督技术、无监督技术和半监督技术。选择哪种技术取决于您要解决的特定问题的具体要求以及您拥有的标记数据的多少。
监督式机器学习异常检测技术是需要标记数据的技术,这些标记数据在训练期间明确定义了正常和异常实例。模型学习正常数据的模式,然后根据它所学到的知识将新的数据点分类为正常或异常。
无监督式机器学习异常检测技术在没有标记数据的情况下工作。它们假设异常是罕见的,并且与大多数数据显著不同。这些技术旨在识别异常模式、异常值或偏离正常行为。
半监督式机器学习异常检测技术结合使用标记数据和未标记数据。它们利用标记数据来建立正常行为的基线,然后使用未标记数据识别与该基线的偏差。这在处理非结构化数据时特别有用。
虽然机器学习通常用于异常检测,但值得一提的是,其他技术(如统计方法、基于规则的方法和信号处理技术)也可以用于异常检测。这些非机器学习技术依赖于不同的原理和算法来识别数据中的异常。
异常检测的用例
异常检测在不同领域有各种用例。以下是一些您可能会遇到的用例
- 网络安全:异常检测有助于识别网络流量、系统日志和用户活动中的异常模式或行为。这有助于您发现网络威胁,如入侵尝试、恶意软件和数据泄露。
- 应用程序和系统监控:异常检测对于监控应用程序、服务器和网络基础设施的性能至关重要。它可以帮助您避免潜在的停机,因为它可以快速找到并报告指标中的异常,例如延迟、CPU 使用率和内存使用率。
- 欺诈检测:异常检测可以通过发现非正常支出模式、从异常地理位置进行的购买和其他可疑活动来锁定信用卡欺诈和身份盗窃。
- 硬件维护:您也可以利用异常检测来监控硬件的运行状况。这包括 CPU 温度、风扇速度和电压水平等因素。它可以标记可能意味着即将发生的故障的异常,以便您可以在出现故障之前开始维修。
- 用户行为分析:异常检测可以在避免用户画像的情况下分析应用程序、网站和其他在线平台中的用户行为模式和趋势。它有助于识别异常的用户交互,还可以帮助个性化安全措施。
异常检测的优势
异常检测有许多优势。以下是一些它可以帮助您组织的方式
- 它允许您尽早发现问题,在它们变成更大的问题之前。如果您尽早发现异常,您可以采取行动来阻止可能的损害或中断。
- 它在识别可疑活动方面发挥着关键作用,这些活动可能是恶意的,例如网络攻击或欺诈。这使您能够快速发现潜在的威胁并提高您的安全性。
- 它可以通过查找系统最佳性能的偏差来发现效率低下。这可以帮助您简化流程并提出改进系统整体性能的想法。
- 它对于客户服务至关重要,因为它可以发现可能影响客户满意度的异常,无论是服务中断还是客户服务查询的异常增加,这可能表明存在问题。
- 基于机器学习的异常检测具有能够始终监控您的系统的额外优势。
- 它甚至可以帮助您遵守法规,因为它可以发现与法规要求以及行业标准的偏差。
异常检测的局限性和挑战
异常检测技术存在一定的局限性和挑战。以下是一些需要注意的缺点
- 监督式机器学习模型可能需要大量标记数据才能正常工作。如果异常检测训练模型的标记数据不足,其准确性就会受到影响。
- 设置不准确的阈值供异常检测算法进行测量会导致各种报告错误。
- 如果算法是在现在已经过时的历史模型上训练的,模型的性能可能会下降。更新模型可能很费力且耗时。
- 即使阈值准确,算法有时也会产生误报(将正常数据点标记为异常)或漏报(未检测到的异常)。在两种类型的错误之间取得平衡可能很困难,因为减少一种错误通常会导致另一种错误的增加。
- 异常检测算法可能对噪声或无关数据敏感。您可以使用预处理技术和其他降噪方法来缓解这种情况。
- 当您将异常检测应用于大型数据集或实时流数据时,可扩展性可能是一个挑战。您的组织可能需要比您目前拥有的更多计算资源来处理所有这些数据。
异常检测最佳实践
异常检测最佳实践对于获得最佳结果至关重要。以下是一些您应该牢记的最佳实践
- 在开始之前,请务必彻底了解数据的模式和特征。
- 建立尽可能准确的预期行为的基线模式或阈值。不要在这个步骤上偷工减料——如果您这样做,您将在以后遇到问题。
- 选择适合您组织生成的数据类型的异常检测技术。(您可以结合使用多种技术,如果这是最佳方法。)
- 定期监控异常检测系统的性能,并在生成的数据发生变化时更新它。
- 如果您有任何疑问,请务必咨询团队中分析主题的专家。他们可以帮助您更准确地解释结果。
使用 Elastic 进行异常检测
Elastic 提供了一个清晰易用的界面,该界面利用各种机器学习技术来提供对数据的复杂实时分析。Elastic 的异常检测功能包括逐步工作流程,以帮助您构建更好的异常检测机器学习作业。它还包括可视化功能,使您更容易理解异常及其根本原因,以及跨各种域可靠地检测异常行为。
了解有关Elastic 机器学习的更多信息,以及Elastic 可观测性如何帮助您的企业。