一、什么是异常检测?

星博讯 AI基础认知 1

异常检测 的目标是识别与大多数数据显著不同的数据点、事件或观察结果,这些“异常”也被称为:

一、什么是异常检测?-第1张图片-星博讯网络科技知识-SEO优化技巧|AI知识科普|互联网行业干货大全

  • 离群点
  • 异常值
  • 新奇点

核心思想:基于“正常”数据的行为模式,找出那些不符合该模式的实例。

关键特点

  • 非平衡性:异常数据通常只占极小的比例(如 0.1% - 5%),正常数据占绝大多数。
  • 定义模糊:“异常”的定义高度依赖于具体场景和领域知识,在一个场景中是异常,在另一个场景中可能是正常。
  • 无标签稀缺:在真实场景中,我们通常有大量“正常”数据,但很少有明确标记的“异常”数据。

异常的类型

  1. 点异常:单个数据实例相对于整个数据集是异常的。
    • 示例:信用卡交易中一笔金额巨大的消费。
  2. 上下文异常:在特定上下文或条件下数据实例是异常的,但在其他上下文中正常。
    • 示例:夏天下午气温30度是正常的,但冬天半夜气温30度就是异常的(上下文是时间和季节)。
  3. 集体异常:一组相关的数据实例作为一个整体是异常的,尽管其中每个单独点可能看起来正常。
    • 示例:心跳信号中一段持续的平直线(心脏停搏),其中每一个单独的“平直”值在短时间内看可能不算离群,但连续出现就是严重异常。

主流异常检测方法

异常检测方法主要分为以下几大类,下图展示了其核心分类与关系:

flowchart TD
    A[异常检测核心方法] --> B[传统方法]
    A --> C[机器学习方法]
    B --> B1[基于统计]
    B --> B2[基于邻近度]
    B --> B3[基于密度]
    B --> B4[基于聚类]
    B --> B5[基于隔离]
    C --> C1[监督学习<br>(需完整标签)]
    C --> C2[半监督学习<br>(仅需正常数据)]
    C --> C3[无监督学习<br>(无需标签)]
    C1 --> C1a[分类模型<br>如LR, SVM, RF]
    C2 --> C2a[一类分类/自编码器<br>如OC-SVM, AE]
    C3 --> C3a[深度学习方法<br>如GAN, LSTM-AE]

传统方法

基于统计的方法

  • 原理:假设正常数据服从一个特定的概率分布(如高斯分布),计算数据点属于该分布的概率,概率极低的点被视为异常。
  • 优点:理论基础坚实,计算高效。
  • 缺点:需要先验分布假设,对高维、复杂分布数据效果差。
  • 代表原则(标准差)、Grubbs检验、箱线图

基于邻近度的方法

  • 原理:计算数据点与其最近邻之间的距离,远离其邻居的点被视为异常。
  • 优点:直观,无需分布假设。
  • 缺点:计算复杂度高(O(N²)),对参数(如k值)敏感,在高维空间中“距离”概念失效。
  • 代表K-最近邻

基于密度的方法

  • 原理:比较数据点局部区域的密度,处于低密度区域的点是异常点。
  • 优点:能检测出局部异常,比单纯基于距离的方法更鲁棒。
  • 缺点:同样面临高维问题和参数选择问题。
  • 代表局部离群因子

基于聚类的方法

  • 原理:先对数据进行聚类,不属于任何簇、或属于非常小的簇、或距离其所属簇中心很远的点,被认为是异常。
  • 优点:无需监督标签,可同时进行数据划分和异常检测。
  • 缺点:检测效果严重依赖于聚类算法本身的质量。
  • 代表DBSCAN(将稀疏区域点视为异常)、K-Means

基于隔离的方法

  • 原理:异常点“少且不同”,因此更容易被随机划分快速隔离出来。
  • 优点:无需距离或密度度量,线性时间复杂度,适合高维大数据。
  • 代表孤立森林

机器学习方法

监督学习方法

  • 场景:拥有完整标记的训练数据。
  • 方法:将问题视为一个二分类(正常 vs 异常)问题。
  • 挑战:异常样本极少,导致严重的类别不平衡问题,需要采用过采样、欠采样、代价敏感学习等技术。
  • 模型:逻辑回归、支持向量机、随机森林、XGBoost等。

半监督学习方法

  • 场景:仅使用正常数据进行训练。
  • 原理:学习正常数据的边界或特征表示,将偏离该模型的数据判为异常。
  • 优点:最贴合实际场景(正常数据易得,异常未知)。
  • 代表
    • 单类支持向量机:在特征空间中寻找一个包含所有正常数据的最小超球体。
    • 自编码器:通过压缩再重建来学习正常数据的低维特征,训练后,用正常数据重建误差小,异常数据重建误差大。

无监督学习方法

  • 场景:数据完全没有标签,假设正常数据占大多数。
  • 方法:直接使用上述传统方法,或采用更强大的深度学习方法。
  • 代表
    • 基于深度自编码器的变体:如去噪自编码器、变分自编码器。
    • 生成对抗网络:训练一个生成器和一个判别器,好的生成器能模拟正常数据分布,对于异常数据,判别器会给出低分数或重建误差会很高。
    • 时序数据异常检测:使用LSTMTCN等网络建模正常序列的时序模式,预测误差大的点即为异常。

评估指标

由于数据高度不平衡,准确率不是一个好指标。

常用指标

  • 精确率:在所有被预测为异常的点中,真正是异常的比例。
  • 召回率:在所有真正的异常点中,被成功检测出来的比例。
  • F1-Score:精确率和召回率的调和平均数,是综合性的核心指标。
  • ROC曲线与AUC值:通过变化阈值,描绘真阳率假阳率的关系曲线下面积,对类别不平衡不敏感。
  • 精确率-召回率曲线:在正例(异常)很少时,比ROC曲线更具信息性。

典型应用场景

  1. 金融风控:信用卡欺诈检测、洗钱交易识别、保险骗保。
  2. 网络安全:入侵检测、恶意软件行为识别、DDoS攻击流量识别。
  3. 工业物联网与运维:设备故障预测、生产线产品缺陷检测、服务器性能指标(CPU、流量)异常监控。
  4. 医疗健康:疾病筛查(如心电图异常)、医疗影像中的病灶识别。
  5. 公共安全与城市管理:视频监控中的异常行为检测、交通流量异常拥堵识别。

挑战与未来方向

  • 概念漂移:正常的模式会随时间变化,模型需要在线更新。
  • 可解释性:“为什么这个点被标记为异常?”在关键领域(如医疗、金融)至关重要。
  • 标签稀缺与噪声:获取干净、准确的异常标签非常困难且昂贵。
  • 高维与复杂数据:如图像、视频、图数据中的异常检测。
  • 在线与实时检测:要求算法低延迟、高效率。

异常检测是一个结合了统计学、机器学习和领域知识的综合性领域,选择哪种方法取决于数据的性质、是否有标签、对计算效率的要求以及具体的业务场景,从简单的统计方法或孤立森林开始,再尝试基于自编码器GAN的深度学习方法,是一个合理的实践路径。

标签: 异常检测 定义

抱歉,评论功能暂时关闭!

微信咨询Xboxun188
QQ:1320815949
在线时间
10:00 ~ 2:00