跳转至

DBSCAN

即基于历史数据对多条时间序列进行检测发现异常离群检测对象。

算法介绍

DBSCAN 是一种基于密度的聚类算法。它将密度达到一定阈值的区域划分为簇,并将低密度区域视为噪声。DBSCAN 算法不需要预先指定簇的数量,能够发现任意形状的簇,并且对噪声数据有较好的鲁棒性。

  • 检测对象:多条时间序列数据;
  • 使用场景:适合同一组时序中发现离群时序的场景;
  • 传参: 检测区间 T,距离参数;
  • 含义: 从 Now- T, Now 中的多条时间线里, 有哪些时间线异常;
  • 返回: 返回 1 到 n 条离群时间线。

核心参数

距离(eps):float, default=0.5

距离参数表示其中一个样本与另一个样本相邻,两个样本之间的最大距离,不是簇内点距离的最大界限。(float, default=0.5)

可选择配置 range(0-3.0) 之间的任意浮点值。如果不配置,默认距离参数为0.5,距离设置越大得到的异常点越少,距离值设置过小可能检测到的离群值非常多,距离值设置过大可能导致没有任何离群检测到,所以需要根据不同的数据特征设置合适的距离参数。

使用场景

以中心函数 DBSCAN 为例,用户加入观测云空间时,支持选择 DBSCAN。高级函数 - DBSCAN 离群检测基于历史数据对多条时间序列进行检测。

场景中选择时序图,点击查询下的添加函数按钮,选择高级函数 > DBSCAN,选定算法参数,视图中即可展示多条时间序列的离群效果。如图:

DQL 查询示例写法:

DBSCAN(`M::cpu:(usage_idle)`, 0.5)
Warning

在进行查询时:

  • 查询数据中需要加入时间分片,例如 1h:5m:1m
  • 该算法计算至少需要五个值,查询时请满足数据点数;
  • 该算法是对多条时序进行处理,需要在数据查询时有 group by 字段。

显示样式

  • 配置后离群的效果:

  • 如果没有离群,前端原数据展示:

文档评价

文档内容是否对您有帮助? ×