【机器学习300问】40、如何评估一个异常检测系统?

上一篇文章是我学习异常检测系统如何实现的学习笔记,这篇文章接着上文记录几个评价异常检测系统的关键步骤和指标。如果友友们没有看过之前的文章可以点击下面的链接去看看哦!

【机器学习300问】39、高斯分布模型如何实现异常检测?http://t.csdnimg.cn/sPwBP

〇、假设异常检测的任务要求

假设我们负责管理电机设备网络共有10000台电机是正常的,各项监测指标(如温度、转速、电流、电压等)均在正常范围内波动。有20台电机是异常的,这些异常包括但不限于电机温度突然飙升、电流波动异常增大、转速不稳定等情况。

现在我们的目标就是通过有效的数据分析和机器学习算法,利用那9980台正常电机的数据来构建模型,识别出电机的正常行为模式。然后,我们将模型应用到整个电机网络中,以此来检测那20台异常电机以及其他未来可能出现类似异常的电机。

一、具体评价步骤

(1)根据正常数据和异常数据来分配数据集

  • 训练集 :6000台正常电机的数据作为训练集,用来训练模型学习正常数据的分布特征,估计特征的平均值和方差构建异常检测模型
  • 交叉验证集:可以将一部分已知正常数据与少量已知异常数据混合,例如2000台正常电机和10台异常电机的数据作为交叉检验集,用来调整阈值和优化模型参数,确保模型在含有异常情况下的表现。
  • 测试集:剩余的正常数据和尽可能多的真实异常数据构成测试集,例如2000台正常电机和10台异常电机的数据作为测试集,用于评估模型的最终性能。

(2)构建异常检测模型

首先利用6000台正常电机的数据构建训练集,通过分析这些数据来了解正常电机运行时的各项指标(如温度、振动、电流等)的分布特征,基于这些数据估计出特征的平均值和方差,以此为基础建立异常检测模型,该模型能够识别出与正常状态不符的电机行为。

接下来,在模型训练完成后,为了确保模型在面对既有正常又有异常情况时依然能准确识别异常,我们采用了一个混合数据集作为交叉检验集。这个交叉检验集包含了2000台正常电机的数据和仅有的10台异常电机的数据。通过在该集合上调整模型阈值和优化参数,可以评估模型在包含异常样本条件下的性能,确保模型既不过于敏感导致误报过多,也不过于迟钝导致遗漏真正的异常。

(3)选择合适的评估指标进行评估

最后,为了全面且客观地评价模型在真实环境下的性能,保留了一部分正常电机数据(2000台)以及尽可能多的真实异常电机数据(同样假设为10台),组成测试集。通过测试集上的表现,我们可以得到模型在未知数据上的精确度、召回率以及F1分数等评估指标,从而对模型进行全面验收和最终性能评估。

二、 如何确定正常与异常的阈值?

即使在无标签数据集上,通过调整阈值并观察模型性能指标的变化来确定阈值,指标可以是精确率、召回率或F1分数,之前我在:

【机器学习300问】31、不平衡数据集如何进行机器学习?http://t.csdnimg.cn/Aciz8 中介绍过,面对这种不平衡数据集(异常检测就是很典型的不平衡数据集任务)可以精确率、召回率或F1分数来衡量机器学习模型的性能。通过评价模型在某个阈值下的误识别(误报)和漏识别(漏报)情况来调整阈值。

例如:画出F1分数与阈值的函数曲线图,通过曲线的最高点来确定最佳阈值。

相关推荐
A8ai_napiai6 分钟前
GPT-5.6三档定档7月7日+GEO市场爆发+Anthropic最严封禁:模型商的价格战与AI搜索的新战场
人工智能·gpt
IT_陈寒42 分钟前
React的setState竟然不是立刻生效的,害我调试半天
前端·人工智能·后端
腾讯云大数据1 小时前
腾讯云大数据计算智能:从结构化 SQL 到多模态 AI Workload 的融合范式
大数据·人工智能·腾讯云
AI职业加油站1 小时前
大数据采集工程师:技术栈全景图与实战路径
大数据·人工智能·数据分析
code 旭1 小时前
不会编程也能做AI 量化交易工具:基于 MCP 协议的自然语言交易思路不会编程也能做AI 量化交易工具:基于 MCP 协议的自然语言交易思路
人工智能·ai·量化交易·mcp
AI服务老曹2 小时前
视觉算法模型管理完整流程:多版本上线、灰度发布与回滚的落地实践
人工智能·docker·音视频
机器之心2 小时前
Anthropic发现Claude「类意识工作台」!神秘J空间藏着没说出口的想法
人工智能·openai
AI实践录2 小时前
大模型架构:理解大模型预测输出文本的底层逻辑
人工智能
Lifangyun_WD2 小时前
昇腾910B vs NVIDIA A100/H100:国产GPU算力租赁选型与迁移实践
人工智能·gpu算力·ai算力·算力租赁·gpu云主机
卡卡罗特AI2 小时前
GPT5.6 今晚全量开发?Codex上线史上最强Coding模型!
人工智能·ai编程