AnyRobot-基于机器学习的多维度异常检测最佳实践
关键字
机器学习、多维度异常告警
适用产品
· AnyRobot 3.0.x
目的
利用基于机器学习的多维度异常检测方法,对多个指标进行历史异常值的检测,并给出每个异常点的详细信息,及时发现数据的异常波动,保证业务的稳定性。
解决方案
基本思路
与单维度异常检测不同,多维度异常检测采用的模型算法是马氏距离,它通过协方差来计算两点之间距离,是一种有效的计算两个未知样本集的相似度的方法,它对数据进行多维度异常检测的原理是:计算所有点的马氏距离, 如果某个点的马氏距离值大于阈值,那么可以认为这个点就是异常点。在多维度异常检测中,我们增加了数据预处理模块,包括缺失值处理和数据预处理两个部分。对于存在缺失值的数据,可以灵活选取不同的填充方法进行填充;另外,模型计算的数据需要进行一些预处理以更好地适用模型。以下是数据预处理模块参数配置的使用帮助:
1. 缺失值处理:提供了9种不同的数据缺失值处理方法,包括填充0、平均值、中值、最小值、最大值、前项值、后项值、任意值以及删除缺失此值的行,避免了因数据缺失导致无法计算的情况。
2. 预处理:通过不同的方法进行数据预处理,可以提高数据的质量以提升后续模型计算的精度和性能。提供了两类四种数据预处理方法,标准化方法包括极差标准化和 Z-Score 标准化,降维方法包括 PCA 和核化 PCA 。
使用方法
步骤一:进入配置页
1. 首先进入搜索,将需要处理的数据在搜索页面保存,数据必须被解析过,存在解析字段。
2. 登录 AnyRobot ,选择机器学习进入任务列表,点击新建按钮,在异常检测功能中,选择多维度异常检测。
步骤二:配置数据预览
1. 在此处选择已存搜索的搜索和时间,所选时间必须包含该搜索的数据。
2. 多维度异常检测可以添加多个字段,在度量中选择聚合方式和需要检测的字段。
3. 桶中可以选择横坐标的聚合方式和字段。例如聚合方式选择时间,字段选择 @timestamp ,根据数据设置合适的时间间隔,这里设置1小时。
4. 点击预览按钮,查看预览结果。可以得到对数据的统计描述和字段特征,如均值、正态性与否等,页面下方可以看到预览的原始数据。
步骤三:配置数据预处理
1. 缺失值默认方法中包括9种填充方法。从图中可以看到,该数据存在缺失值,在缺失值处理中我们选择平均值进行填充。
2. 预处理方法中包括4种方法,例如选择极差标准化。
3. 点击应用按钮。应用成功后,应用按钮左侧出现查看结果按钮
4. 点击查看结果按钮,弹出弹框,弹框顶部显示各个字段名的含义,下方显示处理后的字段,可以看到缺失值均已填充,以及极差标准化后的结果。
步骤四:配置模型计算
1. 模型计算的算法默认为马氏距离,在计算字段下选择至少两个字段。
2. 选择阈值方法,目前提供标准差、中位数绝对偏差、四分位差三种方法,此处选择中位数绝对偏差。
3. 根据提示设置合适的阈值参数和滑动窗口参数,此处阈值参数设置为5,滑动窗口设置为0。
4. 点击计算按钮,在计算结果中可以查看数据中的异常点信息,包括异常事件总数和事件总数、数据异常趋势、原始数据等。
步骤五:保存任务
1. 点击最下方的保存按钮,输入任务名称,点击确定按钮保存。
2. 保存后返回任务列表查看任务。