异常检测阈值自动整定器|工业AI分析工具
这个工具解决什么问题
模型输出的可信区间,通常比点估计更有决策价值。
> 告警线设多少才合适?四种常见算法横向比,用漏报/误报代价算出该用哪个阈值。
输入数据格式
数据文件 threshold_samples.csv,列顺序为:样本号、指标值、真实类别。
示例首行:1,41.084,正常
示例输出(真实运行结果节选)
异常检测阈值自动整定报告 样本 340 个(正常 300 / 异常 40);代价口径:漏报 1 个 = 误报 20 个 ============================================================================ 一、分布概览 ---------------------------------------------------------------------------- 全样本:均值 51.494、标准差 5.620 → 均值+3σ = 68.354 正常样本:均值 50.038、标准差 3.875 → 均值+3σ = 61.663 正常样本四分位:Q1=47.600、Q3=52.589、IQR=4.989 说明:混入异常点后,全样本均值被抬高、标准差被放大,阈值自然被推高——这就是「越算越松」的由来。 二、各阈值方案对比 ---------------------------------------------------------------------------- 方案 阈值 误报率 漏报率 准确率 F1 加权代价 全样本 均值+3σ 68.354 0.0% 90.0% 89.4% 18.2% 720.0 仅正常样本 均值+3σ 61.663 0.3% 42.5% 94.7% 71.9% 341.0 IQR 1.5 倍上界 60.071 1.0% 30.0% 95.6% 78.9% 243.0 仅正常样本 P95 分位 56.435 5.0% 7.5% 94.7% 80.4% 75.0 仅正常样本 P99 分位 58.570 1.0% 20.0% 96.8% 85.3% 163.0 三、推荐阈值 ---------------------------------------------------------------------------- 推荐方案:仅正常样本 P95 分位,阈值 = 56.435 理由:在「漏报 20 倍于误报」的代价口径下加权代价最低(75.0),此时
适用场景
· SPC/监控告警上线、值班报警收敛、异常检测项目 · 评估阈值看好坏要看漏报率与 F1,不要看准确率(会被多数类掩盖)
怎么用
python threshold_tuning.py
首次运行会自动生成示例数据并输出一份完整报告; 把示例 CSV 换成你自己的数据(保持列名一致)后重新运行即可。
输入数据
threshold_samples.csv:样本号 / 指标值 / 真实类别(脚本自带 340 个示例)
输出内容
· 四种阈值方案对比:全样本3σ、仅正常样本3σ、IQR 上界、分位数 · 每个阈值的误报率、漏报率、准确率、F1 与加权代价 · 推荐阈值与理由(含 F1 最优备选),并说明为何「全样本 3σ」会越算越松
依赖
无。仅使用 Python 标准库(csv / math / os / datetime 等), 不需要 pip 安装任何包,Windows / Linux / macOS 均可运行。
实用提示
· 报告里的判读阈值都写在脚本顶部常量区,可按自己厂内标准调整。 · 建议按周/按月滚动运行,看趋势比看单次结果更有意义。 · 换数据时保持 CSV 列名不变,脚本无需改动即可复用。
可调参数与计算口径
脚本顶部集中了主要阈值与常量:CSV_NAME="threshold_samples.csv"、REPORT_NAME="threshold_tuning_report.txt"。改完直接重跑即可,不必改动计算逻辑。
会生成哪些文件
运行后除控制台输出外,还会生成:threshold_samples.csv、threshold_tuning_report.txt。
脚本里的主要处理步骤
gen_demo():正态噪声用 Box-Muller + LCG 确定性生成;正常 N(50,4),异常 N(62,5)。
以上步骤在脚本中是分开的函数,可以单独调用或按需替换其中一段,不必整体重写。
工具中出现的字段与提示
- 真实类别
- 全样本 均值+3σ
- 仅正常样本 均值+3σ
- IQR 1.5 倍上界
- 仅正常样本 P95 分位
- 仅正常样本 P99 分位
- 异常检测阈值自动整定报告
- 一、分布概览
- 全样本:均值 %.3f、标准差 %.3f → 均值+3σ = %.3f
- 正常样本:均值 %.3f、标准差 %.3f → 均值+3σ = %.3f
- 正常样本四分位:Q1=%.3f、Q3=%.3f、IQR=%.3f
- 说明:混入异常点后,全样本均值被抬高、标准差被放大,阈值自然被推高——
- 这就是「越算越松」的由来。
- 二、各阈值方案对比
- 加权代价
- 三、推荐阈值
- 推荐方案:**%s**,阈值 = %.3f
- 理由:在「漏报 %.0f 倍于误报」的代价口径下加权代价最低(%.1f),
其余字段以界面与示例报告为准。
下载与文件清单
压缩包内包含:主程序脚本、示例数据文件、示例输出报告、中文说明文档,以及同主题 AI 提示词一套。解压后按说明运行即可,示例数据可直接试跑。
主程序文件:threshold_tuning.py。
本站工具免费下载,无需注册。工具为 Python 脚本,Python 3.8 及以上环境可直接运行,核心功能尽量不依赖第三方库。
常见问题
输入数据要准备成什么样?
按 示例首行中的列顺序准备即可,共 3 列:样本号、指标值、真实类别。列为空或格式不符时结果会失真,建议先用示例数据试跑一遍。
阈值可以改成我们自己的标准吗?
可以,脚本顶部已把主要阈值与常量集中声明,按自己产线的标准修改后重跑即可,不需要改计算逻辑。
附赠的提示词怎么用?
把提示词与自己的数据一起交给大模型,可以让它按同一套口径帮你改写分析流程或扩展报告字段。
示例数据能直接跑吗?
可以。示例数据与主程序在同一压缩包内,解压后直接运行即可看到完整输出,确认无误再替换成自己的台账。
同分类的其它工具
分类归属:工业AI与智能分析工具包;完整清单在 工具资源包下载页。





