前言
许多基础设施和性能监控软件工具都提供内置异常检测。但它们经常产生太多误报。异常检测也可以表述为预测问题。异常是意外事件,因此难以预测。如果您构建的系统可以很好地预测下一次测量的值,则可以将该预测与实际测量进行比较。如果您的预测与测量之间存在较大差异,则可能发生异常。经过本人多次尝试发现了一些好的检测异常数据的方法和理论在这里分享给大家
统计阈值估计
时间序列值的预测有很多种机器学习方法。其中一些方法还自带了估计置信边界的工具,比如 ARIMA 或高斯过程。输出通常是高斯分布,它会告诉你实际测量值落在某些边界之间的可能性有多大。
一种常用的方法是 3 Sigma 规则规则。如果你的测量值与平均值相差超过 3 倍的标准差,那就认为这个测量值是异常的。但是就像下图展示的,你的预测仍然有 0.1% 的概率是错的;而且测量值实际上是期望值。使用这种方法,你实际上可以建立异常值检测,但是统计上的异常值未必是异常的。
假设你有 100 个企业客户,活跃在 100 个国家。如果你想每分钟实时监测每个国家的呼叫,那你每分钟将有 10000 个数据点让异常检测算法监测。如果应用 3 个西格玛规则,你的模型仍然有 0.1% 的概率出错。对于这个例子来说,这意味着平均每分钟会有 10 个误报,或者每天有 36000 个误报,这是不希望出现的结果。
当然,你可以把置信区间改成 4 个标准差,这样每天的误报率就只有 1000 多个。但是改变可以接受的标准差就等同于设定了假阳性率。它并没有捕捉测量值(在这个例子中是响应时间)是否异常。
尽管在大多数情况下高斯分布非常适合这个预期输出,但是你可以选择不同的概率分布。但是即使你的新概率分布更适合数据,你基本上仍然在用相同的方法来解决问题并设定异常检测模型的误报率。
异常分数
鲁棒随机切割森林(RRCF)是一种用于检测异常情况的方法,它主要基于树的构建。它的工作原理是对数据进行建模,当新的数据点输入模型时,它会检查树的结构,并确定是否需要调整以更好地拟合数据。如果模型对数据的预测准确,则无需进行任何更改,但如果预测出现明显偏差,则需要对树进行调整以更好地适应数据。
RRCF 返回一个称为异常分数的指标,用于衡量模型为拟合数据所必须进行的更改程度。如果模型中的树的大小为256(默认值),则异常分数可以在0到256之间的任何位置。较小的变化会导致较低的分数,而较大的变化则可能使分数达到最大值256。如果您希望将分数范围控制在0到100%之间,您可以简单地将输出除以树的大小。
一般来说,您可以设定一个阈值,例如树的变化为50%。在实验中,这种方法通常表现良好。然而,我们注意到对于某些指标,我们仍然会得到太多的误报或者错过了相当多的异常事件。为了解决这个问题,我尝试使用移动平均方法进行改进,但问题仍然存在,我发现必须为每个指标单独设置一个阈值才能获得最佳性能。我们还发现,选择适当的树大小对于每个指标都是一个挑战。对于更稳定的指标,模型通常不需要对整个树进行大量调整,而对于噪声较大的数据,则可能需要频繁调整以模拟数据中的预期变化。
缩放最小最大阈值估计
为了解决阈值问题,我们采取了不同的方法。这个想法是你从过去的数据中了解什么是好的阈值。假设您有一个模型可以预测您的指标,与实际指标的偏差可能如下图所示。如果您想将此推理应用于 RRCF 异常分数的输出,则可以忽略后面示例中的负值。
蓝线代表过去的测量偏差。绿色数据点显示了我们尝试使用异常检测模型评估的新偏差。正如您在上图中看到的,这些绿点被认为是完全正常的。
在这六天内,您可以看到蓝线中有两个巨大的尖峰。如果我们假设异常现象每周发生的次数少于一次,则可以安全地假设过去一周的最小值和最大值阈值运行良好,如下图红色所示。
如果我们测量与预测测量值 0.75 的新偏差,我们会发现这种方法不会导致检测到异常。使用具有三个标准差的统计方法将得到紫色线(如上所示)和 0.4 的阈值。这不是期望的行为,它解释了为什么使用这种方法时会出现如此多的误报。
但这种方法也有其局限性。想象一下您测量到的偏差为 0.85。如下图所示,这会触发异常检测。
为了避免这种情况,只需增加边界设置即可。在实践中,我们注意到将边界增加 50% - 或将边界乘以 1.5 - 给我们带来了最好的结果。原因是只有明显大于过去偏差的偏差才会触发异常。
下面的示例说明了应用缩放阈值的效果。与预测测量值 1.3 的偏差会触发异常,而低于 1.2 的所有偏差则不会。
但如果你有 3 个数据点,而不是只有 1 个,那就明显更高了。
数据量大了怎么办
随着组织收集更大的数据集,并可能洞察业务活动,检测异常数据或这些数据集中的异常值对于发现效率低下、罕见事件、问题的根本原因或运营改进机会至关重要。但什么是异常以及为什么检测它很重要?
异常类型因企业和业务职能而异。异常检测仅仅意味着根据业务功能和目标定义“正常”模式和指标,并识别不属于操作正常行为的数据点。例如,特定时期内网站或应用程序的流量高于平均水平可能表明存在网络安全威胁,在这种情况下,需要一个能够自动触发欺诈检测警报的系统。这也可能只是某个特定营销活动正在发挥作用的标志。异常现象本质上并不是坏事,但了解它们并利用数据将它们置于上下文中,对于理解和保护您的业务至关重要。
从事数据科学工作的 IT 部门面临的挑战是如何理解不断扩展和不断变化的数据点。我将介绍如何利用人工智能支持的机器学习技术通过三种不同的异常检测方法来检测异常行为:监督异常检测、无监督异常检测和半监督异常检测。
监督学习
监督学习是一种机器学习技术,它利用已知的数据来训练模型,然后用这个模型来检测异常。在这个过程中,数据分析师会为数据点贴上“正常”或“异常”的标签,作为训练数据。通过使用这些标记好的数据来训练机器学习模型,模型就能够学会根据给定的例子来识别异常值。这种方法对于已知的异常检测很有帮助,但是不能发现未知的异常或者预测未来可能出现的问题。
监督学习中常用的机器学习算法包括:
- K 最近邻 (KNN) 算法:这种算法是一种基于密度的分类器或者回归建模工具,用来进行异常检测。它的工作原理是假设相似的数据点会在彼此附近。如果一个数据点与其他数据点的距离较远,那么它可能被认为是异常的。
- 局部离群因子(LOF):LOF 和 KNN 类似,都是基于密度的算法。不同之处在于,KNN 是根据最接近的数据点做出判断,而 LOF 则是根据相距最远的数据点来做出结论。
无监督学习
无监督学习是一种机器学习技术,它可以处理没有被标记的数据,也就是说,不需要人为干预去告诉算法哪些数据是正常的,哪些是异常的。这种技术借鉴了人脑神经元的工作原理,通过深度学习和神经网络或自动编码器来发现数据中的模式,然后假设那些符合这些模式的数据是正常的。
这些技术对于发现未知的异常和减少手动筛选大量数据非常有用。然而,我们需要注意的是,因为这些技术是基于数据做出假设的,所以有时候可能会错误地将正常数据标记为异常。
一些常见的无监督学习算法包括:
- K-means:这是一种用于聚类数据的算法,它通过数学计算来把相似的数据点放到一起组成簇。通过分析这些簇,我们可以找到数据中的模式,并推断出哪些数据可能是异常的。
- 隔离森林:这是一种用于异常检测的算法,它使用无监督数据。它通过创建多个决策树来隔离异常点。通过对数据点进行分析,算法会给每个数据点一个异常分数,分数低于0.5的通常被认为是正常的,而分数高于0.5的更有可能是异常的。
- 支持向量机(SVM):这是一种异常检测技术,它使用训练数据来定义正常范围。如果一个数据点在边界内部,它就被认为是正常的;而在边界外部的则被标记为异常。
半监督学习
半监督学习是一种结合了监督学习和无监督学习的方法。它让我们能够利用无监督学习自动发现数据中的模式和特征,同时也能够通过人类的监督来引导和控制模型学习的过程。这种方法通常可以提高模型的预测准确性。
其中一个常见的半监督学习方法是线性回归。这是一种用于预测的机器学习工具,它使用已知的因变量和自变量之间的关系。通过这些关系,可以根据已知的数据来预测未来的结果。而且,即使只有部分数据被标记了,线性回归也可以使用未标记的数据来辅助预测。
监督学习可用的场景
- 零售业:利用上一年的销售数据,可以预测未来的销售目标,并为销售员工设定绩效目标。通过分析销售数据,可以深入了解产品的受欢迎程度、营销活动的效果以及季节性因素对销售的影响。
- 天气预报:监督学习算法可以利用历史气象数据来预测未来的天气模式。通过分析与气压、温度和风速等因素相关的数据,气象学家可以创建更准确的天气预报,更好地了解天气变化的规律和趋势。
无监督学习可用的场景
- 入侵侦测系统:这些系统可以以软件或硬件形式存在,用于监视网络流量是否存在安全违规或恶意活动的迹象。利用无监督学习算法,可以实时检测网络上的潜在攻击,保护用户信息和系统功能。这些算法可以根据时间序列数据创建正常网络行为的模型,并在发现网络流量的峰值或异常模式时标记为潜在的安全漏洞,以进行进一步的检查。
- 制造业:在制造业中,确保设备的正常运行对于产品质量和供应链的优化至关重要。无监督学习算法可以应用于预测性维护,通过从连接到设备的传感器获取未标记的数据,并预测潜在的故障或故障。这使得公司能够在严重故障发生之前进行维修,从而减少机器停机时间,提高生产效率。
半监督学习可用场景
- 医疗领域:医疗专业人员可以使用机器学习算法来处理包含已知疾病或病症的图像。然而,由于每个患者的情况都可能不同,因此不可能标记所有潜在的医疗问题。通过半监督学习,这些算法可以处理患者信息,并在未标记的图像中进行推断,标记出潜在的医疗问题,为医生提供更全面的诊断支持。
- 欺诈识别:预测算法可以利用半监督学习来检测欺诈行为。虽然某些用户的信用卡活动可能已被标记为欺诈,但对于许多交易来说,它们并没有被明确标记。通过结合标记和未标记的数据,算法可以识别出不寻常的交易模式,从而帮助金融机构和支付平台及时发现潜在的欺诈行为。
总结(附赠AI检测异常数据工具)
以上这些就是帮助大家提供一些检测异常数据的方法 和教学 希望大奖能够点个赞 目前本人也根据大模型开发了异常检测工具 目前正在测试哦 评论区随机抽取赠送 开源异常检测大模型这些工具可以快速识别异常情况,帮助预防和修复问题。 利用人工智能和机器学习,为所有团队成员提供详细且情境化的性能数据图,帮助准确预测并主动排除错误。
文章参考Anomaly detection in machine learning: Finding outliers for optimization of business functions - IBM Blog
Dynamic threshold estimation for anomaly detection
版权归原作者 云屋探案社. 所有, 如有侵权,请联系我们删除。