全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析与数据挖掘
1013 0
2020-10-30
使用局部异常值因素进行异常/异常值检测
离群值是数据中无法确认预期行为的模式。在检测此类模式时,在信用卡欺诈,股票交易等方面至关重要。在训练任何监督的机器学习模型时,检测异常或异常值的观察也很重要。这给我们带来了两个非常重要的问题:局部离群值的概念以及为什么存在局部离群值?
在多行数据集独立于概率分布而生成的多元数据集中,仅使用数据的质心可能不足以标记所有异常值。诸如马氏距离之类的量度也许可以识别极端的观测值,但不能标记所有可能的异常观测值。局部离群因子是从DBSCAN派生的基于密度的离群值检测方法。该方法背后的直觉是,离群对象周围的密度将与其邻近对象周围的密度显着不同。
在上图中,红点(C)表示数据的中心;基于距离的方法只能将o3和o4识别为离群值,而实际上o3是离群值,而o4则不能。另外,o1和o2是两个离群值观测值,在基于全局数据分布的同时考虑了本地邻域。他们没有被分类为离群值。
局部离群因子是一种基于密度的方法,它依赖于k最近邻。LOF方法通过计算邻居的平均密度与点本身的密度之比来对每个数据点评分。计算LOF涉及的步骤如下:
计算这对观测值之间的距离。
找到第k个最近邻观测值;计算观测值与k最近邻居之间的距离。
计算本地可达性密度(LRD):LRD是从邻居到单个点的任何方向上的最佳距离。从数学上讲,它是k的最近邻居集中的项数除以该点的第k个最近邻居的最大值以及该点与其相邻点之间的距离。该距离称为到达距离。
如上定义的局部离群因子(LOF)将是o和o的k最近邻的局部可达性之比
o的局部可达性越低,o的k个最近邻居的可达性越高LOF越高。
LOF值小于1表示观察到的不是异常值,而值大于1则表示异常值。如果数据稀疏,则截止频率会更高。
R和python都有LOF的实现。在R中,可以使用DmWR和Rlof包(并行实现)来实现该技术。Scikit在python中学习了算法的实现。以下是在模拟数据集上的LOF技术的说明性示例。
LOF的缺点:
可伸缩性是一个大问题,因为计算会占用大量内存,因此,较大的数据集需要良好的计算基础架构
用户需要提供输入“ k”,此输入可能不是最佳的,从而给出错误的结果
克服缺点的进步:
使用算法以及基于Spark和Hadoop的基础架构中的一些最新进展可以克服LOF的缺点。以下是从可伸缩性角度可以研究的一些算法:
DILOF:数据流中的有效和内存高效的局部异常检测
可扩展的Top-n局部离群值检测:使用修剪从潜在离群值候选集中消除大多数点,而无需计算LOF甚至不计算k个最近的邻居。
1
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群