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

  空间数据预处理

  我们已经知道,空间数据是数据的一种特殊类型,它是指带有空间坐标的数据,用点、线、面以及实体等基本空间数据结构来表示。但是空间坐标有不同的表达方式,有些空间数据的坐标是多个单维坐标形式,如用三个单独的字段 x, y, z 分别表示三维坐标; 有些空间数据的坐标是一个多维坐标形式,如用一个列表[x, y, z]来表示三维坐标。既然涉及坐标,就必然会关系到坐标系,而不同空间数据的坐标系往往不同。另外,和时间数据一样,空间数据来源多样,每个空间数据的基本数据结构都不尽相同,如何关联多种类型的数据结构同样是空间数据预处理面临的重要问题。

  首先来看多个单维坐标字段和一个多维坐标字段之间的转换,这个过程通常比较简单。在 IBM SPSS Modeler 中,这个过程只需要组合多个单维坐标字段即可实现,例如,直接用组合单独的坐标字段 x, y, z,返回的派生字段即为列表[x, y, z]。

  任何一个空间数据,不管是地图,坐标还是经纬度值,都会关联一个坐标系。坐标系定义了坐标值的原点,单位,正方向等,是坐标值的参照系。坐标系的种类很多,大体可以归纳为两大类,地理坐标系和投影坐标系。地理坐标系,是球面坐标系统,以经纬度为地图的存储单位的。投影坐标系,是平面坐标系统,其地图单位通常为米。要得到投影坐标就必须得有一个"拿来"投影的球面坐标,然后才能使用算法去投影,即每一个投影坐标系统都必须要求有地理坐标系参数。坐标转换是空间实体的位置描述,是从一种坐标系统变换到另一种坐标系统的过程,通过建立两个坐标系统之间一一对应关系来实现。在 IBM SPSS Modeler 中,我们可以选择一个或者多个坐标转换的地理字段,指定要转换的坐标系,从而实现多个地理字段统一坐标系的目的。

  如上所述,一个空间数据或地图文件通常只包含一种类型的空间数据结构,如果想要比较复杂的地图文件,其中包含多种空间数据结构的话,通常需要多个地图文件迭加来获得。比如,我们有面图表述某地区的不同区域和线图表述该地区的河流街道,那么如何得到不同的河流街道和各个地区之间的位置关系呢?在 IBM SPSS Modeler 中,我们可以通过位置函数来获得不同类型的空间数据结构之间的位置关系。例如,用 close_to()来确定某条河流是否靠近某个地区,用 distance()来获得两个地区或者两条街道之间的距离等。

  事件数据预处理

  事件数据是时空数据挖掘的主题,它的每一条记录都是特定的人或事,并且包括该人或事的相关信息,特别是发生的地理位置。事件数据的预处理通常是指和时间数据或者空间数据的整合,以便获得最终可以直接应用于时空数据挖掘算法的数据。具体内容详见下节时空数据的融合。

  时空数据的融合及展示

  上文我们已经了解了时空数据来源多样且结构复杂,不管是时间数据、空间数据还是事件数据都有其自身的特征和属性,如何融合各种数据并把结果展示出来对时空数据挖掘至关重要。

  时空数据的融合

  时空数据的融合通常是通过合并时间数据、空间数据和事件数据来完成的。数据合并的方法很多,可以按记录顺序合并,可以通过多个数据共有的关键字来合并,还可以根据自定义的条件进行合并。按关键字或者自定义条件合并又可分为内连接,全外连接,部分外连接等。

  事件数据和时间数据的融合可以通过关键字,譬如区域 ID 号,邮政编码,事件发生时间等来实现。例如,在上述案例一中,我们可以设置区域 ID 号或者时间字段为关键字来融合从 1997 年到 2005 年的银行分行分布数据和人口统计数据。

  由于涉及空间地理位置,事件数据和空间数据的融合通常按照事件数据进行左外连接。在 IBM SPSS Modeler 中,这种左外连接还结合位置函数来获得事件发生的地点和空间数据结构之间的位置关系。例如,在上述案例二中,我们要融合犯罪事件文件和斯波坎市的地图文件,可以选择犯罪事件为主数据对犯罪事件和地图文件进行左外连接,用位置函数 close_to()来查找某种犯罪事件发生的地点和斯波坎市街道在某个特定范围内的临近关系,或者用位置函数 within()来定位某种犯罪事件是否发生在某个特定区域。

  时空数据的展示

  由于空间数据是一种特殊的数据类型,使得时空数据说起来比较抽象,本小节我们就将时空数据以图形方式给出一个简单的展示。