3.2 基于机器学习的方法


3.2 基于机器学习的方法

本节摘要:机器学习异常检测方法不再预设分布,而是让模型从数据中学习"正常模式",再用学到的模式判断新数据是否偏离。本节按监督(SVM、决策树、随机森林)、无监督(K-Means、DBSCAN、自编码器)、半监督(GAN)、集成(Isolation Forest)四种学习范式展开,讲清每种范式的数据需求与代价,并给出"按标签可得性选范式"的方法论。

读前必看

阅读完本节,你应当能够:

  1. 说清监督、无监督、半监督三种范式在"数据需求"上的本质差异。
  2. 解释为什么异常检测里监督学习常常"缺标签",并列出后果。
  3. 说出 K-Means、DBSCAN、自编码器三种无监督方法的异常判据。
  4. 理解 Isolation Forest 为什么能在高维数据上高效。
  5. 按"标签量"与"数据维度"为场景选出机器学习范式。

一、问题与直觉

统计方法有个天花板:它的"规律"要么靠分布假设,要么靠手工定义。但真实时序数据的规律往往没法用几个公式写出来——一台设备的正常振动模式,受转速、负载、环境温度、磨损程度的非线性组合影响,你没法用"均值±3σ"描述清楚。

机器学习方法的出现,就是为了解决"规律说不清、但能学"的问题。它不再问"数据服从什么分布",而是问:"能不能让模型自己从一堆历史数据里学到,正常的数据长什么样?"

但换来的代价同样直接:机器学习需要数据,而"异常检测的数据"往往很别扭。 正常样本堆积如山,异常样本凤毛麟角。这就引出了本章最核心的分岔路——你有多少带标签的异常数据?

  • 异常标签又全又多 → 监督学习(把它当分类问题)。
  • 完全没有标签 → 无监督学习(靠数据内在结构)。
  • 只有一点点标签/只有正常数据 → 半监督学习(只学正常长什么样)。

这一节的目标,就是让你在三条路之间找准自己的入口。 选错了路,后面全白干。

二、核心原理

2.1 监督学习:异常检测当分类做

监督学习把每个点标记为"正常/异常",训练分类器。代表性算法:SVM(学一个分隔超平面)、决策树/随机森林(学判别规则)、神经网络(学非线性边界)。

优点很直观:标签准确且充足时,精度可以很高,能捕捉复杂模式。

缺点更致命:需要大量标注数据,而异常标签恰恰是最难拿的(第 7 章会系统讲标签获取之痛)。此外,模型学的是"训练集里的异常",遇到没见过的异常类型,泛化能力堪忧——而这在异常检测里几乎是必然发生的。

2.2 无监督学习:让数据自己说话

无监督不需要标签,直接学数据的内在结构,异常 = 与正常结构显著不同。

聚类思路:K-Means 把点分成 K 簇,离所属簇中心远的点、或属于极小簇的点判为异常;DBSCAN 按密度聚类,密度稀疏的"噪声点"直接就是异常。

重构思路:自编码器把输入压缩到低维再还原,学的是"正常数据的压缩表示";异常点破坏了这种可压缩性,重构误差大。这个思路是第 6 章深度异常检测的地基,这里先记住概念。

优点:不用标签,适用面广,能发现"没见过"的异常。缺点:精度通常不如监督,且要仔细调算法与参数——无监督的"自由"同时意味着"没人告诉它对错"。

2.3 半监督学习:只学"正常"

半监督用只有正常样本(或极少异常样本)的数据训练,学"正常"的边界,偏离边界即异常。这最贴合异常检测的现实——我们往往能拿到海量正常数据,但异常样本稀缺。

One-Class SVM:学一个把大部分正常数据包起来的超球/超平面,落在外面的点判异常。

Isolation Forest:用随机分割构造隔离树。异常点"容易被孤立"——少数几次分割就能把它单独切出来,所以路径短。它的树结构天然适合高维数据,速度快,是工程里使用率最高的无监督/半监督检测器之一。

半监督是"标签不足"场景的黄金折中:只学正常,不需要异常样本,还能捕捉复杂模式。

2.4 集成学习:多模型互补

集成把多个弱模型组合成强模型。在异常检测里,不同模型看到的是同一数据的不同侧面——树模型看分割难度、距离模型看离群程度、密度模型看局部稀疏,组合起来能补彼此的盲区。第 5 章第 4 节会系统讲 Bagging/Boosting/Stacking,这里先记住价值:鲁棒、抗噪声、能捕捉复杂模式。

2.5 范式对比总表

2.5 范式对比总表

范式 标签需求 核心思路 代表算法 优点 缺点
监督 大量完整标签 分类 SVM、随机森林 精度高、模式复杂 标签难拿、未知异常泛化差
无监督 学内在结构 K-Means、DBSCAN、自编码器 无需标签、能发现新异常 精度有限、参数敏感
半监督 只有正常/极少异常 学正常边界 One-Class SVM、Isolation Forest 贴合现实、折中 参数敏感
集成 视基模型而定 组合互补 随机森林、Boosting、Stacking 鲁棒、抗噪 计算贵、可解释差

三、工程实践要点

3.1 选范式就回答一个问题:标签几何

  • 标签全而准 → 监督,把它当分类问题认真做。
  • 只有正常数据(最常见)→ 半监督,Isolation Forest 起步,性价比最高。
  • 完全没标签 → 无监督,DBSCAN/自编码器,但要做好"结果没人背书"的心理准备。
  • 高维数据(几十维特征)→ 优先 Isolation Forest,树结构天然抗高维。
  • 复杂非线性模式 → 神经网络(下一节),或用集成补。

3.2 现实经验:先用无监督/半监督打底

大量生产环境的异常检测是从无监督/半监督起步的——不是因为它最好,而是因为标签获取周期太长(第 7 章会说),而业务等不起。先用 Isolation Forest 跑起来收集报警,人工确认后的确认/排除结果沉淀成标签,慢慢向监督学习演进。先无监督跑量,再监督提精度,是异常检测落地的标准节奏。

⚠️ 常见坑:以为无监督就是"零成本"。 无监督省的是标注费,花的是调参和校验费——K-Means 的 K、DBSCAN 的 eps/minPts、Isolation Forest 的污染率,每个参数都会改变"什么算异常",没人背书的检测结果在业务上寸步难行。

💡 关键直觉:异常检测里"样本不平衡"不是要克服的 bug,而是常态。 1% 的异常率意味着哪怕把所有点判正常,准确率也有 99%——但检测系统不能这么干。所以评估要盯着"异常那一类"的表现(召回、精确),而不是整体准确率,这个话题第 7 章会系统展开。

3.3 和特征工程的配合

机器学习方法(除神经网络)都依赖第 2 章的特征工程:你喂进去的每一列特征,都在教模型"从哪个角度判断正常"。特征质量直接决定机器学习的上限。这也是"深度学习"登场的原因之一——当手工特征撑不住复杂模式时,让模型自己学特征。

3.4 用一个小场景串起三条路线

假设你负责一家云厂商的存储集群监控,要判断"哪些节点行为异常"。三种数据条件对应三种选择:

  • 有历史故障标签(过去三年每次故障都记录在案)→ 监督学习。把"故障前 30 分钟的多维指标"当特征,标签是"故障/正常",训一个随机森林分类器。前提是你得确认"故障模式在更新"——如果存储故障的类型这几年变了,旧标签的可信度就要打折。
  • 没有任何标签 → 无监督学习。把所有节点某一小时的指标聚成簇,看哪些节点离簇中心远。优势是能发现"从没见过的异常",劣势是"没人告诉它对错"。
  • 只有正常节点数据 → 半监督学习。用正常节点的数据训练 Isolation Forest,偏离正常隔离模式的就是异常。这是存储监控最常见的起步方式——因为"正常"数据海量,而"故障"样本要等故障发生才积累。

三条路线的选择不是学术口味,而是数据条件的函数:你手头有什么,就走什么路。别羡慕监督学习的精度——如果标签条件不具备,监督学习的精度再高也与你无关。

3.5 机器学习方法的常见坑

坑一:特征泄漏。 把"未来"的信息(如整段序列的全局均值)编进特征,评估虚高、上线翻车——时序特征必须只用"当前时刻及之前"的信息。坑二:忽略类别不平衡。 异常率 1% 时模型容易"学成只会判正常",要用类别权重或重采样。坑三:模型漂移不监控。 数据分布随时间变,模型越跑越瞎,要定期重训。这三条坑几乎每个生产项目都会踩一遍,提前知道能省大量返工时间。

实战问答

问:无监督检测出来的"异常"到底能不能信?

不能直接信。无监督的"异常"里混着真异常、正常波动的新常态、数据质量问题三类。正确用法是"机器出候选、人工来背书"——算法给连续分数,业务/专家定阈值,报警后人工复核,复核结果再回流改进系统。

问:Isolation Forest 为什么在工程里这么火?

因为它几乎为异常检测量身定做:不需要标签、线性复杂度、天然抗高维、调参少(主要就 contamination)、还能给连续异常分数。"够用 + 快 + 不挑数据"的组合,让它成为工业界事实上的默认检测器。

问:监督学习在异常检测里是不是"过时"了?

恰恰相反,它是"精度上限最高"的路线——条件满足时(标签充足、异常类型稳定),它的检测精度是其他路线追不上的。它的问题是"门槛高"而不是"能力弱",所以现实里往往是"半监督先跑量,标签攒够再监督"。

问:三种范式的模型能不能组合?

能,而且常常该组合。监督/无监督/半监督各自有盲区,用第 5.4 节的"分数合成"把它们组合起来(各给异常分数、标准化后加权),能显著提升整体鲁棒性。组合的前提是盲区互补,不是模型堆砌。

本节速览

  • 三条路线看标签:监督要标签、无监督不要标签、半监督只要正常样本。
  • 监督把异常检测当分类,精度高但标签难拿、未知异常泛化差。
  • 无监督(K-Means、DBSCAN、自编码器)学数据内在结构,能发现新异常但没人背书。
  • 半监督(One-Class SVM、Isolation Forest)只学正常边界,最贴合"正常多、异常少"的现实。
  • 集成多模型互补,鲁棒抗噪但计算贵、可解释差。
  • 落地节奏:先无监督/半监督跑量,再收集标签向监督演进;特征工程质量决定机器学习上限。

下一节把镜头拉到最复杂的一端——深度学习。当数据量大、模式非线性、手工特征不够用时,自动特征提取的深度模型开始登场,但"数据量大"本身也是它最硬的门槛。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U