异常检测3——常见方法分类

异常检测3——常见方法分类

  • 基于统计学
    • 极值分析
    • 对数据分布进行假设
  • 基于线性分析
  • 基于时空
    • 空间关系造成的异常
    • 时间序列上的异常
  • 基于相似性分析
    • 建立在距离度量上的异常检测
    • 建立在密度分析上的异常检测
    • 基于聚类的异常检测
  • 基于偏差
  • 高维方法
  • 其他
    • 集成异常检测
    • 监督异常检测,半监督异常检测,主动学习
    • 图中的异常检测、网络中的异常检测

基于统计学

极值分析

往往只对单独纬度进行研究,使用上有很大的局限性【1】

对数据分布进行假设

对异常数据和正常数据进行不同的分布假设,并用EM算法拟合数据。局限性在于假设往往和实际有较大出入,效果一般

基于线性分析

在低纬度上分析数据间的相关性。比如PCA,Factor Analysis等。但是压缩或找到低维嵌入后,数据的可解释性下降。

基于时空

空间关系造成的异常

异常检测3——常见方法分类_第1张图片
O点单独看来的情况下是正常点,但是考虑到临近点后是异常点

时间序列上的异常

异常检测3——常见方法分类_第2张图片
异常检测3——常见方法分类_第3张图片

基于相似性分析

建立在距离度量上的异常检测

如K近邻为原型的

建立在密度分析上的异常检测

如Local outlier factor(LOF)

基于聚类的异常检测

先把人分群,然后把明显跟大伙儿不同的小群体去掉,那这部分小群体就是异常点。利用聚类检测异常点的方法是丢弃远离其他簇的小簇[3]

基于偏差

这种方法的思想是考虑到异常值跟整个数据集通常的特性(general characteristics)不一致,认为异常值是离中心最远的点,当移除这些点时,整个数据集某个特征的方差就会减小。比如一种模型的方法是定义一个smooth factor,它表示的就是当某条数据从整体里移除时,方差(variance)降低多少,一般来说,异常值降低的值会大于正常值。[2]

高维方法

在高维下做异常检测会出现以下问题:

  1. 随着维度的增加,各个点距离的区分度是很小的;
  2. 数据很稀疏,几乎所有的点都是离群点;
  3. 邻近的概念变得没有意义。
    针对以上的问题,解决方案如下:
  4. 采样更鲁棒的距离函数,并且在full-dimensional找异常点;
  5. 在原始子空间的特征空间里找异常点。
    基于角度的方法往往在高维空间里会很有效。通常来说如果点o是异常点的话,那么它与其它点的角度都差不多,如果不是异常点,它与其它点的角度就多种多样。[2]

其他

集成异常检测

isolation forest
feature bagging

监督异常检测,半监督异常检测,主动学习

图中的异常检测、网络中的异常检测

参考资料:
[1]机器学习门下,有哪些在工业界应用较多,前景较好的小方向? - 微调的回答 - 知乎
[2]数据挖掘中常见的「异常检测」算法有哪些? - 尼古丁布的回答 - 知乎
[3]数据挖掘中常见的「异常检测」算法有哪些? - 恒仔的回答 - 知乎

你可能感兴趣的:(异常检测)