基于网络索引树的异常轨迹检测算法

针对轨迹数据的运动规律和特征,结合空间划分的方法,提出本文的基于网络索引的异常轨迹检测方法。
实验结果表明,该算法可提高异常轨迹挖掘效率,且更有现实意义。
该算法不足:对参数比较敏感,目前(2014)只适用于静态历史轨迹数据库。

异常轨迹检测完整算法:
输入轨迹数据集,参数,阈值,邻域
首先对轨迹数据库做基于距离的线性插值;
接着构建网络索引树,在检测出异常轨迹点后,根据定义计算轨迹异常度,
最后输出异常轨迹。
以下是详解:

1. 构建网络索引树算法:
创建根节点,对输入数据集的每一个数据点计算所在单元,
将数据点插入树中,
返回网络索引树。
2. 轨迹树的范围查询
先获得当前维序列号,如果它加上范围值加1大于当前节点关键字个数,就把关键字个数减少1赋值给开始位置,否则把当前维序列号加上范围赋值给开始位置。
然后再从开始位置依次循环遍历查询:
如果当前维序列号减去范围值大于当前关键字值,就返回;
否则,判断当前维序列号加上范围值是否小于当前关键字值,如果是,就执行下一次循环。
如果当前层不是叶节点,就执行递归范围查询
否则,加入结果集合。
最后返回结果集合。
3.计算轨迹异常度
首先计算经过每个单元的轨迹数目,如果大于阈值,则将其标记为红色,表明该单元中的轨迹点正常,否则标记为白色,表明轨迹点异常。
然后针对白色单元的每个异常轨迹点,根据下面的条件判断是否异常。
判断是否异常的条件:
1.局部异常轨迹点的判断:给定轨迹数据集,如果轨迹点集合中的某一点不被包含在任何一个核心轨迹点的邻域内,则称该点为局部异常轨迹点。
2.异常轨迹点检测算法
输入网络索引树,轨迹点集合,阈值 ,邻域限定
首先, 依次判断网络索引树的每一个叶节点是否大于阈值,如果是,则将其归为红色单元,
接着,对网络索引树中的每个白色节点中的每一个轨迹点,利用已知条件对网络索引树的范围查询,
然后,对结果集中的每一个对象,判断其与白色节点中的轨迹点的距离,
如果小于邻域值,就将其添加到邻域集合;
如果该对象邻域集合为空,判断其邻域基数是否小于阈值,如果是将其添加到异常轨迹点集合中,最后返回该异常轨迹点集合。

参考文献:
【1】陈刚,钱猛,刘金. 基于划分的高效异常轨迹检测[J]. 计算机工程与应用, 2014, 50(24): 127-132, 172.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值