📜  局部异常因子

📅  最后修改于: 2022-05-13 01:58:07.866000             🧑  作者: Mango

局部异常因子

什么是局部异常因子?
局部异常值因子 (LOF) 是一种用于无监督异常值检测的算法。它产生一个异常分数,表示数据集中的异常值数据点。它通过测量给定数据点相对于其附近数据点的局部密度偏差来实现这一点。

LOF 的工作:
局部密度是通过估计相邻数据点(k-最近邻)之间的距离来确定的。因此对于每个数据点,可以计算局部密度。通过比较这些,我们可以检查哪些数据点具有相似的密度,哪些密度低于其邻居。具有较小密度的那些被认为是异常值。
首先,k-距离是为每个点计算的点之间的距离,以确定它们的k-最近邻。第二个最近的点被称为该点的第二个最近的邻居。这是一个图像,它代表了一个点的集群中各个邻居的 k 距离:

该距离用于计算可达距离。它被定义为两点之间的距离和该点的 k 距离的最大值。请参考以下等式,其中 B 是中心点,A 是中心点附近的点。


这是一个图像,表示一个点到各个邻居的可达距离:

正如您在上面给出的图像中所看到的,对于圆内的点,考虑了 k 距离,对于集群外的点,考虑了点之间的距离。
现在,计算到一个点的所有 k 最近邻的可达距离以确定该点的局部可达密度 (LRD) 。局部可达性密度是一个点周围 k-最近点的密度的度量,它是通过取所有 k-最近邻点的所有可达性距离之和的倒数来计算的。点越近,距离越小,密度越大,因此方程取逆。


局部异常值因子 (LOR) 的计算是通过取一个点的 k 个邻居的 lrds 的平均值与该点的 lrd 的比率来完成的。这是 LOR 的等式:

所以,在等式中,如果邻居和点的密度几乎相等,我们可以说它们非常相似;如果邻居的密度小于点的密度,我们可以说这个点是一个内点,即在集群内部,如果邻居的密度大于点的密度,我们可以说这个点是一个离群值。请参阅下图:

这是数据集上的 LOF 图的图像:

好处:

  • 有时,确定异常值可能会很棘手。与非常密集的集群相距很小的点可能被视为异常值,但与更广泛分布的集群相距较远的点可能被视为内点。使用 LOR,可以确定局部区域的异常值,因此该问题不会持续存在。
  • LOF中使用的方法可以应用于许多其他领域,以解决检测地理数据、视频流等异常值的问题。
  • LOF 也可用于实现不同的相异函数。并且发现它优于许多其他异常检测算法。

缺点:

  • 决定一个点是否为异常值的 LOF 分数并不总是相同的。对于不同的数据集,它可能会有所不同。
  • 在更高的维度上,LOF 算法的检测精度会受到影响。
  • 由于 LOF 分数可以是比率产生的任何数字,因此基于它来理解内部值和异常值的区分可能有点不方便。