Toggle navigation
Home
Genomics
Python
Linux
Visualization
Statistics
MachineLearning
Reading
Other
About
Home
>
MachineLearning
> Main text
[CS229] 15: Anomaly Detection
Tag:
python
,
machine learning
2018-12-11
15: Anomaly Detection
异常检测:主要用于非监督学习问题。根据很多样本及其特征,鉴定可能异常的样本,比如产品出厂前进行质量控制测试(QA)。
对于给定的正常数据集,想知道一个新的数据是不是异常的,即这个测试数据不属于该组数据的几率,比如在某个范围内概率很大(正常样本),范围之外的几率很小(异常样本),这种属于密度估计。
高斯分布:常见的一个分布,刻画特征的情况:
两个参数:期望和方差
利用高斯分布进行异常检测:
对于给定数据集,对每一个特征计算高斯分布的期望和方差(知道了每个特征的密度分布函数)
对新数据集,基于所有特征的密度分布,计算属于此数据集的概率
当计算的P小于ε时,为异常。(这个ε怎么定?)
开发和评估:
异常检测系统,先从带标记的数据选取部分构建训练集,获得概率分布模型;然后用剩下的正样本和异常数据构建交叉检验集和测试集。
测试集:估计每个特征的平均值和方差,构建概率计算函数
检验集:使用不同的ε作为阈值,看模型的效果。主要用来确定模型的效果,具体就是ε值大小。
测试集:用选定的ε阈值,针对测试集,计算异常检验系统的F1值等。
注意1:数据。训练集只有正常样本(label为0),但是为了评估系统性能,需要异常样本(label为1)。所以需要一批label的样本。
注意2:评估。正负样本严重不均衡,不能使用简单的错误率来评估(skewed class),需要用precision、recal、F-measure等度量。
异常检测 vs 监督学习:
数据量:前者负样本(异常的)很多
数据分布:异常检测的负样本(正常样本)分布很均匀,认为服从高斯分布,但是正样本是各种各样的(不正常的各有各的奇葩之处)
模型训练:鉴于异常样本的数量少,且不均匀,所以不能用于算法学习。所以异常样本:不参与训练,没有参与高斯模型拟合,只是在验证集和测试集中进行模型的评估。
特征选择(转换):
特征不服从高斯分布,异常检测算法也可以工作
最好转换为高斯分布:比如对数函数变换 =》x=log(x+c)
比如在某一维度时,某个样本对应的概率处于正常和异常的附近,很可能判断错误,可以通过查看其在其他维度(特征)的信息,以确定其是否异常。
误差分析:
问题:异常的数据有较高的P(x)值,被认为是正常的
只看被错误检测为正常的异常样本,看是否需要增加其他的特征,以检测这部分异常
多元高斯分布:
一般高斯计算P(x): 分别计算每个特征对应的几率然后将其累乘起来
多元高斯计算P(x): 构建特征的协方差矩阵,用所有的特征一起来计算
问题:一般高斯的判定边界比较大,有时候会把样本中的异常分布判定为正常样本
协方差矩阵对高斯分布的影响:
一般高斯 vs 多元高斯:
应用多元高斯构建异常检测系统:
原始模型 vs 多元高斯模型:
以上参考
这里的
学习笔记
If you link this blog, please refer to this page, thanks!
Post link:
https://tsinghua-gongjing.github.io/posts/CS229-15-anomaly-detection.html
Previous:
tSNE分析
Next:
Python module sklearn
Please enable JavaScript to view the
comments powered by Disqus.
Category
Genomics
Python
Linux
Visualization
Statistics
MachineLearning
Reading
Other
Tags
Latest articles
AI在乳腺癌检测中的应用
基于三代测序数据预测m6A修饰位点
使用迁移学习对scRNA数据降噪
深度学习助力RNA可变剪切的预测
Excel常见用法
Word常见用法
Basic operations on matrix
LSTM
Run jobs on GPU server
稀疏编码
Links
ZhangLab
,
RISE database
,
THU life
,
THU info
Data analysis:
pandas
,
numpy
,
scipy
ML/DL:
sklearn
,
sklearn(中文)
,
pytorch
Visualization:
seaborn
,
matplotlib
,
gallery
Github:
me