【Codex实战篇】异常检测

22 0
User_Lee 发表于 2026-7-14 17:47:33 | 查看全部 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

在了解到本次技术论坛面向计算机相关领域开展稿件征集后,结合自身在数据分析、人工智能算法以及工程实践方面的学习与探索,整理编写本文,希望通过技术分享的形式,与大家交流异常检测领域相关算法研究与应用实践分享大家学习,欢迎大家交流!!!
注:本次分享内容全部基于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),提供完整的人机交互体验:
数据管理

  • 数据上传:支持导入 XLSX 格式的 Excel 数据文件
  • 数据预览:表格形式展示原始数据,支持滚动浏览
  • 数据可视化:自动生成数据分布散点图、直方图等统计图表
  • 列选择:支持选择单列或多列数值列进行分析

异常检测

  • 算法选择:9 种算法一键切换,支持多算法并行选择
  • 参数调整:每种算法提供可调节的核心参数
  • 多算法对比:可同时选择多个算法运行,在结果标签页中对比检测结果

结果展示与导出

  • 检测结果:以表格形式展示异常/正常标签及异常得分
  • 可视化展示:2D 散点图展示异常点分布(红色标记为异常)
  • 结果导出:支持将检测结果导出为 XLSX 格式文件
  • 性能统计:显示各算法检测耗时、异常比例等统计信息



测试数据说明

工程附带 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。

回复 转播

使用道具 举报

回复

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

学研领航向全体高校师生打造的一站式综合交流与资源服务平台,集知识学习、经验分享、资源下载、互动问答、职场成长、兼职实践于一体,覆盖校园生活、专业学习、求职就业、兴趣发展等全场景需求。

快捷导航

小黑屋
Copyright © 2026 学研领航 版权所有 陕ICP备2025077879号-1
关灯 在本版发帖 返回顶部
快速回复 返回顶部 返回列表