APP下载

基于Python的铁路旅财数据挖掘与分析

2020-08-04郑涵之叶燊王晓凯

数字技术与应用 2020年5期
关键词:铁路

郑涵之 叶燊 王晓凯

摘要:铁路旅财案件的现场痕迹易被破坏,嫌疑人作案时空具有一定选择性,通过分析旅客乘车数据,可以从大量乘客中找出有作案嫌疑的乘客。运用Python语言编写算法,服务于一线铁路民警,减少重复性人工操作,节约警力。

关键词:铁路;旅财案件;Python

中图分类号:TP311.13 文献标识码:A 文章编号:1007-9416(2020)05-0033-02

0引言

旅客运输是铁路运输生产的重要方面,铁路车站是一个将自四面八方的旅客高度聚集的、流动的公共场所。旅财案件,即旅客财物被盗案件,也是铁路区域内的多发性案件。所谓的铁路旅财案件就是指在铁路上实施的侵犯旅客财产的犯罪行为,即列车上行窃即可称为旅财案件。犯罪主体具有多样性,犯罪分子作案一般都有个对作案环境和目标的熟悉情况有所了解。这不仅是犯罪分子作案的预备、对作案目标的选择问题,也是其犯罪心理安全的需要。所以,犯罪分子的作案活动要么选择自己熟悉的环境,要么事先进行踩点、预谋。铁路站车是一个特殊的地域和社会环境,这里面的环境格局、设施设备、人员岗位、生产作业流程、旅客旅行过程以及警察的勤务活动等都有一定的规范性和特殊性。

虽然火车票实名制的实施为破获侵财案件提供了一些便利,公安机关可以根据购票人信息顺藤摸瓜,查找作案人,但一些车站并未严格实行实名制检票,从而为不法分子提供了可乘之机,他们或用虚假身份证购票,或用他人身份证购票,为案件侦破带来了重重障碍。

Python是一种跨平臺的计算机程序设计语言,是一种面向对象的动态类型语言,提供了多个数据分析的模块,如pandas库numpy库和openpyxl等,以及可以连接ftp的功能模块如ftplib库等,可以高效地实现对旅财案件嫌疑人乘车轨迹的数据进行分析的任务。

1嫌疑人作案规律研究

铁路旅财案件的作案人无论是惯犯、流窜犯,还是临时起意的人员,大多都熟知客运规律和站车地形。不法分子会选择自己熟悉的地方作案,这样既容易得手,又便于及时销赃和逃逸。铁路客运规律和站车地形都有其特殊性,如列车的运行和站停有一定规律、人财物高度集中又流动性大、旅客之间多互不认识、车站出口较多等,对此不熟悉的人会感到茫然而拘谨,而熟悉站车地形和客运规律的人作起案来则是轻车熟路。

在公安机关的打击和宣传下,旅客对侵财案件的传统作案手法已经有所警惕,作案人不得不采取更加多样化、智能化的作案手段。如作案人事先踩点、预谋,趁旅客在售票厅购票时暗中观察旅客的钱财数量和放置位置等情况信息,或趁旅客不注意时盗走其财物,或趁上车人多拥挤时下手,或跟随目标上车后伺机作案。失主往往短时间内难以发现财物被盗。

经总结旅财案件嫌疑人存在以下作案规律:(1)为作案得手后及时逃脱,且不引起其他乘客注意力,—般不携带儿童。(部分以儿童为掩护实施盗窃的作案人例外)(2)作案人以男性为主,且年龄主要在16到50岁之间,年龄跨度较大。不能够仅仅凭借年龄作为筛选的主要条件。(3)作案人购买的车票票价一般较低,且以普通座次为主,票价多在300元以下。以此来降低自己的作案成本,提高作案所得。(4)作案人的乘车轨迹较为复杂、繁琐,存在短期内的多次乘车,购买了与之前购票规律不符的车票(存在盗用身份证的嫌疑),乘车轨迹出现大量“断点”(不连续)等,且存在较高的“断点比率”,根据之前的案件数据分析得出断点比率在75%以上的乘客乘车数据,大多存在一定的异常现象。

在旅财案件中,嫌疑人的旅客乘车数据中最为明显就是“断点”,所谓的“断点”就是在一段时间内,一个人的乘车轨迹不连续,如从一开始的乘车轨迹为南京到上海而下一次的乘车轨迹却是从常州到无锡,这就是所谓的“断点”。因为,大多数嫌疑人会在得手之后直接在就近的车站提前下车,然后通过车票提前出站,而下一次再购票乘车的出发站就与之前轨迹的到达站不一致,这就导致了乘车轨迹的不连续。所以,如果一个人在一段时间内的乘车轨迹存在大量的“断点”,这个人的乘车轨迹就存在问题,从一定角度上说就存在作案的嫌疑。

2基于Python的铁路旅财数据分析软件设计

处理数据的流程即先从发生盗窃的列车上的旅客数据进行分析处理,从中去除一些作案嫌疑较小的乘客,如女性乘客(铁路旅财案件的嫌疑人以男性为主);携带儿童的乘客;乘车距离较长票价较贵的乘客;年龄大于6哕的老人(根据大量案例的数据分析以及民警的办案经验,铁路旅财案件的作案人员年龄分布较广,作案人年龄可跨越16岁到60岁不等)等。并且从中寻找是否有前科人员乘坐该次列车,若有则将其作为重点分析对象,单独进行分析;如果无,则考虑是否存在冒用身份等情况。通过种种条件来对于庞大的乘客个人信息数据进行筛选,缩小侦查范围。并且设置“断点比率”,以75%为阈值,高于这个值的人员将被归为重点嫌疑人员。

本软件用Python语言进行编写,以针对旅财案件的“断点”模型自动化分析为主要功能,其中“断点”模型以“断点”和“断点”比率为主要特征作为筛选条件,辅以年龄、性别、网络购票等特征进一步筛选,实现了整套流程的自动化分析以及信息推送。其它功能还包括:碰撞法寻找旅财人员和逃票人员的轨迹“断点”、铁路旅财案件自动筛选管辖前科人员、前科人员以及案情信息查询、15位身份证转换为18位身份证、提供丰富快捷的信息查询筛选功能、从指定ftp下载数据、上传数据至指定ftp等功能(软件的每个数据处理模块都默认先将所有数据进行数据清洗、去重以及按照身份证号排序)。

2.1铁路旅财案件“断点”模型自动化分析

软件初始页面有六个功能模块可供选择,输入数字“1”选择功能一,将需要分析的excel文件放入指定路径下,软件自动分析完毕后会利用pandas.DataFrame方法和pandas.setoption方法提供预览,预览结果中会运用sorted方法和operator.itemgetter方法将所有人根据出现“断点”次数降序进行排序和汇总。

预览“断点”分析结果,可以看到软件会将乘客每条轨迹数据标记上是否为断点,并将每个乘客按照断点次数降序排列。软件在指定路径中自动生成名为“断点结果”的文件夹,即可将多+excel~格中的所有乘车数据汇总结果到结果中,并且以时间来命名,解决了同一人的乘车数据出现在多个excel文件中的问题。

处理后的数据格式新增了“性别”“年龄”“是否网络购票”“车站是否有人脸识别”“此条轨迹是否为断点”这,个新的字段。每个人的最后一条乘车数据示为“无效值”,因为在设计“断点”算法时将每一个人的轨迹以时间先后顺序从前向后进行“断点”比较计算的,最后一条轨迹数据没有向后的比较值,所以作为“无效值”,不影响“断点”比率的计算;若某个人只有一条轨迹数据,则标记为“无效值”。

前期经过数据清洗、去重以及按照身份证和时间排序后,先通过xlrd模块和openpyxlN块读取整+exce坟件并记录其所有数据条数,再通过while循环将循环次数限制在与数据条数相同,并对比某一条数据的身份证列与下一条数据是否相同,若相同,则说明这两条数据是同一个人,就可以将本条数据的到站与下一条数据的发站进行比较,来得出本条数据是否为“断点”;若本条数据的身份证列与下一条数据不相同,则说明该条数据是该人的轨迹中最后一条数据,因而无法与下一条数据比较,即标识“无效值”。

在给每一条轨迹数据标记了是否为“断点”之后,再运用collections.counter方法计算每个人的轨迹数据总数,再计算每个人的“断点”轨迹数占个人轨迹数据总数的比重,即为“断点”比率。

2.2前科人员信息查询

本模块主要利用python中的xlrd和xlwt模块读取excel文件中内容进行索引查找和数据的挖掘。根据命令提示在指定路径下放入原始的案情表和人员信息表。软件会通过0s.1istdir方法判断指定路径下是否放入文件,若没有放入文件则会提示先放人文件在执行关键词查询。放人文件后先输入需要查找的关键字1,再输入其它需要查找的关键字2,3,4……,若需要所有上述关键字搜索的结果,则输入“并集”;若需要同时满足上述所有关键字的搜索结果,则输入“交集”。

完成搜索的同时,软件也会自动将部分旧版的15位身份证转换为新版的18位身份证。对于在数据源中有港澳通行证的乘客,软件也会将港澳通行证号放在身份证后面提供预览。

2.3自动定时爬取数据进行分析并推送

python~时任务框架Apscheduler提供了非常丰富而且方便易用的定时任务接口,主要运用其中用BlockingScheduler调度器和interval方法设置触发器和定时自动触发的时间间隔,实现了精细化的控制。在此大框架下编写具体要执行的定时任务:利用ftplib.FTP方法登录ftp取数据,通过模拟菜单界面使用户查看当前路径下的文件,确定需要选择的文件,软件会运用csv.reader方法预览原文件,针对有最新乘车记录的前科人员,确定其管辖范围属于管内车站还是管内车次,处理结果用open方法和write方法分别写入所属辖区各所以及乘警队的txt文件中,将数据存储在本地并且分析完毕后在自动定时上传到指定ftp上完成推送,实现了动态防控。

2.4碰撞法找“断点”

除了上文提到的分析“断点”的方法,還有一种方法即碰撞法。这种寻找“断点”的方法适用于从普通乘客中分离出铁路逃票嫌疑人。

例如一条铁路沿线分别有A、B、c三站,将同一天(或若干天)内从A到B和从C到B的乘客数据进行碰撞,碰撞结果即为出现轨迹“断点”的人员。这种方法更适合在已知固定乘车区间内寻找经常逃票的人员。

将乘车区间互为反向的两种乘车数据放人指定文件夹下的“正向”和“反向”目录下(“正向”“反向”为相对的,自行定义某一方向为正向即可,另一方向就为反向)即可自动分析,分析结果文件以时间作为命名格式。

3结语

该分析过程可总结为通过一系列对于乘车轨迹特点的筛选得出一部分存在嫌疑的人员名单,再由民警通过所得的人员名单与前科人员数据库进行对比,分析其近期是否存在异常的消费记录、住宿信息以及通话信息等等。通过对于这一系列的数据分析,从而缩小侦查范围,排查出有嫌疑的人员。根据所得的嫌疑人名单进行进一步的侦查工作,以由“由人到案”为基本思想进行铁路旅财案件的侦破工作。综上所述,根据旅客乘车数据进行数据挖掘能够真正挖掘出数据的潜在价值,为旅客侵财型案件的侦破提供指导方向。但是仅依靠铁路旅客乘车数据的挖掘远远不够用于应对实际作战中遇到的种种现象,还需要结合各项其他数据进行综合的分析,以此才能够得出较为准确的分析结论。

在大数据、Python数据分析等技术支持手段的支持之下,重视铁路公路大数据系统建设,基于科学理念为支持,强化信息建设与完善,重视信息数据采集,提根本上提升铁路信息化管理能力,为智慧铁路公安系统建设奠定了基础。以“智慧铁路”为思想指导,更加有效的利用收集到的铁路数据,改变以往传统的办案方式,从传统的“由案到人”变为“由人到案”,被动变为主动,主动分析乘客的乘车数据,找到有嫌疑的乘客数据,并将数据及时反馈给一线铁路民警,提高防范意识,预防制止违法犯罪。在信息数据的支持之下的凸显铁路公安信息系统的预警、分析作用,提前做好预警准备,可以真正的做到精确打击铁路扒窃的违法犯罪行为。

猜你喜欢

铁路
沿着中老铁路一路向南
铁路通信承载网常用接口协议转换应用研究
铁路通信线路维护体制改革探索与实践
无人机在铁路工程建设中的应用与思考
GSM-R在铁路通信中的应用
梦想在铁路人心中流淌