数据来自2020年第十一届服务外包创新大赛A06赛题。
数据清洗
与定位误差不超过10米、时间采样均匀的GPS数据相比,手机信令数据的精确度较低且时间间隔不均匀,因此更需要对其进行数据清洗,下面对手机信令数据的特征做具体分析:
(1)存在大量脏数据
在数据清洗领域中,脏数据被定义为那些不在给定的范围内、对于实际业务毫无意义、或是数据格式非法、以及错误操作发生时产生的数据。移动通信网络在设计之初的主要目的是为了便利全球用户的移动通信,并未考虑对手机用户进行精确定位的需求,加上通信环境复杂所导致的多径效益、漂移效应等,使得手机信令数据中既包含大量的常规脏数据,即空值、重复值、错误值等,也包含漂移数据这类由于基站架设缺陷或是高层建筑干扰所产生的数据。因此,在对手机信令数据进行进一步的挖掘之前,首先对数据进行清洗是十分必要的。
(2)数据量巨大
据工业和信息化部统计显示,2018年我国净增移动电话用户达到1.49亿户,总数达到15.7亿户,移动电话用户普及率达到112.2部/百人,比2017年末提高了10.2部/百人。数据同时显示,2018年,全国净增移动通信基站29万个,总数达648万个。其中4G基站净增43.9万个,总数达到372万个。4G用户总数达到11.7亿户,全年净增1.69亿户。同时,手机产生的信令数据量也在不断上升。通常中国一线城市,每分钟产生的信令数据量高达180兆,即每天15亿条数据。潍坊电信于2015年9月1日产出的数据总量为4.14G,共包含19万用户一共7733万个轨迹点。由此可见常规的单节点计算机是无法满足如此巨大的计算需求的,因此本文使用Hadoop分布式系统作为数据处理的平台。
(3)时间间隔不均匀
手机用户的主被动上网行为均具有不确定性,这导致了每名手机用户轨迹点的时间采样间隔并不均匀。某些连续点的采样间隔不足1秒,但有些连续点的采样间隔却有数分钟,如何在信令数据清洗与挖掘过程中规避其时间间隔不均匀的缺陷,是后续需要考虑的问题。
针对手机信令数据中包含大量脏数据的问题,本章设计了一种针对手机信令数据的层次化清洗方案:首先将手机信令数据看作常规数据,清洗掉其中的无效数据;随后针对手机信令数据所特有的漂移及乒乓切换现象,设计相应的算法对其进行处理,最后将清洗后的数据以人为单位按时间正序排序。
数据清洗过程:
1、清洗无效数据
无效数据通常包括异常记录和重复记录。
(1)缺失数据属于一种异常记录,由于信令系统可能会出现不稳定等情况,则会造成少量的数据缺失,这些缺失数据必然会对后续的分析带来严重的影响,因此需要将其进行剔除。通过遍历数据表中的所有字段,筛选出多个字段为空值的记录,并将该数据行删除。若一条记录仅存在少数几个空值字段,则可采用采用均值、众数、最大值、最小值、中位数等方法补全数据。
(2)错误数据也是属于一种异常记录,这里的错误数据是指那些不在监测范围内的数据以及解码错误的数据。如,要统计数据字典中某一区域过夜信息(21:00-次日07:00)时,需要遍历数据表中相关字段的标签,将不在该区域和对应时间段内的数据过滤掉。
(3)重复数据是指各字段完全相同的连续数据,这种无效数据往往也是由于信令采集系统不稳定所造成的。大量的重复数据会增加运算成本,同时对于区域人口驻留信息、区域人口停留信息等停留点信息的识别会带来一定程度的误差。因此,采用基本字段匹配算法,对数据库数据的重复记录检测以及重复元素检测,识别出多条重复记录,将第一条记录的结束时间改为最后一条记录的结束时间,保留第一条记录即可。
2、处理异常数据
在实际情况下,由于移动通信网络自身存在的缺陷和外界环境的干扰,手机通信信号往往会受到多种因素的影响,于是所生成的手机信令数据会产生以下几种类型异常数据,很好的识别并剔除这些数据,能够有助于对人口密度及交通流量的监测。
(1)冗余数据
为了确保手机和基站之间不中断的联系,以实现阶段性的位置更新,因此需要手机隔一段时间向移动通信网络发送一条当前所谓的基站信息。但是当用户长时间停留在某一固定地点时,就会产生大量的位置更新信息,也就是是所谓的冗余位置数据。这些由于静止状态而产生的冗余信息是无法反映人口的动态特征,同时会增加无效数据量,因此不利于人口的动态监测,需要遍历所有用户记录,识别出由于不同原因所产生的冗余数据并将其剔除。例如,针对数据字典中的区域出现量统计,遍历所有用户记录,识别出小区编号和位置区编号字段长时间未发生变化的用户,也就意味着该用户没有出行,则在统计区域出现信息时不应考虑该用户。
(2)乒乓数据
乒乓数据是指手机在多个相邻近的基站间出现交替切换现象而产生的数据,但用户并未发生一定距离的移动行为。理论上,当用户移动到某一基站时,会自动切换到该基站的信号。实际上,在移动通信网络中由于无线电波传播过程中存在反射、绕射、散射等现象导致很短的时间段内信号出现异常的波动,也就是所谓的“乒乓效应”,可见这类数据会高估出行人口的数量,因此需要处理这些数据。遍历所有记录,识别出在两个基站间连续多次切换,且切换间隔仅为几秒钟的数据行,并将其剔除。
(3)漂移数据