异常检测算法在可观测性平台的落地和实践|得物技术
目录
一、背景
二、异常检测算法
1. 异常值剔除
2. 统计方法的应用
3. 机器学习方法的应用
4. 深度学习方法的应用
三、总结和展望
一
背景
比较依赖个人经验,需要了解指标的历史趋势。 配置比较复杂,有时对周期波动型的时序数据还要针对不同的时间段配置不同的阈值。 随着业务的变更要不断调整阈值,随着时间推移、业务的变更,观测指标趋势也可能发生改变,要对阈值做相应的调整。 受大促或异常值影响比较大,像有些阈值配置同比或者环比,如果上一时刻或者历史同时刻有数据有异常,会影响该时刻的检测判断。
二
异常检测算法
异常值剔除
箱型图
下四分位数:25%分位点对应的值(Q1)
中位数:50%分位点对应的值(Q2)
上四分位数:75%分位点对应的值(Q3)
上须:Q3+1.5(Q3-Q1)
下须:Q1-1.5(Q3-Q1)
前后填充法,使用前一个值填充或者后一个正常值填充。 均值、中位数填充法。 插值法,插值法有线性插值和多项式插值。线性插值就是通过线性回归预测缺失位置的值,多项式插值使用多项式回归预测缺失位置值。
统计方法的应用
3sigma算法
纵向,获取历史同一时刻30个点的观测值,通过3sigma算法来检测异常。 横向,zscore算法进行变点检测,横向获取某个时刻往前历史30个点的观测值。
zscore 算法
过去30个点数据按窗口做平滑处理,窗口大小为3; 平滑后的数据前后做差值; 对差值数据集计算zscore,zscore的计算公式为:
使用正态分布生存函数计算zscore的右尾概率,判断概率是否大于0.01,小于0.01则为异常。
机器学习方法的应用
孤立森林
n_estimators:int,optional(default=100),iTree的个数,指定该森林中随机树数量。 max_samples:int or float,optional(default="auto")构建子树的样本数,整数为个数,小数为占全集的比例,用来训练随机数的样本数量。 contamination:float in(0,0.5),optional(default=0.1)表示异常数占给定数据集的比例,数据集中污染的数量,其实就是训练数据中异常数据的数量,定义该参数值作用是决策函数中定义阈值。 max_features:int or float,optional (default=1.0)构建每个子树的特征数,整数位个数,小数为占全特征的比例,指定从总样本X中抽取来训练每棵树iTree的属性的数量,默认只使用一个属性,如果设置为int整数,则抽取max_features个属性;如果是float浮点数,则抽取max_features * X.shape[1]个属性。 bootstrap:boolean,optional (default=False)采样是有放回还是无放回,如果为True,则各个树可放回地对训练数据进行采样。如果为False,则执行不放回的采样。 n_jobs:int or None,optional (default=None) 在运行fit()和predict()函数时并行运行的作业数量。除了在joblib.parallel_backend上下文的情况下,None表示为1。设置为-1则表示使用所有可用的处理器Random_State : int, RandomState instance or None, optional (default=None)每次训练的随机性,如果设置为int常数,则该Random_State参数值是用于随机数生成器的种子;如果设置为RandomState实例,则该Random_State就是一个随机数生成器 如果设置为None,该随机数生成器就是使用在np.random中的RandomState实例。 verbose:int,optional (default=0)训练中打印日志的详细程度,数值越大越详细。 warm_start:bool,optional (default=False)当设置为True时,重用上一次调用的结果去fit,添加更多的树到上一次的森林1集合中;否则就fit一整个新的森林。
深度学习方法的应用
通过预测历史时刻的预测值,同观测值做差值计算,计算结果作为一个新的误差指标写入到时序数据库中。 预测未来某个时刻的值时,通过第一步的误差指标获取最近的30个点误差值,计算30个误差点的标准差作为sigma,然后该时刻的预测值加减3倍的sigma就计算得到了上下限。
三
总结和展望
往期回顾
1. 前端打包工具Mako架构解析|得物技术
2. 基于Rspack实现大仓应用构建提效实践|得物技术
3. 星愿森林的互动玩法揭秘|得物技术
4. StarRocks跨集群迁移最佳实践|得物技术
5. Apache Flink类型及序列化研读&生产应用|得物技术
文 / 云斌
关注得物技术,每周一、三、五更新技术干货
要是觉得文章对你有帮助的话,欢迎评论转发点赞~
未经得物技术许可严禁转载,否则依法追究法律责任。
“
扫码添加小助手微信
如有任何疑问,或想要了解更多技术资讯,请添加小助手微信: