《异常检测——从经典算法到深度学习》4 基于高斯概率密度异常检测算法

àì夳堔傛蜴生んèń 2023-02-13 08:52 68阅读 0赞

《异常检测——从经典算法到深度学习》

  • 0 概论
  • 1 基于隔离森林的异常检测算法
  • 2 基于LOF的异常检测算法
  • 3 基于One-Class SVM的异常检测算法
  • 4 基于高斯概率密度异常检测算法
  • 5 Opprentice——异常检测经典算法最终篇
  • 6 基于重构概率的 VAE 异常检测
  • 7 基于条件VAE异常检测
  • 8 Donut: 基于 VAE 的 Web 应用周期性 KPI 无监督异常检测
  • 9 异常检测资料汇总(持续更新&抛砖引玉)
  • 10 Bagel: 基于条件 VAE 的鲁棒无监督KPI异常检测
  • 11 ADS: 针对大量出现的KPI流快速部署异常检测模型
  • 12 Buzz: 对复杂 KPI 基于VAE对抗训练的非监督异常检测
  • 13 MAD: 基于GANs的时间序列数据多元异常检测

相关:

  • VAE 模型基本原理简单介绍
  • GAN 数学原理简单介绍以及代码实践

4. 基于高斯概率密度异常检测算法

此篇主要介绍以下内容:

  • 基于高斯概率密度异常检测算法概述
  • 基于高斯概率密度异常检测算法应用实例
  • 小结

4.1 算法概述

基本思想: 首先,该算法假设数据集服从高斯分布的,然后再分别计算训练集在空间中的重心, 和方差, 然后根据高斯概率密度估算每个点被分配到重心的概率,进而完成异常检测任务。

特点:

  • 是一种非监督算法
  • 适用于大致服从高斯分布的数据集
  • 不适用于高维特征数据集。样本数目(n_samples) 应该大于特征数目的平方(n_features**2)

注: 该算法应用场景极其有限,在此不做过多介绍。

4.2 应用实例

在sklearn中实现了该算法,官网文档地址

实例1
来自于sklearn官网,立即前往

  1. import numpy as np
  2. from sklearn.covariance import EllipticEnvelope
  3. true_cov = np.array([[.8, .3],
  4. [.3, .4]])
  5. X = np.random.RandomState(0).multivariate_normal(mean=[0, 0],
  6. cov=true_cov,
  7. size=500)
  8. cov = EllipticEnvelope(random_state=0).fit(X)
  9. # predict returns 1 for an inlier and -1 for an outlier
  10. print(cov.predict([[0, 0],
  11. [3, 3]]))
  12. print(cov.covariance_)
  13. print(cov.location_)

输出内容如下:

  1. [ 1 -1]
  2. [[0.74118335 0.25357049]
  3. [0.25357049 0.30531502]]
  4. [0.0813539 0.04279722]

说明:

  • numpy 中的 multivariate_normal函数 即产生多维的高斯分布的数据,这个例子中生产生二维数据集。
  • true_cov 即协方差;在随机生成多维正态分布的时候需要指定 mean 即平均值,cov 即协方差,size 则是随机生成这些数的数目。
  • cov 即生成的模型;predict 返回 1 表示正常数据,返回 -1 表示异常数据。
  • cov.covariance_ 即预测协方差矩阵(Estimated robust covariance matrix);cov.location_ 即预测 Robust 位置(Estimated robust location)

参考文档:
https://scikit-learn.org/stable/modules/generated/sklearn.covariance.EllipticEnvelope.html#sklearn.covariance.EllipticEnvelope
https://scikit-learn.org/stable/modules/outlier_detection.html#outlier-detection

4.3 小结

只是稍微提及一下该算法,基于概率运算的算法的核心应该就是思考数学模型构建过程,但为了给后面的深度学习相关算法留更多时间,就没有再去纠结数学模型相关推导与证明了。根据sklearn官网上的说明,与此算法相关的论文(A Fast Algorithm for the Minimum Covariance Determinant Estimator) 在1999年提出的,希望能把重点放在其他算法上,所以这里只能草草浏览一下,抱歉。

Smileyan
2020年5月28日

感谢您的 点赞、 收藏、评论 与 关注

发表评论

表情:
评论列表 (有 0 条评论,68人围观)

还没有评论,来说两句吧...

相关阅读