跳到主内容
快讯直播
AI智模界
AI 词典

One-Class SVM:只见过“正常”,也能认出异常

一句话定义:One-Class SVM(单类支持向量机)是一种只用正常样本训练的异常检测方法:它学出一个包围正常数据的边界,落在边界之外的就判为异常。

它到底在算什么

普通分类器要有正反两类样本才画得出分界线。可现实里“异常”往往没样本:机器很少坏,攒不出足够故障数据;欺诈手法天天变,昨天的骗术代表不了明天。

One-Class SVM 换了个问法:不学“正常 vs 异常”的分界,只学“正常长什么样”。做法是用核函数(kernel)把样本映射到高维空间,在那里找一个离原点尽量远、又把所有正常点留在同一侧的超平面;距离原点越远,留给“正常”的余量越宽裕。另一种等价看法是:找一个尽量小的区域把正常点包住。

打个比方:桌上插着一堆图钉代表正常样本,你用一张有弹性的保鲜膜从上面罩下去,膜被图钉撑出起伏,贴着它们绷紧;膜包住的形状就是模型认定的“正常范围”。核函数决定这张膜能弯到什么程度,新来的点落在膜外就报警。常用的 RBF 核(径向基核)让边界可以是不规则的一圈。参数 ν(nu)控制收紧程度,大致对应“允许多大比例训练点落在边界外”,通常按估计的污染率来设。

和相邻概念的区别

方法需要什么数据边界形态特点
二分类 SVM正常+异常,都有标签核方法,可非线性有异常样本时更直接
One-Class SVM只要正常样本核方法,可非线性小样本可用,对特征尺度敏感
孤立森林 Isolation Forest正常样本(可混少量异常)随机切分高维、大数据更省事,不用算核矩阵
LOF 局部异常因子正常样本,需算近邻密度局部密度适合密度不均的数据
自编码器 Autoencoder大量正常样本重构误差需要数据量与调参

对实际工作的意义

工业质检(缺陷件本来就少)、设备预测性维护、盗刷与欺诈识别、系统日志异常、罕见病变筛查,都是它的主场:手边几乎只有“正常”。

三个常见坑:一是训练集要干净,混进去的异常会被写进边界,模型从此对那类问题视而不见;二是正常要覆盖全,只采了白天工况,夜间的正常波动也会被当成异常;三是输出分数不是概率,它是带符号的到边界距离,告警阈值得自己在验证集上定,或做概率校准。另外 SVM 类方法对特征尺度敏感,先标准化。

工程上建议先跑个便宜基线(均值方差、马氏距离、孤立森林),确认额外复杂度真换来效果提升,再上生产。具体默认参数以所用库的官方文档为准。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。