局部离群因子(Local Outlier Factor)算法

离群点检测概述

离群点是观察的数据集中明显异常的数据点,或者说,离群点的数据分布与数据集的整体分布不同。离群点检测的目的是检测出那些与正常数据差别较大的数据点,然后根据具体的问题作进一步处理。针对故障诊断问题,该方法可识别偏离正常状态的对象。
不同算法比较

说明:
1)离群点不同于噪声,非噪声点也可能离群,噪声应该在离群点检测前完成去除。

2)离群点检测算法的评价指标同二分类,可使用正确率(Accuracy)、查准率(Precision)、查全率(Recall)、F值(F1-scores)等指标进行评估,或者用ROC图。

以上转自https://blog.csdn.net/Albert201605/article/details/118341478

LOF算法原理

局部离群因子LOF是用于表征被检测点的离群程度,即LOF越大,离群越明显。
假设点集X, ∀ p ∈ X \forall p\in X pX,点p的LOF记为
L O F m ( p ) = 1 ∣ N m ( p ) ∣ ∑ o ε N m ( p ) l r d m ( o ) l r d m ( p ) LOF_{m}\left( p\right)=\dfrac{1}{\left| N_{m}\left( p\right) \right| }\sum _{o{\varepsilon }N_{m}\left( p\right) }\dfrac{lrd_m(o)}{lrd_m(p)} LOFm(p)=Nm(p)1oεNm(p)lrdm(p)lrdm(o)
其中, N m ( p ) N_m(p) Nm(p)是点p的m个最近邻所组成的点集(注:当距离升序第m个点和m+1,m+2,…相等时, N m ( p ) N_m(p) Nm(p)将包含这些点,即该邻域点集中点个数 ∣ N m ( p ) ∣ ≥ m |N_m(p)|\geq m Nm(p)m)。
l r d m ( p ) lrd_m(p) lrdm(p)是p点的局部可达密度(local reachable density):
l r d m ( p ) = 1 / ( ∑ o ε N m ( p ) r d m ( p , o ) ∣ N m ( p ) ∣ ) lrd_m(p)=1/(\dfrac{\sum _{o{\varepsilon }N_{m}\left( p\right) }rd_m(p,o)}{|N_m(p)|}) lrdm(p)=1/(Nm(p)oεNm(p)rdm(p,o))
r d m ( p , o ) rd_m(p,o) rdm(p,o)为p点相对于o点的可达距离:
r d m ( p , o ) = m a x { d m ( o ) , d ( p , o ) } rd_m(p,o)=max\{d_m(o),d(p,o)\} rdm(p,o)=max{dm(o),d(p,o)}
其中, d m ( o ) d_m(o) dm(o)是o点的m-距离,即o点和其第m个最近邻的距离, d ( p , o ) d(p,o) d(p,o)是p点和o点的距离。此处,对距离的定义通常采用欧式距离。
下图,以m=5为例,点p的邻域包含6个点。因为第5最近邻和第6最近邻点距离相等。
p点的5-距离
下图表述 p p p点相对于 o 1 o_1 o1 o 2 o_2 o2的可达距离。 p p p o 1 o_1 o1的距离大于 o 1 o_1 o1的第5-距离, r d 5 ( p , o 1 ) = d ( p , o 1 ) rd_5(p,o_1)=d(p,o_1) rd5(p,o1)=d(p,o1)。同理, r d 5 ( p , o 2 ) = d 5 ( o 2 ) rd_5(p,o_2)=d_5(o_2) rd5(p,o2)=d5(o2)
可达距离

LOF算法流程

在这里插入图片描述
节选自论文Chen Z, Xu K, Wei J, et al. Voltage fault detection for lithium-ion battery pack using local outlier factor[J]. Measurement, 2019, 146: 544-556.
编号对应前面公式。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MATLAB中的localoutlierfactor函数是一个用于检测局部离群的函数。离群是指与其他数据在特征空间中差异较大的数据localoutlierfactor函数的输入参数包括一个包含数据的矩阵X和一个选定的最近邻数k。矩阵X的每一行代表一个数据,每一列代表一个特征。最近邻数k决定了每个数据的邻居数量。 该函数的输出是一个包含与数据对应的局部离群因子local outlier factors)的向量。局部离群因子表示每个数据相对于其邻居的离群程度。数值越大表示越离群localoutlierfactor函数的工作原理是根据LOF算法Local Outlier Factor)计算每个数据局部离群因子。LOF算法基于以下两个概念:局部可达密度(Local Reachability Density)和局部离群因子算法的步骤如下: 1. 为每个数据计算其k个最近邻。 2. 计算每个数据局部可达密度,表示该数据到其邻居的密度。 3. 计算每个数据局部离群因子,表示该数据相对于其邻居的离群程度。 4. 根据局部离群因子进行排序,得到最终的离群排序结果。 对于输出的局部离群因子向量,数值越大表示数据离群。这些离群可能具有异常特征或与其他数据不太相似。 通过使用localoutlierfactor函数,可以快速检测和识别数据集中的离群,帮助分析师和数据科学家在数据挖掘和异常检测任务中进行进一步的分析和决策。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值