感谢datawhale大部队!
一、概述
基于相似度判断异常也是异常检测中常用方法,其主要思想是异常点和正常点之间存在不同。
又可主要细分为:
-
- 基于距离度量相似度来判断
基于距离的异常检测有这样一个前提假设,即异常点的近邻距离要远大于正常点。
a.基于索引的算法
b.嵌套循环算法
c.基于单元的方法 -
- 基于密度度量相似度来判断
基于密度的算法主要有局部离群因子(LocalOutlierFactor,LOF),以及LOCI、CLOF等基于LOF的改进算法。
LOF(Local Outlier Factor):
又称局部异常因子算法,PYOD中的LOF是对 sk-learn中LOF 类的封装。
该算法主要思想是:通过计算一个数值 score 来反映一个样本的异常程度。
具体实现方式:求 一个样本点周围的样本点所处位置的平均密度 与 该样本点所在位置的密度 的比值。这个比值比 1 越大,表示该点所在位置的密度比其周围样本所在位置的密度越小,这个点就越有可能是异常点。
二、实现(基于PYOD库LOF算法进行异常检测)
代码部分:
from pyod.<