You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kusto series_outliers()函数异常分数计算逻辑详解

Kusto series_outliers() 函数异常分数计算详解

核心逻辑

series_outliers() 采用Tukey图基围栏法识别数值数组中的异常值,并计算对应异常分数。默认以25%/75%分位数作为Q1(低四分位)、Q3(高四分位),同时支持自定义分位数范围(比如你示例中用的10%/90%)。

完整计算步骤

1. 计算指定分位数(Q1、Q3)

根据自定义的分位范围,统计数组的低百分位(Q1)和高百分位(Q3):

  • 你的示例中Q1=2.4(10%分位),Q3=15(90%分位)

2. 计算四分位距(IQR)

IQR是Q3与Q1的差值,用于量化数据的离散程度:

IQR = Q3 - Q1 = 15 - 2.4 = 12.6

3. 定义异常判定围栏

基于Tukey法,异常值的边界由IQR缩放得到:

下围栏 = Q1 - k * IQR
上围栏 = Q3 + k * IQR

其中k为缩放系数,默认值为1.5,可根据业务需求调整。

4. 计算单个数据点的异常分数

分数计算规则如下:

  • 若数据点x落在**[Q1, Q3]区间内**,异常分数为0(表示非异常);
  • 若x < Q1,异常分数 = (x - Q1) / (k * IQR)(结果为负,反映点低于正常区间的程度);
  • 若x > Q3,异常分数 = (x - Q3) / (k * IQR)(结果为正,反映点高于正常区间的程度)。

你的示例分数推导

你提供的数组中,仅-3、2.4、15、16四个点的分数非零,其余数据均落在[2.4, 15]区间内,因此分数为0。

结合你给出的异常分数反推,示例中应该使用了自定义的k值(而非默认的1.5):

  • 对于x=-3:代入公式(-3 - 2.4)/(k*12.6) = -1.904,可算出k≈0.2857(即1/3.5);
  • 对于x=16:(16 - 15)/(0.2857*12.6)≈0.278,与你给出的1.670存在偏差,推测是示例中Q1/Q3为手动指定值,或分位数计算采用了特殊插值方式,但核心计算逻辑仍符合上述步骤。

内容的提问来源于stack exchange,提问作者superdense23

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 18:11:10