面向大数据的时空数据挖掘
<h2><strong>第 1 部分</strong></h2> <p>早期的数据挖掘研究主要针对字符、数值型的商业数据,随着信息技术的不断提高以及移动设备和网络的广泛使用,数据产生的速度越来越快,数据收集的频率越来越高,数据密度的增长越来越显著,这些因素都使得大数据问题成为一种必然的趋势。而在大数据时代下很多商业数据都包含有时间和空间信息,比如设备,建筑,机构等的管理,能量的产生,分布及预测等。</p> <p>IBM SPSS Modeler 是参照行业标准 CRISP-DM 模型设计而成的数据挖掘工具,可支持从数据到更优商业成果的整个数据挖掘过程。通过结合时空数据和其他商业数据,并且运用数据挖掘工具 IBM SPSS Modeler 对时间和空间属性进行观测分析,进而获得对数据的充分理解,并将其应用于商业活动,从而改进决策过程。</p> <h3><strong>面向大数据的时空数据挖掘的重要性</strong></h3> <p>20世纪90年代中后期,数据挖掘领域的一些较成熟的技术,如关联规则挖掘、分类、预测与聚类等被逐渐用于时间序列数据挖掘和空间结构数据挖掘,以发现与时间或空间相关的有价值的模式,并且得到了快速发展。信息网络和手持移动设备等的普遍应用,以及遥感卫星和地理信息系统等的显著进步,使人们前所未有地获取了大量的地理科学数据。这些地理科学数据通常与时间序列相互关联,并且隐含许多不易发现的、又潜在有用的模式。从这些非线性、海量、高维和高噪声的时空数据中提取出有价值的信息并用于商业应用,使得时空数据挖掘具有额外的特殊性和复杂性。因此,寻找有效的时空数据分析技术对于时空数据中有价值的时空模式的自动抽取与分析具有重要意义。</p> <p>近年来,时空数据已成为数据挖掘领域的研究热点,在国内外赢得了广泛关注。同时,时空数据挖掘也在许多领域得到应用,如交通管理、犯罪分析、疾病监控、环境监测、公共卫生与医疗健康等。时空数据挖掘作为一个新兴的研究领域,正致力于开发和应用新兴的计算技术来分析海量、高维的时空数据,发掘时空数据中有价值的信息。</p> <h3><strong>面向大数据的时空数据挖掘的挑战</strong></h3> <p>尽管时空数据挖掘研究在近几年引起了人们的广泛关注并得到快速发展,但与传统数据挖掘相比,时空数据挖掘研究还远未成熟。随着时空数据采集效率的不断提高,时空数据积累越来越大,时空数据挖掘也面临诸多挑战。</p> <p><strong>理论框架</strong></p> <p>相较于传统的数据挖掘技术,时空数据挖掘研究还远未成熟。对于结构复杂且形式多样的时空数据,如何寻找合适的数据挖掘算法或者技术,可以挖掘什么有价值的模式,如何对这些模式进行分析?这些问题的解决都迫切需要构建一个时空数据挖掘的理论框架。清晰定义的理论框架将会给该研究领域带来理论上的指导,一方面可更好地理解时空模式需要具备的表达能力,另一方面有助于提出更有效的实现技术。</p> <p><strong>大数据管理</strong></p> <p>近年来,传感器网络、移动互联网、射频识别、全球定位系统等设备的快速发展和广泛应用,造成数据量的爆炸式增长,数据增加的速度远远超过现有的处理能力。虽然以 MapReduce 和 Hadoop 为代表的大规模并行计算平台的出现,为学术界提供了一条研究大数据问题的新思路,但这些技术也有其固有的局限性。一方面,时空数据本质上是非结构化数据,不仅包含时间序列模型,还存在地图模型,例如城市网络、道路网络等。基于地图模型的算法时间复杂度通常比较大,对时空数据的存储管理和索引技术要求比较高。另一方面,MapReduce 计算模型的组织形式和数据处理方法不适合处理时空数据模型;Hadoop 技术也无法有效支持数据挖掘中监督学习所用的迭代式计算方法,因而无法完全满足时空数据分析的需要。这些对学术界和工业界来数都是一项巨大的挑战。因此,为了分析处理时空大数据,迫切需要更可靠、更有效和更实用的数据管理和处理技术。</p> <p><strong>时空数据融合</strong></p> <p>社交网络、遥感和传感器等设备的普遍应用产生了海量的时空数据,且每种设备生成的数据和数据形式各不相同,形成了时空数据结构复杂且来源多样的特性。此外,互联网的蓬勃发展,在文字、音频和视频等多媒体数据中同样包含了丰富的时空数据。例如,广泛覆盖城市的监控摄像头,记录了道路车辆的轨迹信息,从视频中可以还原出被监控车辆的移动轨迹。所以,对时空数据进行有效整合、清洗、转换和提取是时空数据预处理面临的重要问题。</p> <p><strong>时空推理和数据挖掘的深度结合</strong></p> <p>时空数据中的时间关系和空间关系通常比较复杂,尤其很多可度量的和不可度量的时间关系和空间关系都是隐含在时空数据中,这就需要在数据挖掘系统中结合时空推理加以考虑这些复杂的时空关系。时空推理和数据挖掘的深度结合,一方面可以发掘更多时空模式及信息,增强时空模式的可理解性;另一方面可以显著提高挖掘的效率和质量。但有利亦有弊:挖掘数据中隐含的时空关系必然会引入某种程度的不确定性和模糊性,这将很大程度上影响数据挖掘的结果。因此,结合时空推理和数据挖掘需要适当折中模型表达能力和时空推理能力。</p> <h3><strong>面向大数据的时空数据挖掘的应用</strong></h3> <p>如上所述,时空数据挖掘的应用非常广泛,如交通运输、地质灾害监测与预防、气象研究、竞技体育、犯罪分析、公共卫生与医疗及社交网络应用等。这里我们简单介绍两个时空数据挖掘的应用案例,借此了解一下时空数据挖掘在现实生活中的实际应用。</p> <p><strong>案例一 - 时空数据分析预测</strong></p> <p>第一个案例是关于亚特兰大某地区如何根据 1997 年到 2005 年的人口普查数据从而选择 2006 年需要新建银行分行的地点。我们收集的数据包括:1)该地区的地理信息(地图文件);2)该地区从 1997 年到 2005 年已有银行分行的位置分布情况,包括每个分行的具体地址等;3)该地区从 1997 年到 2005 年的人口统计信息,包括区域 ID,人口密度,家庭收入,男女比例,人种比例等。通过时空数据预测分析,我们可以根据往年银行分行的发展趋势预测出该城市银行分行在下一年即 2006 年的分布密度,同时可以根据该城市家庭收入预测出 2006 年的客户需求,从而得出基于时空数据的银行分行的供求关系,继而确定需要在下一年新建银行分行的准确地点,即选择供不应求的地点进行银行新建。</p> <p><strong>案例二- 时空数据关联规则</strong></p> <p>第二个案例是基于一件发生在美国华盛顿州斯波坎市的一个真实的犯罪历史的犯罪模型分析。这则犯罪事故共发生犯罪事件 816 起,犯罪类型包括吸毒(167 起),抢劫(97 起)和车辆盗窃(552 起),发生时间从 2009 年 1 月到 2010 年 3 月,涉及斯波坎市的 10 个区和 23 条主要街道。我们得到的数据包括斯波坎市的部分地图信息,三种犯罪类型的统计信息以及该地区的人口统计信息,包括人口密度,家庭收入,男女比例,人种比例等。通过时空数据关联规则分析,我们可以根据每种犯罪事件发生的时间和地点得出该种犯罪类型和特定时间段和地理位置的关联关系,比如周末在公路附近多发吸毒事件等。同时我们还可以从时空数据分析中得到非时空数据的关联关系,比如人口密度小的地区多发抢劫事件等。</p> <p><strong>时空数据理解</strong></p> <p>与传统的数据挖掘一样,不管是时空数据分类预测,时空数据关联规则挖掘还是时空聚类,获取足够的时空数据并充分理解这些数据的特征及属性是时空数据挖掘的先决条件。时空数据,顾名思义,必然包括与时间序列相关的数据以及与空间地理位置相关的数据,另外时空数据挖掘还必须包含将要分析预测或者寻找关联规则的事件数据,也就是在特定时间和空间下发生的具体事件。</p> <p><strong>时间数据的理解</strong></p> <p>时间数据是指和时间序列相关的数据,表述了目标事件随时间的不同而发生的变化。现实中的数据常常与时间有关,按时间顺序取得的一系列观测值就被称为时间序列数据,这类数据反映了某一事物、现象等随时间的变化状态或程度。如我国国内生产总值从 1949 到 2009 的变化就是时间序列数据。对时间序列数据进行更深一步的分析和处理,对人类社会、科技和经济的发展有重大意义。目前时间序列的数据挖掘是数据挖掘的重要研究热点之一。时间序列数据可作年度数据、季度数据、月度数据等细分,甚至以周、天、时、分、秒为周期,其中很有代表性的季度时间序列模型就是因为其数据具有四季一样变化规律,虽然变化周期不尽相同,但是整体的变化趋势都是按照周期变化的。</p> <p>上述案例一中,该地区从 1997 年到 2005 年已有银行分行的位置分布情况和人口统计信息就是时间序列数据,找出该地区银行分行从 1997 年到 2005 年之间随时间的发展趋势,从而预测下一年的分布情况是时空数据分析预测的重点之一。在案例二中,从 2009 年 1 月到 2010 年 3 月发生的犯罪事件也包含了时间数据,我们需要进一步分析犯罪事件发生的时间周期(以月为周期,还是以周甚至以天为周期),从而更准确地挖掘出该犯罪事件的发生和时间的关联关系。</p> <p><strong>空间数据的理解</strong></p> <p>空间数据是指用来表示空间实体的地理位置和分布特征等方面信息的数据,表述了空间实体或目标事件随地理位置的不同而发生的变化。空间数据是数据的一种特殊类型,它是指带有空间坐标的数据,这类数据通常是地图文件,用点、线、面以及实体等基本空间数据结构来表示。一个地图文件通常只包含一种类型的空间数据结构,比如面(代表国家或者地区),线(代表道路或者河流)或点(代表特定的地址)。如果想要比较复杂的地图文件,其中包含多种空间数据结构的话,通常需要多个地图文件迭加来获得。除了地图信息,空间数据还包括地图信息的背景数据,用来描述地图文件上的对象属性。比如,一个地图文件包含街道,那么就需要相应的背景数据来描述了该街道的大小,名字或者一些分类信息(分行道,单行道,双行道,禁止通行等)。</p> <p>上述案例一中,亚特兰大某地区的地理信息即地图文件就是空间数据,描述了该地区的拓扑结构,以多边形来表示该地区的不同区域。同样,在案例二中,斯波坎市的部分地图信息就是空间数据,描述了斯波坎市的空间地理分布情况,用多边形表示斯波坎市的 10 个不同地区,用线表示斯波坎市的 23 条主要街道。</p> <p><strong>事件数据的理解</strong></p> <p>事件数据是指事务性的数据,表述了在某个时间区间某个地理范围之内所发生的事件。事件数据通常和时间数据相关,甚至时间数据本身同时也是事件数据,都是在某个时间序列上发生的一系列事件。不同的是,时间数据的关注点是目标事件发生的时间,或者说是时间序列数据中的时间变量,而事件数据的关注点是在某个时间序列上发生的事件。事件数据一般不会和地图文件直接相关,而是包含坐标值来关联事件数据和地图文件。事件数据的每一条记录通常都指的是某个特定的人或事,并且包括和该人或事相关的其他信息,比如该人或事的具体地理位置。</p> <p>上述案例一中,该地区从 1997 年到 2005 年已有银行分行的位置分布情况就是事件数据,描述银行分行的地理位置,并包含坐标值和该地区的地图文件相关联。在案例二中,从 2009 年 1 月到 2010 年 3 月发生的犯罪事件同时也是事件数据,描述不同的犯罪类型,吸毒、抢劫和车辆盗窃,分别发生在斯波坎市的不同区域。</p> <p><strong>时空数据预处理</strong></p> <p>时空数据结构复杂且来源多样,在充分理解了时间数据,空间数据和事件数据的特征、属性及他们之间的关联关系的基础上,整合、清洗和转换不同来源的时空数据,使得他们符合特定时空数据挖掘算法的要求,是时空数据预处理面临的重要问题。本节我们将结合 IBM SPSS Modeler 详细介绍时空数据预处理的方法和步骤。</p> <p><strong>时间数据预处理</strong></p> <p>时间序列数据结构复杂且来源多样,如何将不同来源的时间序列数据合并并用于时空数据分析,是时空数据预处理面临的首要问题。不同时间序列数据的时间起点及时间间隔都不尽相同,想要合并多个时间序列数据就必须要求每个时间序列数据具有相同的时间间隔,这就需要对各个时间变量的时间间隔进行构建。在 IBM SPSS Modeler 中,时间间隔的构建有两种方法,汇总和填充。</p> <p>汇总是一个经常用于减小数据集大小的数据准备手段。执行汇总之前,应该花一些时间来清理数据,尤其要关注缺失值。一旦完成汇总,或许会丢失可能有用的缺失值信息。我们可以选择基于指定的汇总函数来汇总时间间隔较小的数据,不同类型的数据可以用不同的汇总函数。连续性时间变量可以通过均值、合计、众数、最小值和最大值来汇总,而离散型变量则可以通过众数、第一个和最后一个汇总组中的非空值来汇总。</p> <p>填充是用于替换字段值的一种方法,也可以用来将空白值或空值指定为特定值。我们也可以选择基于指定的填充函数来替换字段值,同样,不同类型的数据可以用不同的填充函数。连续性时间变量可以使用"最近点的平均值",即将要创建的时间周期之前的三个最近非空值的均值来替换或者填充新的字段值,而离散型时间变量则可以用将要创建的时间周期之前的最近非空值来替换或者填充新的字段值。</p> <p>在将多来源的时间序列数据合并的过程中,我们需要根据指定的时间间隔来选择汇总或者填充时间字段。例如,如果有以周和月为单位的混合数据,则可以对周值进行汇总或"累计",以获得均匀的月间隔。或者,也可以将间隔设置为周,并通过为所有缺失周插入空白值或使用指定的填充函数外推缺失值来填充序列。</p> <p><strong>空间数据预处理</strong></p> <p>我们已经知道,空间数据是数据的一种特殊类型,它是指带有空间坐标的数据,用点、线、面以及实体等基本空间数据结构来表示。但是空间坐标有不同的表达方式,有些空间数据的坐标是多个单维坐标形式,如用三个单独的字段 x, y, z 分别表示三维坐标; 有些空间数据的坐标是一个多维坐标形式,如用一个列表[x, y, z]来表示三维坐标。既然涉及坐标,就必然会关系到坐标系,而不同空间数据的坐标系往往不同。另外,和时间数据一样,空间数据来源多样,每个空间数据的基本数据结构都不尽相同,如何关联多种类型的数据结构同样是空间数据预处理面临的重要问题。</p> <p>首先来看多个单维坐标字段和一个多维坐标字段之间的转换,这个过程通常比较简单。在 IBM SPSS Modeler 中,这个过程只需要组合多个单维坐标字段即可实现,例如,直接用组合单独的坐标字段 x, y, z,返回的派生字段即为列表[x, y, z]。</p> <p>任何一个空间数据,不管是地图,坐标还是经纬度值,都会关联一个坐标系。坐标系定义了坐标值的原点,单位,正方向等,是坐标值的参照系。坐标系的种类很多,大体可以归纳为两大类,地理坐标系和投影坐标系。地理坐标系,是球面坐标系统,以经纬度为地图的存储单位的。投影坐标系,是平面坐标系统,其地图单位通常为米。要得到投影坐标就必须得有一个"拿来"投影的球面坐标,然后才能使用算法去投影,即每一个投影坐标系统都必须要求有地理坐标系参数。坐标转换是空间实体的位置描述,是从一种坐标系统变换到另一种坐标系统的过程,通过建立两个坐标系统之间一一对应关系来实现。在 IBM SPSS Modeler 中,我们可以选择一个或者多个坐标转换的地理字段,指定要转换的坐标系,从而实现多个地理字段统一坐标系的目的。</p> <p>如上所述,一个空间数据或地图文件通常只包含一种类型的空间数据结构,如果想要比较复杂的地图文件,其中包含多种空间数据结构的话,通常需要多个地图文件迭加来获得。比如,我们有面图表述某地区的不同区域和线图表述该地区的河流街道,那么如何得到不同的河流街道和各个地区之间的位置关系呢?在 IBM SPSS Modeler 中,我们可以通过位置函数来获得不同类型的空间数据结构之间的位置关系。例如,用 close_to()来确定某条河流是否靠近某个地区,用 distance()来获得两个地区或者两条街道之间的距离等。</p> <p><strong>事件数据预处理</strong></p> <p>事件数据是时空数据挖掘的主题,它的每一条记录都是特定的人或事,并且包括该人或事的相关信息,特别是发生的地理位置。事件数据的预处理通常是指和时间数据或者空间数据的整合,以便获得最终可以直接应用于时空数据挖掘算法的数据。具体内容详见下节时空数据的融合。</p> <p><strong>时空数据的融合及展示</strong></p> <p>上文我们已经了解了时空数据来源多样且结构复杂,不管是时间数据、空间数据还是事件数据都有其自身的特征和属性,如何融合各种数据并把结果展示出来对时空数据挖掘至关重要。</p> <p><strong>时空数据的融合</strong></p> <p>时空数据的融合通常是通过合并时间数据、空间数据和事件数据来完成的。数据合并的方法很多,可以按记录顺序合并,可以通过多个数据共有的关键字来合并,还可以根据自定义的条件进行合并。按关键字或者自定义条件合并又可分为内连接,全外连接,部分外连接等。</p> <p>事件数据和时间数据的融合可以通过关键字,譬如区域 ID 号,邮政编码,事件发生时间等来实现。例如,在上述案例一中,我们可以设置区域 ID 号或者时间字段为关键字来融合从 1997 年到 2005 年的银行分行分布数据和人口统计数据。</p> <p>由于涉及空间地理位置,事件数据和空间数据的融合通常按照事件数据进行左外连接。在 IBM SPSS Modeler 中,这种左外连接还结合位置函数来获得事件发生的地点和空间数据结构之间的位置关系。例如,在上述案例二中,我们要融合犯罪事件文件和斯波坎市的地图文件,可以选择犯罪事件为主数据对犯罪事件和地图文件进行左外连接,用位置函数 close_to()来查找某种犯罪事件发生的地点和斯波坎市街道在某个特定范围内的临近关系,或者用位置函数 within()来定位某种犯罪事件是否发生在某个特定区域。</p> <p><strong>时空数据的展示</strong></p> <p>由于空间数据是一种特殊的数据类型,使得时空数据说起来比较抽象,本小节我们就将时空数据以图形方式给出一个简单的展示。</p> <p>我们已经知道,时空数据首先是基于一张地图,包括不同的空间数据结构,比如多边形(面),线,点等, 通常以.shp 格式存在。简单的理解,单独的空间数据即使一张某地区的地图。例如,在上述案例一中的亚特兰大某地区的地图用 IBM SPSS Modeler 中的图形文件如图 1 所示,其中多边形表示不同区域。</p> <p>图 1:亚特兰大某地区地图</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/fa0671eb0f72100030cd4acc7660f2e8.jpg"></p> <p>如果有多个地图文件,并且经过预处理之后,各个地图文件有相同的坐标系,则可迭加输入从而得到多层次的地图文件,比如多边形上贯穿线串表示道路,河流等。如果已经融合了事件数据,我们还可以设置不同的符号和颜色分别表示不同的事件,比如在上述案例二中,用三角形表示吸毒,用圆圈表示抢劫,用方形表示车辆盗窃,如图 2 所示。</p> <p>图 2:斯波坎市犯罪事件地图</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/6f094cde8f02cf5b0a05839b572f97e6.jpg"></p> <h3><strong>结束语</strong></h3> <p>大数据时代下,随着数据收集效率的不断提高和时空数据挖掘的快速发展,很多不同来源的商业数据都包含有时间和空间信息,比如设备,建筑,机构等的管理,能量的产生,分布及预测等。如何结合时空数据和其他商业数据,并且通过对时间和空间属性的观测分析获得决定性的认知从而优化决策就显得至关重要。本文通过介绍面向大数据的时空数据挖掘的重要性及面临的挑战,详细描述了运用数据挖掘工具 IBM SPSS Modeler 对时空数据的理解、预处理,融合及展示,为下一步进行时空数据的建模预测以及关联规则的挖掘奠定了基础。</p> <h2><strong>第 2 部分</strong></h2> <h3><strong>面向大数据的时空数据挖掘现状</strong></h3> <p>随着传感器网络、手持移动设备等的普遍应用,遥感卫星和地理信息系统等的显著进步,人们获取了大量地理科学数据。这些数据内嵌于连续空间,并且随时间动态变化,具有很大程度的特殊性和复杂性。实际上,很多应用领域,例如交通运输、气象研究、地震救援、犯罪分析、公共卫生与医疗等,在问题求解过程中需要同时考虑时间和空间两方面因素。而随着信息技术的发展,人们已经不满足于单纯的时空数据的存储和展现,而是需要更先进的手段帮助理解时空数据的变化。如何从这些复杂、海量、高维、高噪声和非线性的时空数据中挖掘出隐含的时空模式,并对这些模式进行分析从而提取出有价值的信息并用于商业活动是对时空数据挖掘及分析技术的一项极大的挑战。</p> <p>IBM SPSS Modeler 是参照行业标准 CRISP-DM 模型设计而成的数据挖掘工具,可支持从数据到更优商业成果的整个数据挖掘过程。通过结合时空数据和其他商业数据,并且运用数据挖掘工具 IBM SPSS Modeler 对时间和空间属性进行观测分析,建立预测性模型,进而获得决定性的认知,并将其应用于商业活动,从而改进决策过程。</p> <h3><strong>面向大数据的时空预测简介</strong></h3> <p>面向大数据的时空预测主要是基于时空对象的特征构建预测模型进而预测时空对象在未来特定时间范围内特定空间位置下的行为或者状态。</p> <p><strong>时空预测的分类</strong></p> <p>根据时空对象的不同,时空预测有不同的分类。面向时空数据的位置和轨迹预测、密度和事件预测、结合空间的时间序列预测等研究都具有重要的应用前景。</p> <p><strong>位置和轨迹预测</strong></p> <p>面向时空数据的位置预测主要是基于时空对象的特征构建预测模型来预测时空对象所在的具体空间位置。对于实时物流、实时交通管理、基于位置的服务和 GPS 导航等涉及时空数据的应用而言,预测单个或者一组对象未来的位置或目的地是至关重要的,它能使系统在延误的情况下采取必要的补救措施,避免拥堵,提高效率。</p> <p>除了位置预测之外,面向时空数据的轨迹预测可以推测移动对象的出行规律。例如,社交网络应用借助 GPS 设备记录用户轨迹数据,通过"签到"应用(如微信、微博等)分享位置信息。分析这些共享的 GPS 轨迹数据,可以为用户推荐感兴趣的旅游景点和游览次序。</p> <p><strong>密度、事件预测</strong></p> <p>某个区域的对象密度定义为在给定时间点该区域内对象数与该区域大小之比。这是一些对象随时间变化而呈现出的一个全局特征。面向时空数据的密度预测主要应用于实时交通管理,会对及时改善交通拥堵带来很大助益。例如,交通管理系统通过密度预测可以识别出道路中的密集区域,从而帮助用户避免陷入交通阻塞,并采取有效措施及时缓解交通拥堵。此外,面向时空数据的事件预测可以根据历史数据(时间序列),结合地理区域密度估计(发现重要特征和时空地点)来预测给定时间范围和空间位置的概率密度,譬如基于过去犯罪事件发生的地点、时间和城市经济等特征预测给定区域和时间段内犯罪发生的概率,进而检测犯罪发展趋势,有效降低城市犯罪率。</p> <p><strong>结合空间的时间序列预测</strong></p> <p>结合空间的时间序列预测是从时间的角度来考虑时空数据。与传统的时间序列不同的是,与空间有关的时间序列彼此不是独立的,而是和空间相关的。例如,可以首先构造时间序列模型以获取每个独立空间区域的时间特性,然后构造神经网络模型拟合隐含的空间相关性,最后基于统计回归结合时间和空间预测获得综合预测。</p> <p><strong>时空预测的理论框架</strong></p> <p>如上所述,时空预测根据时空对象的不同有不同的分类方法,本文我们重点介绍 IBM SPSS Modeler 中对于包含时间和空间两种属性的数据的建模与预测。其提供了一个综合时间和空间属性的有效的手段,充分利用各种数据序列的特征,将时间、空间及时空自回归预测方法有效地结合,并在预测同时考虑了研究对象之间的空间影响关系,从而提高了预测的精确度。</p> <p><strong>时空数据建模</strong></p> <p>时空预测模型实质上是一个基于线性回归的扩展模型,其原理可以用如下公式表示:</p> <p>其中, 系数β是自变量的系数,表示自变量对于目标变量的影响程度;Z作为线性拟合的残差,是目标变量变化中用自变量线性组合无法表示的部分,可用来在自回归(Autoregressive,AR)模型中捕捉时间自相关性,进而用于描述空间的相关性。我们可以通过图 1 所示的流程图来具体讨论这一过程。</p> <p>图 1. 时空数据建模流程图</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/e9450a49a905e1f671309b76fdada8fc.jpg"></p> <p><strong>Job0:准备工作</strong></p> <p>针对时空建模的复杂性,适当的数据验证和缺失值筛选将有助于模型的构建。通过检测,包含缺失值或无效值百分比较高的一些样本位置将从分析中删除,而缺失值或无效值百分比较低的样本位置则被留下来,后期建模过程中将对其进行特殊编码处理,以尽可能多保留数据信息。</p> <p><strong>Job1:拟合线性回归模型</strong></p> <p>回归模型采用标准的线性回归模型(包括或不包括截距),但由于数据的时空相关关系,其残差会形成一个零均值的非独立的时空相关随机过程。线性回归的系数,可衡量自变量对目标变量的影响程度,较大的系数对应的自变量表明其单位变化会产生较大的目标变量变化。</p> <p><strong>Job2:拟合时间自回归模型</strong></p> <p>自回归模型使用指定的自回归阶数,即指定之前若干个时刻的值来预测当前值。自回归的系数可用与衡量过往时刻的残差对当前值的影响。自回归模型同样包含残差,由于其中的时间自相关因素已被移除,自回归模型的残差在时间上是相互独立的。</p> <p><strong>Job3:计算时间自回归模型残差并建立空间协方差模型</strong></p> <p>基于地理空间的协方差模型建立在时间自回归模型残差的基础上,空间协方差模型有两种实现方法:参数法和非参数法。参数法具有更精简的数学表达式和更好的模型推广能力,所以在假设所给数据能够进行参数化建模的情况下,提供了两个参数检验方法来确定模型的准确性。其一是检测是否空间中存在随着距离而变化的衰减,其二检测空间方差在给定区域具有普遍性(方差同质性检验)。如果不满足参数化模型的假设,将会构造非参数化的模型,利用空间残差所形成空间关系矩阵来描述数据中的空间关系。</p> <p><strong>Job4:修正时间自回归模型</strong></p> <p>空间协方差量化表达了数据的空间关系,从而可以从之前线性回归的残差中移除空间关系的影响,进而能够修正时间自回归模型,更新自回归模型的参数,获得更加准确的时间自回归关系的描述。</p> <p><strong>Job5:修正线性回归模型</strong></p> <p>基于准确 的空间关系和时间自相关关系的描述,可从原始的数据中去除时间和空间关系的影响,从而能够修正线性回归模型的参数,更加准确的描述出自变量对目标变量的影响。</p> <p><strong>Job6:计算测定后的统计值并保存结果</strong></p> <p>上述步骤已经完成了模型的估计过程,获得的模型可生成目标变量的估计值,与观测值相比较,能够评价所建模型的质量。同时通过一些参数检验的方法,可以评价自变量,时间自回归系数的重要性等一些基于模型的评价指标。</p> <p><strong>时空数据预测</strong></p> <p>时空数据预测是基于时空数据模型的一个假设情况分析(what-if 分析),可以预测未来一段时间在分析范围中任何地理位置的目标值。我们可以通过图 2 所示的流程图来具体讨论这一过程。</p> <p>图 2. 时空数据预测流程图 参考资源</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/fc593ed2da9854331b72c5532df3c618.jpg"></p> <p><strong>Step1:准备时空预测输入数据</strong></p> <p>想要获得未来时间的目标预测值,首先需要有和时空数据建模的输入数据结构统一的未来时刻的自变量数据。未来时刻的自变量数据可以保持已知的最终数据不变,或者是人为修改过的用于假设分析的数据。</p> <p><strong>Step2:构建空间协方差矩阵来捕捉预测地理位置和初始地理位置之间的空间相关性</strong></p> <p>预测数据中的地理位置和初始数据中的地理位置可以不同,也可以预测数据中一些地理位置和初始地理位置相同,或者预测地理位置是初始地理位置的子集。</p> <p><strong>Step3:对初始位置的回归残差进行空间插值得到预测的地理位置</strong></p> <p>利用第 2 步构建的空间协方差矩阵对初始地理位置经过转换后的回归残差进行插补,从而得到预测的地理位置。</p> <p><strong>Step4:预测未来时间的线性回归残差</strong></p> <p>预测未来时间的回归残差是在时间点 m+1, m+2, ... m+H 上逐步迭代进行, 其中, m 是建模的最终时间点,H 是需要预测的未来时间点的个数。</p> <p><strong>Step5:计算未来时间点的目标值</strong></p> <p>未来时间点的目标值需要通过回归模型,第 4 步中计算得到的时间点 m+1, m+2, ... m+H 上的回归残差和在未来时间点和新的地理位置上的预测输入数据值来计算。</p> <p><strong>Step6:计算未来时间点目标值的置信区间</strong></p> <p>基于高斯过程和已知模型每一部分的方差情况,可逐级推出最终预测目标值的置信区间。此步骤过于复杂,本文不作详述。</p> <p><strong>Step7:预测结果输出</strong></p> <p>最终得到的预测结果包括在未来时间指定位置的目标值,以及预测值置信区间的上下限。</p> <p>时空预测应用实例</p> <p>在充分了解时空数据建模及预测理论结构的基础上,我们来描述该时空预测模型在 IBM SPSS Modeler 中的具体实现,并结合应用实例展示如何应用时空数据模型的假设情况分析(what-if 分析)实现对未来任何时间任何地点目标值的准确预测。</p> <p><strong>时空预测模型描述</strong></p> <p>在 IBM SPSS Modeler 中,时空预测模型分析使用包含位置数据、预测输入字段(预测变量)、时间字段和目标字段的数据,如图 3 中时空预测模型字段选项的参数所示。 时空预测模型的输入数据必须是经过时空数据预处理,融合了时间序列和形状数据,同时包含时间变量,空间位置变量及其他相关变量的数据。在该数据中,每个位置在数据中都有许多行,这些行表示每个预测变量在每个测量时间的值。 分析数据后,可以使用该数据来预测所使用的形状数据(.shp 文件)内任意位置处的目标值。 并且,还可以预测何时能够获知未来时间点的输入数据。</p> <p>图 3.时空预测模型-字段选项</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/9146b7374cea6ee6d89876ce62865cb0.jpg"></p> <p>这里,目标字段是将要预测的目标变量。位置字段是一个测量级别为"地理空间"的字段,可以是点、线、多边形(面)、多点、多线、多面等位置类型。形状数据通常包含一个表明层特征的名称的字段,例如,这可能是省/自治区/直辖市或者国家或地区的名称。 使用此字段可以将名称或标签与位置相关联,方法是选择一个分类字段来标注输出中的所选位置字段,即位置标签字段。时间字段是要在预测中使用的时间变量,只能选择测量级别为"连续"且存储类型为时间、日期、时间戳记或整数的字段。预测变量是预测输入字段,只能选择测量级别为"连续"的字段。</p> <p>设置好时空预测模型所需的变量后,我们就该考虑时空预测模型的构建了。在 IBM SPSS Modeler 中,时空预测模型的构建选项还分为时间间隔、基本、高级和输出等子项,分别实现时空数据建模中的不同功能。</p> <p>在可以构建时空预测模型之前,需要进行数据准备以便将时间字段转换为索引;要使得能够进行这种转换,时间字段中的记录之间必须有固定的区间。如果数据尚未包含此信息,我们就可以使用"时间间隔"子项中的选项来设置此区间,然后才能进行时空数据建模。"时间间隔"选项如图 4 所示。</p> <p>图 4. 时空预测模型-时间间隔选项</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/88e8e83fbbb49f3ad195d5cb97ca6a76.jpg"></p> <p>根据输入数据中时间字段的特征选择或者转换为合适的时间间隔是时空数据建模的必要条件。这里,时间间隔可以以周期、年、季度、月、周、天、时、分、秒等一系列为单位。基于所选的时间间隔,还有一系列与之相关的选项,比如,时间间隔为年或季度时的开始月份,时间间隔为周时每周的第一天和每周的天数,时间间隔为小时时每天的小时数和一天开始的时间等。如果输入数据已包含正确的时间间隔信息,并且不需要进行转换,选中"数据匹配指定时间间隔设置" 复选框。 选中此框后,"汇总"区域中的设置将不可用。反之,如果输入数据中的时间字段需要转换为特定区间,取消选中"数据匹配指定时间间隔设置"复选框,并指定用于汇总的字段以便与指定区间匹配的选项。 例如,如果有以周和月为单位的混合数据,那么可以对周值进行汇总或累计,以获得均匀的月间隔。所用的汇总方法可以从"缺省设置"下拉框中选择并应用于未逐个指定的所有连续字段。如果希望对于特定字段进行定制设置,即将特定汇总函数应用于个别字段,则在"指定字段的定制设置"表中选择字段并选择汇总方法。</p> <p>实际上,时间间隔的设置与转换是时空数据预处理的一部分,在 IBM SPSS Modeler 中,为方便使用,内嵌于时空数据建模中。时空数据建模的构建实质是通过基本构建选项和高级构建选项来设置的,如图 5 和图 6 所示。</p> <p>图 5. 时空预测模型-基本构建选项</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/3de29e5e303a2b850397ade28b431d30.jpg"></p> <p>我们可以在基本构建选项里主要设置最大自回归阶数和空间协方差矩阵的估计方法。自回归阶指定使用哪些先前值来预测当前值,使用"最大自回归标志"选项可以指定用于计算新值的先前记录数。空间协方差的估计方法可以选择参数或非参数,其中参数方法又可以从三种模型类型中进行选择:高斯、指数和幂指。</p> <p>图 6. 时空预测模型-高级构建选项</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/f93b21696a3613bdfae4a4b39dbb1a13.jpg"></p> <p>时空数据建模的高级构建选项主要用来对模型构建过程进行微调。其中,"缺失值的最大百分比"指定模型中可以包括的包含缺失值的记录所占的最大百分比。"模型构建中假设测试的显著性水平"指定用于时空数据模型估计的所有检验(包括两项拟合优度检验、效应 F 检验和系数 T 检验)的显著性水平值,此级别可以是 0 与 1 之间的任何值,并以 0.01 为增量变动。</p> <p>最后是时空数据模型的输出选项,主要用于在构建模型之前,使用此页面中的选项来选择要包括在模型输出查看器中的输出,如图 7 所示。</p> <p>图 7.时空预测模型-输出选项</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/e90c8831635dcdc5395b09f34416da3c.jpg"></p> <p>如图所示,时空数据模型的输出分为模型信息、评估、和解释三部分。其中,模型信息包括模型规范和时间信息摘要;评估包括模型质量和均值结构模型中的效应检验;解释包括平均结构模型系数、自回归系数、测试空间衰减、参数空间协方差模型参数散点图、相关性热图、相关性图和位置聚类。所有这些图或表均从不同角度展现时空数据模型,以不同形式向用户诠释时空数据模型的意义。</p> <p><strong>时空预测应用实例</strong></p> <p>时空预测模型有许多潜在的应用,例如紧急管理建筑物或设施、对机械服务工程师进行绩效分析和预测或者进行公共交通规划。 在这些应用中,通常要对时间和空间进行能耗等测量。 可能与记录这些测量值相关的问题包括哪些因子影响未来的观测值、如何实现所需的变化或者如何更好地管理系统? 为了回答这些问题,我们可以在不同位置使用能够预测未来值的统计技术,并可以显式地对可调因子进行建模以执行假设情况分析。</p> <p>本节我们将通过应用时空数据建模以及执行假设情况分析来实现数据中心的能量管理,避免使用过多的制冷能量把数据中心的热量控制在可接受的标准范围内。一个典型的数据中心,压力通风系统(plenum)通过打孔瓦(perforated tiles)供应冷空气,冷空气通过通风口(inlet)冷却服务器温度。而服务器散发热空气并传给空调机组(ACU),热空气在空调机组里被冷却并重新交换到压力通风系统,依此循环。为了更好地实现数据中心的能量管理,数据中心还需部署实时热量传感器(thermal sensors)来监控能量使用。但是,热量传感器不可能存在数据中心的任何一个位置,因而需要对没有部署热量传感器的位置进行预测。因此,我们将建立一个时空数据预测模型来预测整个数据中心在未来时间的温度,并结合影响数据中心温度的其他相关因素执行假设情况分析,从而对如何改善数据中心的能量使用效率提出建设性意见。</p> <p><strong>数据收集和预处理</strong></p> <p>为了进一步理解并调控数据中心的热量管理系统,数据中心在有限的位置布置热量传感器,通过传感器收集不同位置的实时温度。另外,数据中心的热量传感器、空调机组和打孔瓦的物理参数,比如每个热量传感器的坐标位置,每个空调机组的坐标位置和长宽高(三维物体)以及打孔瓦的坐标和长宽(二维物体)等信息也会相应地影响数据中心不同位置的空气流,如图 8 所示。</p> <p>图 8. 数据中心结构图</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/9146b7374cea6ee6d89876ce62865cb0.jpg"></p> <p>这些数据不能直接应用于时空数据预测建模,必须要先进行数据预处理,把温度数据、各个物体的位置数据等进行融合,从而得到一个包含空间地理位置字段,时间字段,预测输入字段和将要预测的目标字段的一个表格式的输入数据。</p> <p><strong>时空数据建模</strong></p> <p>经过数据预处理,我们得到一个包括时空数据预测建模所需字段的标准输入数据。然后我们将选择并设置时空数据预测模型的不同参数来建立时空数据预测模型。很显然,这里的目标字段为数据中心的温度,空间位置字段为温度被监控的位置,即热量传感器的坐标位置,时间字段为温度被监控的一系列时间点,预测数据字段则为其他相关因素,包括数据中心的空气流、空调机组的长宽高等,如图 9 所示。</p> <p>图 9. 数据预处理后的输入数据结构</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/cc8064929fa7d572d7e29724f6c3e66e.jpg"></p> <p>接下来根据数据中心温度的监控时间点来设置时间间隔选项,如果温度是每小时收集一次,那么时间间隔应设为小时并设置起始点;如果温度的收集频率是一天一次,则应设时间间隔为天。并且根据输入数据的时间变量的特征决定是否需要对数据进行转换从而使得数据与指定的时间间隔设置匹配。</p> <p>然后根据需求设置最大自回归阶数指定使用哪些先前值来预测未来值,并且指定计算空间协方差的估计方法。为了最大程度的提高对时空数据预测模型的预测准确性,还可以通过设置"缺失值的最大百分比"和"模型构建中用于假设检验的显著性水平" 对模型构建过程进行微调。</p> <p>最后构建时空数据模型,从而实现后续的模型输出和假设检验分析。</p> <p><strong>时空数据预测</strong></p> <p>想要获得对目标值的预测,即要了解下一个时间监测点或者将来某个时间点数据中心不同位置的温度值,需要有和时空数据建模的输入数据结构统一的预测输入数据。其中,时间为将要预测温度值的时间点,空间位置为将要预测温度值的位置点,其他相关输入变量均为每个将要预测温度的位置的相应未来值。有了预测输入变量,输入时空数据模型即可得到数据中心在指定时间指定位置的温度值,同时还可获得该预测值的错误方差及预测置信度的上下限。</p> <p><strong>时空预测结果展示</strong></p> <p>时空数据预测模型的显著性不仅在于它可以同时处理时间和空间两种属性并对未来任何时间任何地点的目标值进行预测,更在于可以通过时空预测模型进行假设检验分析从而改善决策。</p> <p>在上述数据中心能量管理的应用实例中,时空数据模型可以通过热图来可视化在指定时间指定位置的目标值,如图 10 所示。</p> <p>图 10. 数据中心温度预测热图</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/52b15fa68a24887b93a7bc3d00229be6.jpg"></p> <p>在时空预测过程中,首先假定在下一个时间监测点所有其他的参数都保持现有值,即空调机组的数目和位置,热量传感器的位置,空气流等保持不变的情况下的温度情况,得到如图 11 热图所示的结果。从图中可以看出,在现有制冷持续的情况下,部分区域会出现温度过冷现象。基于该假设检验分析的结果,为了节约能量,我们可以把空调机组的制冷设置温度升高 1 度,从而得到如图 12 所示的热图。从图中可以看出,保持现有设置不变情况下的过冷现象得到明显改善。</p> <p>图 11. 保持现有设置不变的温度热图</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/2573d68f27e1de95da6c424ffc023dc8.jpg"></p> <p>图 12. 采取措施后的温度热图</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/455de3bd50a55be98407399947a0f891.jpg"></p> <h3><strong>结束语</strong></h3> <p>时空数据挖掘是数据挖掘中的重要研究内容,其中时空预测的应用领域最为广泛。随着信息技术的发展,人们已经不满足于单纯的空间数据的存储和展现,而是需要更先进的手段帮助理解空间数据的变化,发现空间数据之间的动态关系。实际上, 很多空间现象是随时间动态变化的,在问题求解过程中需要同时考虑时间和空间两方面因素。本文主要围绕时空数据挖掘的发展现状及时空预测的分类,重点介绍基于时间和空间两种属性的时空综合预测方法,具体描述了该方法在 IBM SPSS Modeler 中的实现,并结合应用实例详细说明如何应用时空数据建模及预测实现准确而有效的时空预测。</p> <p> </p> <p> </p> <p>来自:http://www.itongji.cn/cms/article/articledetails?articleid=4221</p> <p> </p>
本文由用户 cysc0908 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
转载本站原创文章,请注明出处,并保留原始链接、图片水印。
本站是一个以用户分享为主的开源技术平台,欢迎各类分享!