核心要点

  • 统计方法:用 z-score 或 IQR(四分位距)定阈值,适合低维、近似正态的数据。

  • 基于划分:孤立森林(Isolation Forest)随机切分,异常点更易被孤立、路径更短。

  • 基于边界/密度:One-Class SVM 学正常样本边界;LOF 用局部密度找离群点。

  • 基于重构:自编码器对正常样本重构误差小,异常样本重构误差大即判异常。

标准回答

问题特点

异常检测大多是无监督或半监督的:正常样本多、异常样本极少且形态多变,难以当成普通分类。选型主要看维度、数据分布和是否有标签。

主流方法

  • 统计方法:z-score(偏离均值多少个标准差)、IQR(超出 1.5 倍四分位距),简单可解释,适合低维。
  • 孤立森林:随机选特征与切分点构树,异常点几次切分就被孤立,平均路径越短越异常,适合高维、大数据。
  • One-Class SVM:只用正常样本学习一个紧致边界,落在边界外即异常。
  • 密度法 LOF:比较一个点与邻居的局部密度,密度明显低则为离群点。
  • 自编码器:用正常数据训练,靠重构误差判异常,适合图像、高维复杂数据。

实践要点

要先做特征缩放;根据业务可承受的漏报/误报调阈值;有少量标签时用 Precision/Recall、PR-AUC 评估,而非准确率(异常类极不平衡)。

常见误区

⚠️ 常见踩坑

用准确率衡量异常检测——异常占比极低时,全判为正常也能拿到很高准确率却毫无价值;应看精确率、召回率与 PR-AUC。

追问

追问 1孤立森林为什么对异常更敏感?

它随机选特征和切分点递归划分数据,异常点由于取值稀疏、远离主体,往往只需很少几次切分就能被单独隔离,因而在树中路径更短。对大量树取平均路径长度,路径越短异常分数越高。它无需假设数据分布,且在高维大数据上效率较好。

追问 2自编码器做异常检测的原理和局限?

用正常样本训练自编码器压缩再重构,模型只学会重建正常模式;遇到异常样本重构误差显著增大,以此阈值判异常。局限在于:若训练集混入异常会污染模型;阈值难定;模型容量过大可能把异常也重构得很好,反而漏检。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。