本文是一篇计算机软件论文研究,本文的主要研究工作如下:(1)改进了一种流数据清洗方法。传感器和移动便携式设备采集的流数据中往往存在着噪声、数据冗余等现象,在对流数据进行挖掘之前,需要通过有效的方法对流数据进行数据清洗以提高数据质量。然而,正如文中所描述的那样,由于流数据的属性较为特殊,是实时不断、持续达到的,因此数据清洗过程往往更加困难。本文针对流数据的特点对其清洗过程进行了研究,改进了一种基于语义的轨迹流数据清洗方法,该方法主要流程包括:滑动窗口获取数据子集,提取候选停留点,提取语义停留点,获取停留点候选区,提取停留点候选区内的停留和移动。文中和使用同一份数据进行清洗的方法进行结果比较分析,验证了本方法的优越性。
第一章 绪论
第一节 研究背景
随着物联网产业的日渐发展与成熟,便携式传感设备和移动设备被广泛的应用在人们的日常生活和社会生产环境中。这些设备在金融经济、社会科学、自然环境、工业发展等各个领域产生了海量的数据,例如人类生活的行为轨迹数据、人口普查信息数据、网络定位数据、自然环境记录数据等等。据欧洲委员会预测,到 2020 年移动设备将更加深入人们的日常生活,会给众多研究领域带来众多全新的数据,如何高效的存储、利用这些数据也成为了一个迫切需要解决的问题[1]。这些数据有多种研究用途,例如环境数据可用于预测人类生存条件的变化趋势[2]、交通轨迹流数据可用于支撑实时导航技术的加速更新[3]以及人们日常生活行为动态数据可挖掘出日常生活中的频繁模式项从而准确地进行喜好推送[4]等等。由此可见数据所蕴含的价值是巨大的,在各个领域需要使用合适的方法对数据进行研究,挖掘出潜在的价值。
这类由传感设备或移动设备产生的数据往往被称为流数据(streaming data),和传统类型数据不同的是,流数据具有随着时间序列而实时到达、快速增长、持续不断等特点。由于流数据总是持续不断的带来“新鲜”的数据,相较于传统数据,这类数据更多的携带着实时的热点信息。这些信息反映了当下最热门、最具有经济效益的研究方向,这对企业来讲是极具吸引力的,因此众多的企业组织会投入大量的时间、成本去搜集和分析数据以求获得更高的经济价值。
但是投入的够多、数据量够大不一定就代表有用的信息或者数据本身价值的增大,相反很多时候由于数据体积过于庞大,会导致垃圾数据的泛滥[5]。因此如果过多的关注对数据的分析而不注意数据本身质量,会为此会付出沉重的代价。Laranjeior N 等[6]在文章中提出数据的质量对研究存在至关重要的影响,数据的质量问题会给企业造成重大影响--会降低企业参与者(例如员工、客户或供应商)的满意度从而不利于企业的管理、使得生产率低下最终影响产品质量、使得企业投资风险加大从而降低企业的利润及增加了企业的运营成本。
.......................
第二节 研究现状及意义
一、国内外研究现状
为了保证数据挖掘的质量,在进行数据挖掘之前,需要对数据进行清洗。为了达到这个目的国内外的众多专家学者对此进行了研究。
基于数据间关系的清洗方式:Song S 等[14]提出一种基于约束条件的流数据清理方法——利用数据到达速度作为限制条件,依据数据间的最小距离来修复误差数据。与平滑方法相比,该方法时间性能有所改善且修复数据精度更高。但此法注重于修复,不能有效去除冗余,清洗后的数据量依旧很大。流数据的数据质量除了受到大面积误差或大的尖峰误差的影响外,不严重偏离事实的小错误也会影响到数据的质量。Zhang A 等[15]提出一种基于统计的数据清洗方法,通过已到达的连续数据速度的概率分布来对异常数据进行清理,确保数据的准确性。实验证明此方法可有效修复偏离事实较小的小错误,但对大面积的异常或连续异常数据的修复效果不佳,达不到提高整体数据质量的要求。Bohannon P 等[19]提出一种基于元组对的启发式修复方法,通过对元数据的约束协调,调整约束条件中的最大最小值以减少对待清洗数据的影响,提高对重复数据的检测率。经过实验验证,该方法可以有效的提高数据的质量且控制成本投入,但该方法在半结构化数据的清洗效果上还有待考量。Mayfield C 等[20]尝试建立模型来寻找数据间的依赖关系,通过数据间依赖关系的属性来对数据进行清理,结果表明清洗前后数据的差异性并不是很明显且该方法不适用于无明显依赖关系的数据集,例如单个数据流。
基于属性的建模清洗方法:Yakout M 等[21]将带有脏值的属性称为可用属性,将其他属性称为可靠属性。在可用属性和可靠属性之间建模获取依赖度,用最大替换可能性选取可靠属性的正确值,并将其用于脏值的清洗。但这种方法不适用于带有顺序规律的数据,无法确定属性间的依赖度。Hill D [22]、Takeuchi J [23]使用一种 AR(Autoregression)即不考虑数据标记模型对异常值进行检测修复,从而达到数据清洗的目的。但该方法作用于异常值显著时,例如汽车油缸内剩余的油量为-30 升,但当异常值与真实数值十分接近时,该方法效果不佳。Park G [24]考虑使用 ARX(Autoregressive model with exogenous inputs)即支持数据标记模型来进行异常值检测修复。
..........................
第二章 理论基础
第一节 滑动窗口技术
由于流数据是连续不断、按时间顺序到达的一种数据形式,一般很难预测数据的终点状态。普遍的在进行流数据的相关研究时不会考虑使用全部的数据,而是将重点放在最近时间段的数据,因为最近时间段的数据反映的是当前最新的实际情况。滑动窗口(sliding window model)技术能依据流数据的特性,很好地处理最近时间段的数据。Brakatsoulas S 等[36]提出在研究中使用滑动窗口技术的需求来自于算法和应用层面。在算法层面,滑动窗口有效减少了当前算法需要处理的数据量,给算法的时间复杂度和空间复杂度带来较小的压力;也降低了对设备性能和内存的要求。在应用层面,有些应用要求不断更新数据处理的结果,即当有一个新数据进入到滑动窗口的范围,就要剔除一个最早进入滑动窗口范围的数据。这就要求算法能够及时地调整数据的范围,将滑动窗口滑出的数据剔除,并加入新的数据用于更新结果。为解决上述应用层面的问题,张忠平等[51]提出一种最直接的做法--直接保存滑动窗口内的所有数据,当部分数据超出时间间隔需要被剔除时,将这部分的数据从计算结果中剔除。可以精准地对滑动窗口内的计算结果进行及时地更新。但在存储内存方面带来了新的压力,由于要保存滑动窗口内的所有数据,要确保设备有足够大小的存储内存;且进行数据计算时会发生存取行为,这对设备的运行内存也有一定的要求。为了解决滑动窗口内数据占用存储内存的问题,文献[52,53]提出了一种降低精度以减少体积的方法—将流数据划分为固定长度的子集,对每个子集仅保存子集的摘要信息。在算法运行时,不再是将滑动窗口内的每个数据加入到计算中来,而是将滑动窗口内固定大小的子集提取出来的概要信息加入到计算当中,以达到计算结果更新的目的。当新的数据到来时,之前的子集失去了时效性,只需将提取的摘要信息加以存储,就能达到降低对内存要求的目的。这种方法降低了计算精度,但有效缓解了存储的压力,内存只需要存储每个固定长度的子集提炼出来的概要信息而并非每个数据项,同时也降低了计算的复杂度。
..........................
第二节 停留点和移动
轨迹数据产生于车辆的移动、人类的行走、动物的迁徙等行为活动中,这种源于生活的数据往往蕴藏着大量有价值的信息,因此,对它的分析研究也一直没有停歇过。传统的轨迹数据以原始时空位置的形式展现,比如车辆移动轨迹数据会以编号、时间、地点、经纬度的形式展现,但这种数据表现方式并不能体现对象的“运动状态”且运动的空间类型得不到体现。然而在对数据进行分析的过程中,需要的是体现对象运动结构化的数据记录即时间序列间隔,从行程的开始到结束,每一个停留的点都需要被标记,停留的点之间行程段都要在对象的运动中占据一定的时间间隔,为此 Spaccapietra S 等[49]将传统的概念模型扩展到覆盖时空建模维度,从而定义了一个新的轨迹数据模型。
..............................
第三章 基于语义的轨迹流数据清洗模型及算法步骤 ........... 18
第一节 基于语义的轨迹流数据数据清洗模型 ......................... 18
第二节 算法步骤 ......................... 21
第三节 语义网格聚类 ................................ 25
第四章 实验与结论 ....................................... 30
第一节 实验环境 ............................ 30
第二节 数据概括 ......................... 30
第三节 数据分析 ............................... 31
第五章 总结与展望 ................. 42
第一节 研究总结 ........................ 42
第二节 研究展望 .............