15 异常检测

15 异常检测

15.1 问题的动机

根据已有数据集建立概率模型p(x):

x={if p(x) <ϵotherwise x = { 异 常 样 本 if p(x) < ϵ 正 常 样 本 otherwise

15.2 高斯分布

p(x;μ,σ2)=12πσexp((xμ)22σ2) p ( x ; μ , σ 2 ) = 1 2 π σ e x p ( − ( x − μ ) 2 2 σ 2 )

叫做 xN(μ,σ2) x ∼ N ( μ , σ 2 )
其中,
μ=1mi=1mx(i) μ = 1 m ∑ i = 1 m x ( i )

总体的方差( σ σ 是标准差):
σ2=1mi=1m(x(i)μ)2 σ 2 = 1 m ∑ i = 1 m ( x ( i ) − μ ) 2

样本的方差:
σ2=1m1i=1m(x(i)μ)2 σ 2 = 1 m − 1 ∑ i = 1 m ( x ( i ) − μ ) 2

但其实样本的标准差无所谓减不减一,统计量小的时候无意义,统计量大的时候有更能引起误差的地方。

15.3 算法

  1. 选择可以表示异常样本的特征 xj x j
  2. 计算特征 μ1,μ2,...,μn,σ21,σ22,...,σ2n μ 1 , μ 2 , . . . , μ n , σ 1 2 , σ 2 2 , . . . , σ n 2 :
    μj=1mi=1m(x(i)j) μ j = 1 m ∑ i = 1 m ( x j ( i ) )

    σ2j=1mi=1m(x(i)jμj)2 σ j 2 = 1 m ∑ i = 1 m ( x j ( i ) − μ j ) 2
  3. 对于给出的样本 x x ,计算p(x):
    p(x)=j=1np(xj;μj,σ2j)=j=1n12πσjexp((xjμj)22σ2j) p ( x ) = ∏ j = 1 n p ( x j ; μ j , σ j 2 ) = ∏ j = 1 n 1 2 π σ j e x p ( − ( x j − μ j ) 2 2 σ j 2 )

    如果 p(x)<ϵ, p ( x ) < ϵ , x x 为异常点

15.4 开发和评估

现在有一些带标签的数据,有正常数据和异常数据
规定y=0 if normal, y=1 if anomalous y = 1   i f   a n o m a l o u s
训练集: x(1),x(2),...,x(m) x ( 1 ) , x ( 2 ) , . . . , x ( m ) ,即使存在少量异常数据也无所谓。
交叉验证集: (x(1)cv,y(1)cv),...,(x(mcv)cv,y(mcv)cv) ( x c v ( 1 ) , y c v ( 1 ) ) , . . . , ( x c v ( m c v ) , y c v ( m c v ) )
测试集: (x(1)test,y(1)test),...,(x(mtest)test,y(mtest)test) ( x t e s t ( 1 ) , y t e s t ( 1 ) ) , . . . , ( x t e s t ( m t e s t ) , y t e s t ( m t e s t ) )
比如:
10000个正常引擎
20个异常引擎
训练集:6000个正常的引擎
CV:2000个正常引擎,10个异常引擎
Test: 2000个正常引擎,10个异常引擎


    预测正例预测反例
现实正例TPFN
现实反例FPTN

精确率: precision=TPTP+FP p r e c i s i o n = T P T P + F P 预测出的正例中真的为正例的比例
召回率: recall=TPTP+FN r e c a l l = T P T P + F N ,现实所有正例中预测出的正例比例
F1=2PRP+R F 1 = 2 P R P + R


评价:
- 根据训练集数据,计算 μ μ σ2 σ 2 ,构建 p(x) p ( x )
- 根据交叉验证集,用 F1 F 1 、精确率与召回率的比例,尝试不同 ϵ ϵ
- 根据 ϵ ϵ , 针对测试集预测,计算 F1 F 1 、精确率与召回率的比例

15.5 异常检测与监督学习对比

正向样本在异常检测中即为异常点

异常检测监督学习
非常少的正向样本,数据集很偏斜大量的正向样本和负向样本
有很多不同类的异常样本,很难从正向样本中学到异常的样子,未来出现的异常可能和现有异常都不同充足的正向样本,可以通过算法得到正向样本的形态,未来的正向样本和训练集的正向样本很像
异常检测监督学习
欺诈行为检测垃圾邮件分类
生产飞机引擎天气预报
检测数据中心的机器肿瘤分类

15.6 选择特征

调整特征使其服从高斯分布

画出数据或者数据特征的直方图

如果这是 x x 的特征x1的分布图,那么让 x1=log(x1) x 1 = l o g ( x 1 )
或者 x1=log(x1+C) x 1 = l o g ( x 1 + C )
或者 x1=x121 x 1 = x 1 1 2 ,这个指数可以调整。
调整特征使其看起来像高斯分布。

异常检测算法的误差分析

常见问题:
p(x) p ( x ) 将异常数据预测为正常数据,因为其具有高的 p(x) p ( x ) 值。
这时,去分析预测错误的数据,尝试找到原因,可能会发现需要增加新特征。
结合新特征后,异常数据将不再具有高 p(x) p ( x ) 值。
x2是新的特征
x2是新特征。

组合特征产生新特征

我们选择的特征不能特别大,也不能特别小。
反过来说,我们需要在异常时候能过特别大或者特别小的值作为特征。
在计算机中心,选择四个特征:
- x1 x 1 = 内存
- x2 x 2 = 磁盘访问数/秒
- x3 x 3 = CPU负载
- x4 x 4 = 网络通信量
现在有一个新的类型的异常,CPU的负载高,网络通信量低,即,一个特征大,一个特征小,为了突出这种异常,组合上面的异常:
x5= x 5 = CPU C P U 负 载 网 络 通 信 量
那么,如果这种异常发生,特征会极其大。
即,可以通过组合现有特征,产生更明显的特征。

15.7 多元高斯分布


希望能改变高斯分布的边界,从红色线变到蓝色线,这样,像绿色的异常点就不会被误预测为正常点。

定义

xRn x ∈ R n
模型 p(x) p ( x ) 不是 p(x1)p(x2)... p ( x 1 ) 、 p ( x 2 ) . . . 的乘积。
参数:
μRn μ ∈ R n ,协方差矩阵  ΣRnn   Σ ∈ R n ∗ n

p(x;μ,Σ)=1(2π)n/2|Σ|1/2exp(12(xμ)TΣ1(xμ)) p ( x ; μ , Σ ) = 1 ( 2 π ) n / 2 | Σ | 1 / 2 e x p ( − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) )

直观理解

Σ Σ 大小变化对正态分布带来的影响


对角线:数值越大,越低,占地面积越大

对角线:数值之间差距越大,越椭圆

反对角线:x1与x2正相关,数值越大,越窄越高;

反对角线:x1与x2负相关,数值越大,越窄越高;

μ μ 大小变化对正态分布的影响


影响中心的位置

15.8 多元高斯分布做异常检测


1. 根据训练集计算 μ μ Σ Σ ,得到模型 p(x) p ( x )
2. 对一个给定的新样本 x x ,计算p(x),如果 p(x)<ϵ p ( x ) < ϵ ,则为异常样本

与原始模型的关系

原始模型是多元高斯分布关于轴对称的特例。也就是其轴与坐标轴平行。
即,原始模型是多元高斯分布的参数 Σ Σ 为对角阵的情况(除对角线外,其他元素为零)

原高斯模型多元高斯模型
当特征之间有相关性的时候,手动创建特征去捕捉异常自动捕获特征之间的相关性
计算代价小计算代价大
训练集小也可以检测必须 m > n,否则 Σ Σ 不可逆;一般 m > 10n; 如果特征冗余, Σ Σ 也不可逆
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值