马氏距离多变量异常检测器|工业AI分析工具
这个工具解决什么问题
> 参数各自都没越界、但「关系」不正常的片子照样能揪出来——这是单参数控制图抓不到的异常。
输入数据格式
数据文件 process_params_matrix.csv,列顺序为:片号、温度、压力、流量、功率、人工标注。
示例首行:1,249.95,2.502,120.8,805.8,正常
示例输出(真实运行结果节选)
马氏距离多变量异常检测报告 参数:温度 / 压力 / 流量 / 功率(4 维),样本:200 片,正常基线样本:197 片 ======================================================================== 一、正常基线(由正常样本估计) ------------------------------------------------------------------------ 温度 均值 250.064 标准差 1.152 压力 均值 2.501 标准差 0.038 流量 均值 119.953 标准差 1.805 功率 均值 799.789 标准差 8.190 判定阈值:卡方 99.9% 临界值 χ²=18.72 → 距离阈值 MD=4.33 说明:马氏距离考虑参数之间的相关性,单参数都没越界、但「关系」不正常的样本仍能被揪出。 二、距离排行(前 10) ------------------------------------------------------------------------ 片号 马氏距离 判定 主导贡献参数(占 MD² 比例) 199 33.39 ⚠ 异常 流量(+92%)、功率(+8%) 198 10.09 ⚠ 异常 温度(+60%)、压力(+33%) 200 8.72 ⚠ 异常 温度(+108%)、压力(-9%) 152 2.68 正常 功率(+113%)、流量(-52%) 51 2.58 正常 功率(+50%)、温度(+40%) 186 2.53 正常 流量(+55%)、温度(+39%) 29 2.52 正常 功率(+122%)、流量(-44%) 36 2.48 正常 流量(+147%)、功率(-60%) 85 2.47 正常 流量(+131%)、功率(-56%) 119 2.46
适用场景
· 工艺整合、设备工程师、APC 与多变量监控 · 换配方/换设备后要重估基线,否则旧基线会把正常工况判成异常
怎么用
python mahalanobis_detector.py
首次运行会自动生成示例数据并输出一份完整报告; 把示例 CSV 换成你自己的数据(保持列名一致)后重新运行即可。
输入数据
process_params_matrix.csv:片号 / 温度 / 压力 / 流量 / 功率 / 人工标注(脚本自带示例)
输出内容
· 正常基线的均值与标准差(由正常样本估计) · 每片的马氏距离、卡方判定阈值与超限标记 · 超限样本的主导贡献参数(占 MD² 比例),指出是哪几个参数把距离顶出去
依赖
无。仅使用 Python 标准库(csv / math / os / datetime 等), 不需要 pip 安装任何包,Windows / Linux / macOS 均可运行。
实用提示
· 报告里的判读阈值都写在脚本顶部常量区,可按自己厂内标准调整。 · 建议按周/按月滚动运行,看趋势比看单次结果更有意义。 · 换数据时保持 CSV 列名不变,脚本无需改动即可复用。
可调参数与计算口径
脚本顶部集中了主要阈值与常量:CSV_NAME="process_params_matrix.csv"、REPORT_NAME="mahalanobis_report.txt"、PARAMS=["温度", "压力", "流量", "功率"]。改完直接重跑即可,不必改动计算逻辑。
会生成哪些文件
运行后除控制台输出外,还会生成:process_params_matrix.csv、mahalanobis_report.txt。
脚本里的主要处理步骤
gen_demo():197 片正常 + 3 片异常;参数间带相关性,异常是「关系失衡」而非单点越界。chi2_crit():卡方分布临界值(Wilson-Hilferty 近似,工程精度足够)。
以上步骤在脚本中是分开的函数,可以单独调用或按需替换其中一段,不必整体重写。
工具中出现的字段与提示
- 197 片正常 + 3 片异常;参数间带相关性,异常是「关系失衡」而非单点越界。
- 疑似异常
- 人工标注
- 卡方分布临界值(Wilson-Hilferty 近似,工程精度足够)。
- 马氏距离多变量异常检测报告
- 参数:%s(%d 维),样本:%d 片,正常基线样本:%d 片
- 一、正常基线(由正常样本估计)
- %-6s 均值 %10.3f 标准差 %8.3f
- 判定阈值:卡方 %.1f%% 临界值 χ²=%.2f → 距离阈值 MD=%.2f
- 说明:马氏距离考虑参数之间的相关性,单参数都没越界、但「关系」不正常的样本仍能被揪出。
- 二、距离排行(前 10)
- 马氏距离
- 主导贡献参数(占 MD² 比例)
- ⚠ 异常
- 也可能为负值——负值表示该参数的取值把整体距离往回拉。
- 三、检出结果
- 正常样本最大距离 MD=%.2f(阈值 %.2f)——基线未误报。
- 检出异常 %d 片:
其余字段以界面与示例报告为准。
下载与文件清单
压缩包内包含:主程序脚本、示例数据文件、示例输出报告、中文说明文档,以及同主题 AI 提示词一套。解压后按说明运行即可,示例数据可直接试跑。
主程序文件:mahalanobis_detector.py。
本站工具免费下载,无需注册。工具为 Python 脚本,Python 3.8 及以上环境可直接运行,核心功能尽量不依赖第三方库。
常见问题
输入数据要准备成什么样?
按 示例首行中的列顺序准备即可,共 6 列:片号、温度、压力、流量、功率、人工标注。列为空或格式不符时结果会失真,建议先用示例数据试跑一遍。
阈值可以改成我们自己的标准吗?
可以,脚本顶部已把主要阈值与常量集中声明,按自己产线的标准修改后重跑即可,不需要改计算逻辑。
附赠的提示词怎么用?
把提示词与自己的数据一起交给大模型,可以让它按同一套口径帮你改写分析流程或扩展报告字段。
示例数据能直接跑吗?
可以。示例数据与主程序在同一压缩包内,解压后直接运行即可看到完整输出,确认无误再替换成自己的台账。
同分类的其它工具
分类归属:工业AI与智能分析工具包;完整清单在 工具资源包下载页。





