异常检测算法之LOF算法

本文介绍了LOF算法,一种基于密度的非监督异常检测方法,重点讲解了其工作原理、如何利用sklearn实现,并以IDS入侵数据集为例展示了在APT恶意流量检测中的应用。提到训练时间较长且不支持GPU加速的问题。
摘要由CSDN通过智能技术生成

首先了解什么是LOF算法

LOF算法又叫局部异常因子算法,它是一种基于距离的异常检测算法,我认为该算法比较详细的博客如下:LOF.
lof 的主要思想如下:通过比较每个点p和其邻域的密度来判断该点是否为异常点,如果点p的密度越低,越有可能被认为是异常点。至于密度,是通过点和点之间的距离来进行计算的,点和点之间的距离越小,则密度越高;反之则就越低。

算法特点

LOF算法主要特点包括如下:
LOF是一种非监督式的算法
LOF是一种基于密度的算法
LOF算法适合对于不同密度的数据进行异常检测

最近在研究关于APT攻击的恶意流量数据的检测,我认为该方法可以应用到检测恶意流量的范畴。当然异常检测也可以属于二分类的范畴,正常和不正常。但是APT攻击的恶意流量数据较少,存在样本不均衡的问题,初步设想,先采用异常值检测的算法较为科学。

采用的数据集为IDS入侵2017的公开数据集,网址为https://www.unb.ca/cic/datasets/ids-2018.html
这个数据集周一采集的数据为正常数据,周二到周末为参杂了恶意流量的数据。

实现方法

基于python的sklearn的第三方库,进行实现,参数说明参考官网:https://scikit-learn.org/stable/modules/outlier_detection.html#outlier-detection

其中参数:novelty :默认为 flase , 是否可以用来做新奇检测
lof算法模式两种对比

实践检验

将数据集中的周一正常数据给lof算法进行训练,然后用周二带有恶意流量的数据进行新奇点检测:

周二数据集进行验证
这种基于lof算法的新奇点检测明显的感觉就是训练时间较长,尤其是数据的维度较高时,会有很长时间的训练时间。sklearn好像还不支持GPU加速

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值