track_sequence_anomaly_detection
由时间空间成对组成的轨迹序列,通过循环神经网络,自编码器,时空密度聚类完成异常检测
1.rnn
word embedding预训练时空点词向量,通过rnn预测下一个时空点的概率分布,计算和实际概率分布的kl离散度,kl距离越大异常分越高
执行代码
python data_preprocessing.py
python data_loader.py
python pre_embedding.py
python main.py
python predict.py
轨迹数据格式:hour_location hour_location hour_location ...
[1] 6_10101 7_10094 8_10096 9_10102 10_10097
[2] 6_10094 8_10103 10_10101 11_10103 11_10095 14_10097
[3] 12_10094 12_10094 12_10097 13_10096 13_10094 14_10097 16_10096 18_10102
轨迹检测 [×]异常轨迹,[ ]正常轨迹 ``` 请输入轨迹序列:7_10106 7_10096 8_10095 8_10095 8_10100 9_10102 11_10101 11_10104 12_10103 12_10104 12_10097 13_10097 14_10094 15_10095 15_10103 15_10104 16_10097 17_10094 17_10094 17_10096 [ ] 交叉熵:7.609000205993652, kl离散度:7.873, 移动轨迹:['7_10106'] => 7_10096 [ ] 交叉熵:7.607999801635742, kl离散度:8.403, 移动轨迹:['7_10106', '7_10096'] => 8_10095 [ ] 交叉熵:7.60699987411499, kl离散度:8.662, 移动轨迹:['7_10106', '7_10096', '8_10095'] => 8_10095 [ ] 交叉熵:7.572999954223633, kl离散度:9.714, 移动轨迹:['7_10106', '7_10096', '8_10095', '8_10095'] => 8_10100 [ ] 交叉熵:7.599999904632568, kl离散度:10.423, 移动轨迹:['7_10096', '8_10095', '8_10095', '8_10100'] => 9_10102 [ ] 交叉熵:7.598999977111816, kl离散度:9.946, 移动轨迹:['8_10095', '8_10095', '8_10100', '9_10102'] => 11_10101 [ ] 交叉熵:7.5289998054504395, kl离散度:9.099, 移动轨迹:['8_10095', '8_10100', '9_10102', '11_10101'] => 11_10104 [ ] 交叉熵:7.59499979019165, kl离散度:10.283, 移动轨迹:['8_10100', '9_10102', '11_10101', '11_10104'] => 12_10103 [ ] 交叉熵:7.520999908447266, kl离散度:8.919, 移动轨迹:['9_10102', '11_10101', '11_10104', '12_10103'] => 12_10104 [ ] 交叉熵:7.453000068664551, kl离散度:8.242, 移动轨迹:['11_10101', '11_10104', '12_10103', '12_10104'] => 12_10097 [ ] 交叉熵:7.599999904632568, kl离散度:10.468, 移动轨迹:['11_10104', '12_10103', '12_10104', '12_10097'] => 13_10097 [ ] 交叉熵:7.567999839782715, kl离散度:9.526, 移动轨迹:['12_10103', '12_10104', '12_10097', '13_10097'] => 14_10094 [×] 交叉熵:7.609000205993652, kl离散度:10.895, 移动轨迹:['12_10104', '12_10097', '13_10097', '14_10094'] => 15_10095 [ ] 交叉熵:7.5970001220703125, kl离散度:9.827, 移动轨迹:['12_10097', '13_10097', '14_10094', '15_10095'] => 15_10103 [ ] 交叉熵:7.546000003814697, kl离散度:9.446, 移动轨迹:['13_10097', '14_10094', '15_10095', '15_10103'] => 15_10104 [ ] 交叉熵:7.548999786376953, kl离散度:9.49, 移动轨迹:['14_10094', '15_10095', '15_10103', '15_10104'] => 16_10097 [ ] 交叉熵:7.585999965667725, kl离散度:10.284, 移动轨迹:['15_10095', '15_10103', '15_10104', '16_10097'] => 17_10094 [ ] 交叉熵:7.455999851226807, kl离散度:8.381, 移动轨迹:['15_10103', '15_10104', '16_10097', '17_10094'] => 17_10094 [ ] 交叉熵:7.570000171661377, kl离散度:9.628, 移动轨迹:['15_10104', '16_10097', '17_10094', '17_10094'] => 17_10096
```
2.auto_encoder
时空维度展开记录出现次数,转tfidf,自编码预测复现损失MAE,复现损失越大异常分越高
执行代码
python data_preprocessing.py
python main.py
python predict.py
轨迹检测
cardno,loss
be4fqkgr66n89gdna5cg,0.000996691407635808
be4d5d0r66n89gdldnj0,0.0009965329663828015
be4ct7or66n89gdl8760,0.000997029128484428
be4d12or66n89gdlat3g,0.0010041424538940191
be4d4ogr66n89gdldac0,0.0009971902472898364
be4fdogr66n89gdn0rh0,0.0009968323865905404
be4crt8r66n89gdl79cg,0.0009975525317713618
2.st-dbscan
以地理位置距离作为半径,时间范围作为高,在空间画圆柱,进行密度聚类检测异常点。使用KDTree,BallTree,Faiss进行近邻检索加速。
执行代码
python stdbscan.py
python stdbscan_fast.py --tim 0.4 --geo 30 --min_samples 20 --method kdtree
轨迹检测
参考文献
- 基于云计算的用户网络行为挖掘分析系统的研究与设计(湖北大学·皮健夫)
- 主题网络爬虫的研究和实现(武汉理工大学·林捷)
- 基于Actor模型的广域分布式爬虫的设计与实现(北京邮电大学·陈凌鹏)
- 面向应用商店的主题爬虫设计与实现(东南大学·韩进宾)
- 基于交叉熵的序列事件周期性检测及应用研究(电子科技大学·杨锐)
- 分布式环境下大规模轨迹流伴随模式计算及优化(桂林电子科技大学·张康威)
- 面向序列数据的个性化推荐技术研究(齐鲁工业大学·马凯洋)
- 基于长短期偏好和时间间隔的序列推荐方法研究(山东师范大学·孙杰)
- 主题网络爬虫的研究和实现(武汉理工大学·林捷)
- 基于Actor模型的广域分布式爬虫的设计与实现(北京邮电大学·陈凌鹏)
- 轨迹大数据的向量场可视化方法研究(北京建筑大学·李泰增)
- 基于web的轨迹数据可视化研究与实现(湖南大学·王婷)
- 面向应用商店的主题爬虫设计与实现(东南大学·韩进宾)
- 基于web的轨迹数据可视化研究与实现(湖南大学·王婷)
- 基于序列模式挖掘算法的恶意代码检测(中国科学技术大学·王丽娜)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码小屋 ,原文地址:https://bishedaima.com/yuanma/35945.html