什么是多变量异常情况检测?
单变量异常检测(由 KQL 函数 series_decompose_anomalies()实现,监视和检测一段时间内单个变量中的异常情况。 多变量异常检测通过检测多个变量 的联合分布 中的异常来扩展此方法,这意味着它分析变量如何作为一个组相互关联并影响彼此,而不是隔离检查每个变量。 多变量异常检测可用于监视复杂 IoT 系统的运行状况、检测金融交易中的欺诈以及识别网络流量中的异常模式。
例如,考虑一个系统来监视车队的性能。 系统收集有关各种指标的数据,例如速度、燃油消耗和发动机温度。 通过将这些指标分析在一起,系统可以通过单独分析每个指标来检测不明显的异常。 本身,燃油消耗的增加可能是由于各种可接受的原因。 但是,燃油消耗的突然增加加上发动机温度的下降可能表明发动机存在问题,即使每个指标本身都在正常范围内。
如何检测Microsoft Fabric中的多变量异常?
Fabric中的多变量异常情况检测利用共享持久存储层之上的强大 Spark 和 Eventhouse 引擎。 初始数据可以引入到 Eventhouse 中,并在 OneLake 中公开。 然后,可以使用 Spark 引擎训练异常情况检测模型,并使用 Eventhouse 引擎实时预测新流式处理数据的异常情况。 这些引擎的互连可以处理共享存储中的相同数据,从而允许通过模型训练从引入到预测异常的无缝数据流。 此工作流简单而强大,可用于实时监视和检测复杂系统中的异常。
解决方案组件
此解决方案依赖于以下组件:
- Eventhouse:数据最初被引入到 Eventhouse 中,这是一个实时数据处理引擎,能够处理高吞吐量的数据流。
- OneLake:Eventhouse 中的数据在 OneLake 中公开,这是一个共享的持久存储层,提供数据的统一视图。
- 多变量异常情况检测包:解决方案使用 时序异常检测器 python 包,基于图形关注网络(GAT)实现高级算法,该算法捕获不同时序之间的相关性,并实时检测异常。 GAT 模型基于历史数据进行训练,以了解不同时序之间的关系。 训练的模型可以应用于预测新流数据的异常情况。 请注意,此算法是在即将停用的 AI 异常检测器服务 中使用的算法。 有关算法的详细信息,请参阅 博客 和 论文。
- Spark Notebook:用于脱机训练历史数据的异常情况检测模型,并将训练的模型存储在Fabric的 MLflow 模型注册表中
- KQL 查询集:用于实时预测传入数据的异常情况。