第38卷 第5期2020年 5月数字技术与应用Digital Technology &ApplicationVol.38 No.5May 2020期2020年第 5 应用研究DOI:10.19695/j.cnki.cn12-1369.2020.05.21基于Python的铁路旅财数据挖掘与分析*郑涵之 叶燊 王晓凯(南京森林警察学院,江苏南京 210023)摘要:铁路旅财案件的现场痕迹易被破坏,嫌疑人作案时空具有一定选择性,通过分析旅客乘车数据,可以从大量乘客中找出有作案嫌疑的乘客。运用Python语言编写算法,服务于一线铁路民警,减少重复性人工操作,节约警力。关键词:铁路;旅财案件;Python中图分类号:TP311.13文献标识码:A文章编号:1007-9416(2020)05-0033-020 引言旅客运输是铁路运输生产的重要方面,铁路车站是一个将自四面八方的旅客高度聚集的、流动的公共场所。旅财案件,即旅客财物被盗案件,也是铁路区域内的多发性案件。所谓的铁路旅财案件就是指在铁路上实施的侵犯旅客财产的犯罪行为,即列车上行窃即可称为旅财案件。犯罪主体具有多样性,犯罪分子作案一般都有个对作案环境和目标的熟悉情况有所了解。这不仅是犯罪分子作案的预备、对作案目标的选择问题,也是其犯罪心理安全的需要。所以,犯罪分子的作案活动要么选择自己熟悉的环境,要么事先进行踩点、预谋。铁路站车是一个特殊的地域和社会环境,这里面的环境格局、设施设备、人员岗位、生产作业流程、旅客旅行过程以及警察的勤务活动等都有一定的规范性和特殊性。虽然火车票实名制的实施为破获侵财案件提供了一些便利,公安机关可以根据购票人信息顺藤摸瓜,查找作案人,但一些车站并未严格实行实名制检票,从而为不法分子提供了可乘之机,他们或用虚假身份证购票,或用他人身份证购票,为案件侦破带来了重重障碍[1]。Python是一种跨平台的计算机程序设计语言,是一种面向对象的动态类型语言,提供了多个数据分析的模块,如pandas库、numpy库和openpyxl库等,以及可以连接ftp的功能模块如ftplib库等,可以高效地实现对旅财案件嫌疑人乘车轨迹的数据进行分析的任务。或趁上车人多拥挤时下手,或跟随目标上车后伺机作案。失主往往短时间内难以发现财物被盗[3]。经总结旅财案件嫌疑人存在以下作案规律:(1)为作案得手后及时逃脱,且不引起其他乘客注意力,一般不携带儿童。(部分以儿童为掩护实施盗窃的作案人例外)(2)作案人以男性为主,且年龄主要在16到50岁之间,年龄跨度较大。不能够仅仅凭借年龄作为筛选的主要条件。(3)作案人购买的车票票价一般较低,且以普通座次为主,票价多在300元以下。以此来降低自己的作案成本,提高作案所得。(4)作案人的乘车轨迹较为复杂、繁琐,存在短期内的多次乘车,购买了与之前购票规律不符的车票(存在盗用身份证的嫌疑),乘车轨迹出现大量“断点”(不连续)等,且存在较高的“断点比率”,根据之前的案件数据分析得出断点比率在75%以上的乘客乘车数据,大多存在一定的异常现象。在旅财案件中,嫌疑人的旅客乘车数据中最为明显就是“断点”,所谓的“断点”就是在一段时间内,一个人的乘车轨迹不连续,如从一开始的乘车轨迹为南京到上海而下一次的乘车轨迹却是从常州到无锡,这就是所谓的“断点”。因为,大多数嫌疑人会在得手之后直接在就近的车站提前下车,然后通过车票提前出站,而下一次再购票乘车的出发站就与之前轨迹的到达站不一致,这就导致了乘车轨迹的不连续。所以,如果一个人在一段时间内的乘车轨迹存在大量的“断点”,这个人的乘车轨迹就存在问题,从一定角度上说就存在作案的嫌疑。1 嫌疑人作案规律研究铁路旅财案件的作案人无论是惯犯、流窜犯,还是临时起意的人员,大多都熟知客运规律和站车地形。不法分子会选择自己熟悉的地方作案,这样既容易得手,又便于及时销赃和逃逸。铁路客运规律和站车地形都有其特殊性,如列车的运行和站停有一定规律、人财物高度集中又流动性大、旅客之间多互不认识、车站出口较多等,对此不熟悉的人会感到茫然而拘谨,而熟悉站车地形和客运规律的人作起案来则是轻车熟路[2]。在公安机关的打击和宣传下,旅客对侵财案件的传统作案手法已经有所警惕,作案人不得不采取更加多样化、智能化的作案手段。如作案人事先踩点、预谋,趁旅客在售票厅购票时暗中观察旅客的钱财数量和放置位置等情况信息,或趁旅客不注意时盗走其财物,收稿日期:2020-04-162 基于Python的铁路旅财数据分析软件设计处理数据的流程即先从发生盗窃的列车上的旅客数据进行分析处理,从中去除一些作案嫌疑较小的乘客,如女性乘客(铁路旅财案件的嫌疑人以男性为主);携带儿童的乘客;乘车距离较长票价较贵的乘客;年龄大于60岁的老人(根据大量案例的数据分析以及民警的办案经验,铁路旅财案件的作案人员年龄分布较广,作案人年龄可跨越16岁到60岁不等)等。并且从中寻找是否有前科人员乘坐该次列车,若有则将其作为重点分析对象,单独进行分析;如果无,则考虑是否存在冒用身份等情况。通过种种条件来对于庞大的乘客个人信息数据进行筛选,缩小侦查范围。并且设置“断点比率”,以75%为阈值,高于这个值的人员将被归为重点嫌疑人员。*基金项目:2019年度南京森林警察学院大学生创新创业训练计划资金项目“基于python的铁路旅财案件的挖掘与应用”,项目编号: 201912213010XY。作者简介:郑涵之,男,福建宁德人,本科,研究方向:公安情报学。Copyright©博看网 www.bookan.com.cn. All Rights Reserved.33第 38 卷 数字技术与应用 www.szjsyyy.com本软件用Python语言进行编写,以针对旅财案件的“断点”模型自动化分析为主要功能,其中“断点”模型以“断点”和“断点”比率为主要特征作为筛选条件,辅以年龄、性别、网络购票等特征进一步筛选,实现了整套流程的自动化分析以及信息推送。其它功能还包括:碰撞法寻找旅财人员和逃票人员的轨迹“断点”、铁路旅财案件自动筛选管辖前科人员、前科人员以及案情信息查询、15位身份证转换为18位身份证、提供丰富快捷的信息查询筛选功能、从指定ftp下载数据、上传数据至指定ftp等功能(软件的每个数据处理模块都默认先将所有数据进行数据清洗、去重以及按照身份证号排序)。interval方法设置触发器和定时自动触发的时间间隔,实现了精细化的控制。在此大框架下编写具体要执行的定时任务:利用ftplib.FTP方法登录ftp获取数据,通过模拟菜单界面使用户查看当前路径下的文件,确定需要选择的文件,软件会运用csv.reader方法预览原文件,针对有最新乘车记录的前科人员,确定其管辖范围属于管内车站还是管内车次,处理结果用open方法和write方法分别写入所属辖区各所以及乘警队的txt文件中,将数据存储在本地并且分析完毕后在自动定时上传到指定ftp上完成推送,实现了动态防控。2.4 碰撞法找“断点”除了上文提到的分析“断点”的方法,还有一种方法即碰撞法。这种寻找“断点”的方法适用于从普通乘客中分离出铁路逃票嫌疑人。例如一条铁路沿线分别有A、B、C三站,将同一天(或若干天)内从A到B和从C到B的乘客数据进行碰撞,碰撞结果即为出现轨迹“断点”的人员。这种方法更适合在已知固定乘车区间内寻找经常逃票的人员。将乘车区间互为反向的两种乘车数据放入指定文件夹下的“正向”和“反向”目录下(“正向”“反向”为相对的,自行定义某一方向为正向即可,另一方向就为反向)即可自动分析,分析结果文件以时间作为命名格式。2.1 铁路旅财案件“断点”模型自动化分析软件初始页面有六个功能模块可供选择,输入数字“1”选择功能一,将需要分析的excel文件放入指定路径下,软件自动分析完毕后会利用pandas.DataFrame方法和pandas.set_option方法提供预览,预览结果中会运用sorted方法和operator.itemgetter方法将所有人根据出现“断点”次数降序进行排序和汇总。预览“断点”分析结果,可以看到软件会将乘客每条轨迹数据标记上是否为断点,并将每个乘客按照断点次数降序排列。软件在指定路径中自动生成名为“断点结果”的文件夹,即可将多个excel表格中的所有乘车数据汇总结果到结果中,并且以时间来命名,解决了同一人的乘车数据出现在多个excel文件中的问题。处理后的数据格式新增了“性别”“年龄”“是否网络购票”“车站是否有人脸识别”“此条轨迹是否为断点”这5个新的字段。每个人的最后一条乘车数据显示为“无效值”,因为在设计“断点”算法时将每一个人的轨迹以时间先后顺序从前向后进行“断点”比较计算的,最后一条轨迹数据没有向后的比较值,所以作为“无效值”,不影响“断点”比率的计算;若某个人只有一条轨迹数据,则标记为“无效值”。前期经过数据清洗、去重以及按照身份证和时间排序后,先通过xlrd模块和openpyxl模块读取整个excel文件并记录其所有数据条数,再通过while循环将循环次数限制在与数据条数相同,并对比某一条数据的身份证列与下一条数据是否相同,若相同,则说明这两条数据是同一个人,就可以将本条数据的到站与下一条数据的发站进行比较,来得出本条数据是否为“断点”;若本条数据的身份证列与下一条数据不相同,则说明该条数据是该人的轨迹中最后一条数据,因而无法与下一条数据比较,即标识“无效值”。在给每一条轨迹数据标记了是否为“断点”之后,再运用collections.counter方法计算每个人的轨迹数据总数,再计算每个人的“断点”轨迹数占个人轨迹数据总数的比重,即为“断点”比率。3 结语该分析过程可总结为通过一系列对于乘车轨迹特点的筛选得出一部分存在嫌疑的人员名单,再由民警通过所得的人员名单与前科人员数据库进行对比,分析其近期是否存在异常的消费记录、住宿信息以及通话信息等等。通过对于这一系列的数据分析,从而缩小侦查范围,排查出有嫌疑的人员。根据所得的嫌疑人名单进行进一步的侦查工作,以由“由人到案”为基本思想进行铁路旅财案件的侦破工作。综上所述,根据旅客乘车数据进行数据挖掘能够真正挖掘出数据的潜在价值,为旅客侵财型案件的侦破提供指导方向。但是仅依靠铁路旅客乘车数据的挖掘远远不够用于应对实际作战中遇到的种种现象,还需要结合各项其他数据进行综合的分析,以此才能够得出较为准确的分析结论。在大数据、Python数据分析等技术支持手段的支持之下,重视铁路公路大数据系统建设,基于科学理念为支持,强化信息建设与完善,重视信息数据采集,提根本上提升铁路信息化管理能力,为智慧铁路公安系统建设奠定了基础。以“智慧铁路”为思想指导,更加有效的利用收集到的铁路数据,改变以往传统的办案方式,从传统的“由案到人”变为“由人到案”,被动变为主动,主动分析乘客的乘车数据,找到有嫌疑的乘客数据,并将数据及时反馈给一线铁路民警,提高防范意识,预防制止违法犯罪。在信息数据的支持之下的凸显铁路公安信息系统的预警、分析作用,提前做好预警准备,可以真正的做到精确打击铁路扒窃的违法犯罪行为。参考文献[1] 颜超.以数据为中心业务流程模型的访问控制技术研究[D].北京:东华大学,2012.[2] 刘宝真.旅客列车侵财案件研究[J].铁道警察学院学报,2015,25(3):19-23.[3] 张秋波,郭永良,梁秀波.公安情报法治化若干问题研究[J].江西警察学院学报,2015(5):50-52.2.2 前科人员信息查询本模块主要利用python中的xlrd和xlwt模块读取excel文件中内容进行索引查找和数据的挖掘。根据命令提示在指定路径下放入原始的案情表和人员信息表。软件会通过os.listdir方法判断指定路径下是否放入文件,若没有放入文件则会提示先放入文件在执行关键词查询。放入文件后先输入需要查找的关键字1,再输入其它需要查找的关键字2,3,4……,若需要所有上述关键字搜索的结果,则输入“并集”;若需要同时满足上述所有关键字的搜索结果,则输入“交集”。完成搜索的同时,软件也会自动将部分旧版的15位身份证转换为新版的18位身份证。对于在数据源中有港澳通行证的乘客,软件也会将港澳通行证号放在身份证后面提供预览。2.3 自动定时爬取数据进行分析并推送python定时任务框架Apscheduler提供了非常丰富而且方便易用的定时任务接口,主要运用其中用BlockingScheduler调度器和······下转第36页34Copyright©博看网 www.bookan.com.cn. All Rights Reserved.第 38 卷 数字技术与应用 www.szjsyyy.com管理,另一个是ESB管理中心平台,用于管理主数据与其他系统的数据传输。C集团通过主数据管理平台,将财务系统集成所必须的主数据进行治理以后,利用企业服务总线(ESB)将双方所需要的数据进行交互。主数据通过ESB平台,按照一定的分发策略,将治理后的主数据发送给接入平台的其他系统[2]。C集团的主数据可以分成单向传输主数据和双向传输主数据两类。单向传输的主数据有全局科目、辅助核算项目、税率、自定以档案类型等,这些数据只能从C集团的服务器向其他异构系统分发,其主要目的是确保集团管控标准的统一。双向传输的主数据有客商、重点工程等,这类数据在三个系统间共享,只要一方的数据进入主数据平台,就会向另外两个系统进行分发。因此数据分发策略不仅可以体现集团管控意图,它还可以提高管控能力和数据使用效率,减轻业务人员工作量。C集团主数据集成和分发策略如图1所示:过相关制度,来规范主数据的申请、变更、修改流程,明确主数据管理流程中各个参与者的相关职责。如果双向传输的主数据采用人工维护的方式,则必须使用审批流程,对数据质量进行控制,同时集团公司要对质量控制的效果进行评价和考核,从而提高数据管理的严肃性。3.2 提高主数据管理效率和质量目前C集团数据维护采用人工审核,其中以客商审核为主,需要将系统的信息和天眼查或统一信用代码查询系统等网站的数据进行核对,审核的效率相对较低。如果想提高效率,可以与金税系统的进行对接,将金税系统中给系统单位开票的客商自动导入主数据系统,而不需要走审批程序。但是,目前金税系统的缺陷在于其数据库更新速度与工商部门的数据库不同步,特别是个体工商户,其老税号在国税系统依然可以使用,从而出现工商和税务的数据二元性,因此会有部分数据不符合主数据管理要求。在此也希望政府部门之间的这些主数据能够早日实现互通共享,为纳税人的信息化建设提供一个统一可靠的数据来源。3 主数据管理的注意事项3.1 建立主数据管理标准(1)建立数据标准。数据标准要做到“三定”,一定数据来源,保证数据源的唯一性;二定数据结构,明确数据的属性,字段内容、编码规则;三定数据关系,要明确历史数据之间的映射关系,从而确保在后续的数据传输过程中不会因为历史数据的对应关系没有做好而平凡出现传输失败的情况。(2)建立服务标准。由于主数据管理系统在开发完成后可自动运转,但受主数据质量影响,客观上会出现个别数据传输失败的情况,这时就需要有专业人员查找传输失败的原因,并进行处理。因此在项目验收之前,要把后续运维服务的响应时间、处理标准等内容进行明确,以便需要时可以得到及时的技术支持,确保系统接口的和数据传输的稳定性。(3)建立管理标准。主数据管理系统建立以后,必须保证主数据的唯一性和准确性,要制定后期数据维护标准,确保要求不降低,口径不走样。为此,我们需要通4 结语总之,随着市场经济的发展,企业会计信息化建设的进程必将进一步深化,特别是大型国有企业集团,会计信息系统的一体化是市场竞争和企业发展的必然选择,而主数据管理是大型国有企业集团在特定时期,提高信息化水平的重要工具。参考文献[1] 葛红蕾.数据分析在企业财务管理中的运用[J].财会学习,2018(26):58.[2] 石晓斐,乔彬.主数据管理在企业信息化中的研究和应用[J].数字技术与应用,2016(4):83.Application of Master Data Management in Financial System Integration of State-owned Enterprise Groups——Taking Group C Master Data Project as an ExampleZHOU Xue-cheng(Hangzhou Urban Construction Investment Group Co., Ltd., Hangzhou Zhejiang 310000)Abstract:This paper takes the master data project of group C as an example, this paper discusses how to use the master data platform to completethe financial heterogeneous system integration, to provide new ideas and reference for the accounting information construction of state-owned enterprisegroups.Key words:master data management; group C; financial system integration······上接第34页Data Mining and Analysis of Railway Travel Finance Based on PythonZHENG Han-zhi, YE Shen, WANG Xiao-kai(Nanjing Forest Police College, Nanjing Jiangsu 210023)Abstract:Railway passenger property case’s scene trace is easy to be destroyed,the crime time and space of the suspect is selective,by analyzingpassenger travel data, it is possible to identify suspects among a large number of passengers.Use Python language to write algorithms to serve the railwaypolice,reduce repetitive manual operation, and save police force.Key words:railway;passenger property cases;Python36Copyright©博看网 www.bookan.com.cn. All Rights Reserved.