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

已知ARL值,如何基于数据集C反向计算阈值h?

反向求解控制限h的推导步骤(基于给定ARL与数据集C)

咱们先把整个逻辑捋得明明白白,从你已经完成的正向计算,到现在的反向推导,一步步拆解:

一、回顾正向计算的核心逻辑

你之前给定h=5,用数据集C=[1,5,8,9,7,8,1,2,5,5]算出ARL=2.5的核心代码如下:

C=[1,5,8,9,7,8,1,2,5,5]
h=5
n=10
ooc = C > h  # 生成布尔数组,标记每个元素是否大于h
lenOOC = sum(ooc)  # 统计*大于h的元素数量*
p = lenOOC / n  # 计算超出控制限的比例
ARL = 1 / p  # 计算平均运行长度

这里lenOOC=4(C中大于5的元素是8、9、7、8),所以p=4/10=0.4,ARL=1/0.4=2.5,完全对应你的结果。

二、当前反向推导的进展与后续落地步骤

现在你要反向求解:给定ARL=1.428571,求对应的h值,已经推导到:

ARL=1.428571
n=10
lenOOC = n / ARL  # 计算需要的超出控制限的元素数量
# 这里 lenOOC = 10 / 1.428571 ≈7

基于ooc=C>h的定义,接下来的推导可以按这几步来:

步骤1:明确lenOOC的核心含义

lenOOC就是数据集C中大于h的元素个数,现在我们需要lenOOC≈7(因为10/1.428571=7),也就是要找到h,使得C中恰好有7个元素大于它。

步骤2:对数据集C排序,快速缩小h的范围

先把C从小到大排序,得到:

sorted_C = [1, 1, 2, 5, 5, 5, 7, 8, 8, 9]

排序后元素的分布一目了然,能帮我们快速定位h的合理区间。

步骤3:精准定位h的取值区间

我们需要7个元素大于h,意味着剩下的3个元素≤h。看排序后的数组:

  • 前3个元素是1,1,2,第4个元素是5
  • 要让恰好7个元素大于h,h需要满足:2 ≤ h < 5
    • 当h=2时,C中大于2的元素是5,5,5,7,8,8,9,共7个,此时lenOOC=7,p=7/10=0.7,ARL=1/0.7≈1.428571,完美匹配给定的ARL值。
    • 如果h在(2,5)之间(比如h=3、h=4),大于h的元素还是这7个,计算出的ARL完全一致;只有当h≥5时,大于h的元素会减少到4个,ARL就会回到2.5。

补充:如果是lenOOC>7的情况

如果你的推导里lenOOC>7是要求至少8个元素大于h,那我们需要找h使得C中≥8个元素大于它:

  • 排序后前2个元素是1,1,第3个是2
  • h需要满足:1 ≤ h < 2
    • 此时大于h的元素是2,5,5,5,7,8,8,9,共8个,p=8/10=0.8,ARL=1/0.8=1.25,这时候ARL就比目标值更小了。

总结

对应ARL=1.428571的h值是区间[2,5)内的任意数值,如果取整数解的话,h=2是最直观的选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:13:52