异常检测 anomaly detection

本文深入探讨了异常检测技术,包括其在欺诈检测、工业质量监测等领域的应用。详细讲解了如何利用高斯分布进行异常检测,以及异常检测系统的一般构建步骤。对比了异常检测与监督学习的区别,介绍了数据预处理方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

异常检测的应用

  • 欺诈检测
  • 工业质量监测
  • 计算机集群监测
  • 等等

定义

给定一些数据集D={x1,x2,…,xm}D=\{x_1,x_2,\dots,x_m\}D={x1,x2,,xm},注意这些样本是unlabel的,构建一个模型p(x)p(x)p(x),对于一个新的样本xtestx_{test}xtest,判断该样本是否异常。当p(xtest)≤ϵp(x_{test})\le \epsilonp(xtest)ϵ时为异常,p(xtest)>ϵp(x_{test})> \epsilonp(xtest)>ϵ为正常的。

高斯分布

高斯分布又称正态分布

如果一个实数服从高斯分布,表示为X∼N(μ,σ)X \sim N(\mu,\sigma)XN(μ,σ),μ\muμ是均值,控制函数的中心,σ\sigmaσ是方差,控制函数的宽度。

公式

N(μ,σ)=12πσ2e−(x−μ)22σ2 N(\mu,\sigma)=\frac{1}{\sqrt{2\pi\sigma^2}} e^{-\frac{(x-\mu)^2}{2\sigma^2}} N(μ,σ)=2πσ21e2σ2(xμ)2

异常检测算法

  • 数据集X={x1,x2,…,xm},x∈RnX=\{x^1,x^2,\dots,x^m\},x\in \mathbb{R}^nX={x1,x2,,xm},xRn

  • 计算每个特征jjj的高斯分布参数μj,σj\mu_j,\sigma_jμj,σj:
    μj=1m∑i=1mxji \mu_j=\frac{1}{m}\sum_{i=1}^{m}x_j^i μj=m1i=1mxji
    σj2=1m∑i=1m(xji−μj)2 \sigma_j^2=\frac{1}{m}\sum_{i=1}^{m}(x_j^i-\mu_j)^2 σj2=m1i=1m(xjiμj)2

  • 对于每一个待测试样本,计算
    p(x)=∏j=1np(xj;μj;σj2)=∏j=1n12πσj2e−(xj−μj)22σj2 p(x)=\prod_{j=1}^{n}p(x_j;\mu_j;\sigma_j^2)=\prod_{j=1}^{n}\frac{1}{\sqrt{2\pi\sigma_j^2}} e^{-\frac{(x_j-\mu_j)^2}{2\sigma_j^2}} p(x)=j=1np(xj;μj;σj2)=j=1n2πσj21e2σj2(xjμj)2

  • 将结果跟阈值ϵ\epsilonϵ比较,p(x)&lt;ϵp(x) &lt; \epsilonp(x)<ϵ则为异常

建立一个异常检测系统的一般步骤

  • 将带有label的数据集划分为训练集、验证集和测试集

    注意将异常数据大致平均分配到每个集合中

    通常情况下,验证集和测试集的数据都应该是互不相同的,即两个集合没有交集
  • 使用训练集训练算法P(x)

    为了避免正负样本分布不均,使用F1-score来评价算法性能
  • 使用验证集来选择阈值ϵ\epsilonϵ

异常检测和监督学习的区别

异常检测
  • 正例(异常样本)通常都非常少,通常是10这个数量级。
  • 反例(正常样本)数量非常多。
  • 异常的种类非常多,无法通过特征一一确定。未来的异常种类不能预见。
监督学习
  • 正例和反例都非常多,并且分布差异不大
  • 可以用特征来确定分类

数据预处理

当特征的样本分布为正态分布时,可以直接将样本fit到算法中

当数据为长尾分布时

使用
x=log(x+c)orx=xc,c&lt;1 x=log(x+c) \\ or\\ x=x^c,\quad c&lt;1 x=log(x+c)orx=xc,c<1
来将数据转换为正态分布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值