异常检测算法

本文介绍了异常检测算法的基本思想和应用,强调了其与监督学习的区别。通过详细步骤,包括正态分布拟合、计算样本联合概率密度、寻找最优阈值以及实际应用,阐述了如何在计算机监控数据上进行异常检测。完整Python3代码可供参考。

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

异常检测(Anomaly Detection)是为了发现运维中偏离正常值的异常数据。

异常检测算法的基本思想是:用正常的数据去训练模型,得到阈值,然后去判断新的数据X_{test}是否异常。

异常检测如今被广泛应用于:欺诈用户检测,制造业异常检测,计算机监控等!

 

在详细介绍异常检验算法之前,需要了解异常检测和监督学习的不同:

假设一个二分类问题,普通的监督学习,训练集中两种类别 y1 和 y2 的数量通常是一样、或者相近的。所以通过 (x1, y1) 和 (x2, y2) 可以训练出一个合理的阈值去进行二分类。

但是许多情况下,数据集会存在Mis_Classfication的情况,即各类别样本数据量不均匀。比如异常检测通常都是正常数据(即x1和y1的数据),很少有异常数据(即x2和y2的数据),所以没法用一般监督学习的思想去解决异常检测问题。

所以异常检测算法通常只训练正常数据!

 

 

异常检测算法详解:

之后我在算法里所用的数据集Data.mat,是计算机的监控数据,主要包含两个特征Latency(延迟)和Throughput(吞吐量)。Data.mat中包含3个key:X,Xval,Yval。X是训练数据;Xval是验证集;Yval中的数据均为01,对应Xval中的数据是否异常,异常为1,正常为0。

数据集链接地址:https://pan.baidu.com/s/18aC3a6hDX_DmlrAxKMuf6A

 

1、用正态分布拟合训练集

如果一个数据集服从正态分布,那我们有理由相信,该数据集是符合事物常态的。所以对于数据集,我们要先判断它是否符合正态分布;如果不符合,可以采用log(x)或者x^n的方法,将原数据变为正态分布。

对于上述的Data.mat数据集,将X的概率密度函数图画出来为:

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值