← 返回题目列表

One-Class SVM 如何用于异常检测?

中等 第 18 / 25 题 更新于 2026/09/20
支持向量机机器学习面试题模型训练
学习 AI 实战项目

简化版

One-Class SVM 用正常数据在核空间中学习包含大多数样本的边界,把边界外点判异常。ν 控制训练异常比例上界和支持向量比例下界,gamma 控制边界局部性;它依赖正常训练集纯度与缩放。

详细版

  • 训练通常只有正常或以正常为主的数据。

  • decision score 正负对应边界内外,但方向需查实现。

  • 高 gamma 会形成碎片化正常小岛。

  • ν 不是线上异常率预测。

  • 阈值可按验证异常成本再调整。

完整版教学

一、它学习正常支持区域而非两类分界

在特征空间中,One-Class SVM 寻找把数据与原点分开的最大间隔超平面(常见表述),RBF 下对应输入空间非线性包络。

若训练集混入大量异常,边界会把异常也学成正常;无监督不代表无需干净基线。

实际系统还需要用少量真实异常或有代表性的注入异常选择阈值,并持续监控正常分布漂移;模型给出的只是相对训练支持区域的异常程度,不等同于业务事故概率。

二、底层机制与公式

min 0.5||w||²+(1/(nu*n))*sum xi_i-rho
w·phi(x_i)>=rho-xi_i

三、带数字的推演

n=1000、ν=0.05 提供训练异常比例不超过约 5% 的优化直觉,并要求至少约 5% 支持向量;线上真实异常率仍可能完全不同。

四、方案对比

方案/对象核心特点代价或边界
One-Class SVM非线性边界、适合中小数据核扩展差
Isolation Forest大规模与高维较方便基于随机切分
Autoencoder复杂表示训练/阈值更难

五、执行流程

只用历史可得特征 -> scaler fit 正常训练集 -> 搜索 ν/gamma
-> 有标签验证或注入异常 -> 选阈值 -> 监控 score/告警率

六、边界条件与工程代价

维度高时距离集中会让 RBF 边界失效,可先特征选择/PCA,但这些步骤也只在训练集拟合。

合成异常若过于简单会虚高效果,验证应尽量覆盖真实异常类型与困难正常样本。

记忆钩子:One-Class SVM 是“用正常样本画包络”:ν 管允许越界比例,gamma 管包络细碎程度,验证阈值才连接业务异常。

七、常见误区与追问

  • 误区:ν 就是线上期望异常率。 它是训练优化约束,不决定未来基率。

  • 追问:为何训练集要干净? 污染异常会被包进正常区域。

  • 误区:score 小就一定是业务异常。 只表示相对训练支持区域异常。

  • 追问:gamma 太大怎样? 正常区域碎片化并过拟合。

  • 追问:如何选阈值? 用真实或代表性验证异常按成本选择。

八、加强记忆

One-Class SVM 是“用正常样本画包络”:ν 管允许越界比例,gamma 管包络细碎程度,验证阈值才连接业务异常。

记忆时把训练数据纯度也放进答案:污染会扩大正常包络,高维距离集中会削弱 RBF,因此缩放、特征选择和漂移监控缺一不可。