论文部分内容阅读
本课题源自北京某智慧园区项目。随着智慧城市概念的提出,越来越多的智能化服务被开发出来,为人们提供了诸多便利。城市一卡通是智慧城市的一部分,和人们的生活息息相关,系统每天产生的大量刷卡数据,对我们数据的分析和管理工作提出了很大的挑战。数据分析系统可以实时的从刷卡数据中发现异常并及时预警,将被盗或者遗失的一卡通进行账户冻结和权限锁定,以减少用户的损失,这样的数据分析体系对于智慧城市一卡通系统来说是必要的。本课题讨论的内容是城市一卡通数据分析系统的研究与实现,实时分析刷卡数据,检测一卡通的各种异常情况,为刷卡数据的异常检测提供一站式解决方案。由于城市人口众多,刷卡行为发生较为频繁,用户刷卡产生的数据量是传统数据处理方式无法应对的,需要采用大数据分布式系统架构。数据分析系统可以识别出短时间内频繁刷卡、消费金额过大、刷卡失败过多、刷卡行为不符合习惯等异常情况。系统采用Lambda架构,以Spark内存计算框架作为出发点,运用机器学习方法,使用历史刷卡数据进行模型训练,采用流式计算框架Spark Streaming调用模型来处理实时的刷卡数据。刷卡数据通过WebService从刷卡终端传送到一卡通业务系统中,经过预处理后交由发布订阅系统Kafka来处理,Spark Streaming从Kafka中读取预处理后的数据进行分析。数据的预处理部分将一天的时间划分为不同的时间段,对每个时间段内用户的刷卡数据进行统计和特征值提取。数据分析的过程采用聚类的思想,聚类算法在异常检测中占有着重要的地位。本文在算法的设计上,根据一卡通刷卡数据的特性,将聚类模型分为两大类:公有模型和私有模型。公有模型利用较多的特征值进行模型的训练,所有用户共享同一模型;私有模型采用最能体现用户刷卡行为特性的少量特征值进行聚类,以保证模型的简洁程度,每位用户具有一套私有模型。公有模型的作用是根据丰富的特征值将异常较为明显的离群数据筛选出来;私有模型是根据每位用户的刷卡习惯来判断刷卡数据是否异常,结合两种模型的判断结果,综合判定该一卡通是否为异常状态。论文的实验部分是采用北京某智慧园区的历史刷卡数据进行模拟的,通过对历史数据的训练,得到我们需要的公有模型和私有模型,使用异常数据对系统进行检测,预测的准确率在80%以上。由于数据模型迭代的原因,随着系统运行时间的增加,预测的准确性稳步提升,表明了算法设计的合理性。在刷卡高峰时段,系统可以平稳的处理堆积在Kafka集群中的刷卡数据,稳定性和实时性较高,达到了预期效果。