马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
在了解到本次技术论坛面向计算机相关领域开展稿件征集后,结合自身在数据分析、人工智能算法以及工程实践方面的学习与探索,整理编写本文,希望通过技术分享的形式,与大家交流异常检测领域相关算法研究与应用实践分享大家学习,欢迎大家交流!!!
注:本次分享内容全部基于Codex生成!!
项目地址:https://github.com/X-Lee/Codex-Anomaly-Detection
在数据科学与人工智能快速发展的背景下,异常检测作为数据挖掘与机器学习领域的重要分支,在工业质量监控、金融欺诈检测、网络安全入侵识别、设备故障预警等场景中发挥着不可替代的作用。不同的业务场景对异常检测算法的需求各不相同——有的需要快速、可解释的统计方法,有的需要处理高维复杂数据的机器学习模型,还有的需要对时间序列数据进行实时监控与分析。
本文档围绕异常检测算法体系展开,从传统统计方法到机器学习方法,实现了包括 Z-Score、IQR、KNN、LOF、K-Means、DBSCAN、Isolation Forest、PCA 重构误差以及马氏距离在内的 9 种主流异常检测算法,并在此基础上封装为一个完整的 Windows 图形界面可执行程序。内容不仅关注算法理论,同时结合实际开发过程,对算法代码实现、实验验证以及工程化部署进行了系统整理。
在本工程开发及实验验证过程中,全部代码开发工作借助 Codex完成,通过人工设计算法流程、调整模型逻辑,并结合 AI 辅助生成、优化和调试代码,有效提高了算法实现与工程开发效率。在此基础上,对相关 Python 程序进行了工程化封装,完成可执行程序(EXE)的构建,使算法验证过程能够脱离开发环境独立运行。
anomaly_tool/
│
├── app/ # 核心应用代码
│ ├── __init__.py # 模块初始化文件
│ ├── algorithms.py # 9种异常检测算法实现
│ ├── gui.py # Tkinter 图形界面
│ └── assets/ # 界面资源文件
│
├── test_data/ # 测试数据集(XLSX 格式)
│ ├── test_2d_clusters.xlsx # 2D 聚类数据集
│ ├── test_4d_multidimensional.xlsx # 4D 多维数据集
│ ├── test_industrial.xlsx # 工业传感器数据集
│ ├── test_timeseries.xlsx # 时间序列数据集
│ └── README.md # 测试数据说明文档
│
├── dist_v3/ # 打包后的可执行程序
│ └── AnomalyDetector.exe # Windows 独立运行程序(约 135 MB)
│
├── main.py # 程序入口
├── run.py # 简便启动脚本
├── build_exe.py # EXE 打包脚本(基于 PyInstaller)
├── requirements.txt # Python 依赖清单
├── 使用手册.md # 详细使用说明文档
├── venv/ # Python 虚拟环境
└── README.md # 本文件
核心算法实现
工程实现了 9 种异常检测算法,覆盖统计学方法、距离类方法、聚类方法、树集成方法及降维方法,具体如下: 统计学方法
算法 原理概要 核心参数
Z-Score(3σ 原则)基于正态分布假设,以偏离均值超过 k 倍标准差判定异常threshold(默认 3.0)
IQR(四分位距法)基于箱线图的四分位距,以超出上下须范围判定异常factor(默认 1.5)距离类方法
算法 原理概要 核心参数
KNN(K 近邻)以样本到 k 个最近邻的平均距离作为异常得分k(默认 5)
LOF(局部异常因子)比较样本局部密度与其邻域密度的比值,比值 > 1 为异常k(默认 20)、contamination(默认 0.05)聚类方法
算法 原理概要 核心参数
K-Means以样本到所属簇中心的距离作为异常得分n_clusters(默认 3)
DBSCAN基于密度连通性聚类,噪声点(标签 -1)即为异常点eps(默认 0.5)、min_samples(默认 5)树集成与降维方法
算法 原理概要 核心参数
Isolation Forest通过随机切分构造孤立树,路径越短异常可能性越高contamination(默认 0.05)
PCA 重构误差以原始数据与低维重构数据之间的均方误差作为异常得分n_components(自动选择)
马氏距离考虑特征相关性的多元距离度量,基于 Elliptic Envelope 实现contamination(默认 0.05)
图形界面功能
基于 Tkinter 构建的图形界面程序(AnomalyDetector.exe),提供完整的人机交互体验: 数据管理
异常检测
结果展示与导出
测试数据说明
工程附带 4 份测试数据集(XLSX 格式),覆盖不同场景: 数据集 数据量 特征数 场景说明
test_2d_clusters.xlsx~300 行2 维二维空间中的正常簇 + 离群点,适合 K-Means、DBSCAN
test_4d_multidimensional.xlsx~500 行4 维多维数据含少量异常,适合 Isolation Forest、PCA
test_industrial.xlsx~600 行6 维模拟工业传感器多变量数据,统计类 + 降维方法均可
test_timeseries.xlsx~500 行3 维(含时间列)带时间戳的多维序列数据详细数据说明参见 test_data/README.md。
|