面向大数据的时空数据挖掘

  空间数据的理解

  空间数据是指用来表示空间实体的地理位置和分布特征等方面信息的数据,表述了空间实体或目标事件随地理位置的不同而发生的变化。空间数据是数据的一种特殊类型,它是指带有空间坐标的数据,这类数据通常是地图文件,用点、线、面以及实体等基本空间数据结构来表示。一个地图文件通常只包含一种类型的空间数据结构,比如面(代表国家或者地区),线(代表道路或者河流)或点(代表特定的地址)。如果想要比较复杂的地图文件,其中包含多种空间数据结构的话,通常需要多个地图文件迭加来获得。除了地图信息,空间数据还包括地图信息的背景数据,用来描述地图文件上的对象属性。比如,一个地图文件包含街道,那么就需要相应的背景数据来描述了该街道的大小,名字或者一些分类信息(分行道,单行道,双行道,禁止通行等)。

  上述案例一中,亚特兰大某地区的地理信息即地图文件就是空间数据,描述了该地区的拓扑结构,以多边形来表示该地区的不同区域。同样,在案例二中,斯波坎市的部分地图信息就是空间数据,描述了斯波坎市的空间地理分布情况,用多边形表示斯波坎市的 10 个不同地区,用线表示斯波坎市的 23 条主要街道。

  事件数据的理解

  事件数据是指事务性的数据,表述了在某个时间区间某个地理范围之内所发生的事件。事件数据通常和时间数据相关,甚至时间数据本身同时也是事件数据,都是在某个时间序列上发生的一系列事件。不同的是,时间数据的关注点是目标事件发生的时间,或者说是时间序列数据中的时间变量,而事件数据的关注点是在某个时间序列上发生的事件。事件数据一般不会和地图文件直接相关,而是包含坐标值来关联事件数据和地图文件。事件数据的每一条记录通常都指的是某个特定的人或事,并且包括和该人或事相关的其他信息,比如该人或事的具体地理位置。

  上述案例一中,该地区从 1997 年到 2005 年已有银行分行的位置分布情况就是事件数据,描述银行分行的地理位置,并包含坐标值和该地区的地图文件相关联。在案例二中,从 2009 年 1 月到 2010 年 3 月发生的犯罪事件同时也是事件数据,描述不同的犯罪类型,吸毒、抢劫和车辆盗窃,分别发生在斯波坎市的不同区域。

  时空数据预处理

  时空数据结构复杂且来源多样,在充分理解了时间数据,空间数据和事件数据的特征、属性及他们之间的关联关系的基础上,整合、清洗和转换不同来源的时空数据,使得他们符合特定时空数据挖掘算法的要求,是时空数据预处理面临的重要问题。本节我们将结合 IBM SPSS Modeler 详细介绍时空数据预处理的方法和步骤。

  时间数据预处理

  时间序列数据结构复杂且来源多样,如何将不同来源的时间序列数据合并并用于时空数据分析,是时空数据预处理面临的首要问题。不同时间序列数据的时间起点及时间间隔都不尽相同,想要合并多个时间序列数据就必须要求每个时间序列数据具有相同的时间间隔,这就需要对各个时间变量的时间间隔进行构建。在 IBM SPSS Modeler 中,时间间隔的构建有两种方法,汇总和填充。

  汇总是一个经常用于减小数据集大小的数据准备手段。执行汇总之前,应该花一些时间来清理数据,尤其要关注缺失值。一旦完成汇总,或许会丢失可能有用的缺失值信息。我们可以选择基于指定的汇总函数来汇总时间间隔较小的数据,不同类型的数据可以用不同的汇总函数。连续性时间变量可以通过均值、合计、众数、最小值和最大值来汇总,而离散型变量则可以通过众数、第一个和最后一个汇总组中的非空值来汇总。

  填充是用于替换字段值的一种方法,也可以用来将空白值或空值指定为特定值。我们也可以选择基于指定的填充函数来替换字段值,同样,不同类型的数据可以用不同的填充函数。连续性时间变量可以使用"最近点的平均值",即将要创建的时间周期之前的三个最近非空值的均值来替换或者填充新的字段值,而离散型时间变量则可以用将要创建的时间周期之前的最近非空值来替换或者填充新的字段值。

  在将多来源的时间序列数据合并的过程中,我们需要根据指定的时间间隔来选择汇总或者填充时间字段。例如,如果有以周和月为单位的混合数据,则可以对周值进行汇总或"累计",以获得均匀的月间隔。或者,也可以将间隔设置为周,并通过为所有缺失周插入空白值或使用指定的填充函数外推缺失值来填充序列。