【IT168 技术文章】
引 言
空间数据挖掘(SDM)或空间知识发现,是从大量的空间数据库中抽取隐含的知识、空间关系或非显式存储在数据库中有意义的特征或模式。此技术在理解空间数据、获取空间与非空间数据间的内在关系具有重要意义。由于近年已经和正在积累大量与空间位置相关的空间数据,因此空间数据挖掘研究已成为当前急待研究的重要课题。
对SDM、GIS、SOA等技术进行了研究,设计了一种基于SOA架构、面向Web Service的空间数据挖掘平台——SpatialMiner。SpatialMiner以Web Service的方式为用户提供空间数据挖掘服务,从而大大降低了空间数据挖掘的使用难度,以一种耦合度极低的方式实现空间数据挖掘与第三方软件有效集成。
1 空间数据挖掘与SOA架构
1.1 空间数据挖掘
所谓空间数据挖掘(Spatial Data Mining,SDM)指的是从空间数据库中抽取隐含的知识、空间关系或非显式地存储在空间数据库中的其它模式。它可以用来理解或重组空间数据、发现空间和非空间数据间的关系、构建空间知识库、优化查询等。
1.2 SOA软件体系架构
SOA是一种面向接口的软件构架,以接口定义开始,然后构建整个应用拓扑实施为一个接口拓扑、接口实现和接口请求。SOA是服务和服务用户之间的一种联系,通过一个充分的软件模型来代替和实现一个商务功能,通过一个接口来实现软件模型就是服务。SOA也是一种设计和构建松散耦合的软件解决方案的方法,松散耦合的解决方案能够以程序化的可访问的软件服务形式公开其业务功能,并使其他应用程序可以通过已发布的和可发现的接口来使用这些服务。通过应用SOA,一个企业可以使用一组分布式服务来构成并组织应用程序,并能通过重用企业自己的资产及其伙伴的业务功能来构造新的应用程序和修改现有的应用程序。WebH艮务代表了面向服务的体系结构的一种实现,但并不能认为所有的SOA应用程序都是Web服务。
2 系统分析与设计
2.1 系统功能分析
根据上述数据挖掘一般过程的描述,我们可以得出,一个数据挖掘系统需要完成的功能主要包括:挖掘数据的抽取,挖掘数据预处理,挖掘任务的定义与执行,挖掘结果模型的表示与应用。此外,作为一个可扩展及可二次开发应用的数据挖掘平台,还必须具备系统扩展的各种接口。
2.1.1 空间数据抽取功能 主要用于完成SDM所需数据的数据提取、空间分析、空间关系提取、空间属性提取等功能,其数据源为存于GIS中的空间数据库,数据格式包括SHP、Person Geodatabase、SDEGeodatabase、栅格图、CAD等。用户可设置过滤条件,进行记录过滤,数据抽取结果时行GIS可视化显示,并根据挖掘任务的要求进行抽取结果的存取。
2.1.2 数据预处理功能 原始空间数据中存在噪音数据或空缺值,需要对其进行一定处理,否则可能对挖掘结果产生重要负面影响,甚至可能造成算法失效。接着对数据进行离散化或抽象化处理,连续属性离散化在数据挖掘中是一个很重要的问题。
该功能主要完成数据抽取模块所得数据的预处理,包括空缺值处理、数据离散化、属性约简、数据概化。
2.1.3 挖掘任务的定义与执行 该功能为系统的核心功能,客户首先对挖掘任务进行挖掘功能、挖掘算法等设定,然后系统根据设定对预处理后的数据进行挖掘,挖掘结果进行存储并进行可视化处理。
挖掘定义设置是一组用于构造或应用数据挖掘模型的输入参数集合,在我们的平台中包括了数据设置、功能设置和算法设置三类。数据设置确定挖掘任务的输入数据源、数值数据的离散化方法、丢失值及离群数据的处理方式等。功能设置指定了挖掘任务的功能类型以及相对应的属性被挖掘算法使用的方式。挖掘功能与挖掘算法的分离使得用户在指定挖掘结果类型的时候不必关心特定的算法。
2.1.4 挖掘结果模型的表示与应用 该模块完成的功能是数据挖掘结果模型的应用查询功能。应该说,该功能是一个相对独立的功能模块。要求该模块不仅能够应用查询通过我们的挖掘系统得到的结果模型,同时也以够使用其它挖掘工具得到的结果。如上所述,PMML是目前被广泛支持的结果模型表示规范,这就要求模型应用查询功能模块能够处理PMML格式表示的模型。因此,该模块的主要功能包括PMML模型的读取、PMML模型可视化、PMML模型的应用(如分类与预测)。
2.1.5 接口功能分析 ①二次开发接口:平台的目标之一是实现数据挖掘与行业应用软件的集成,这就要求平台必须提供必要的二次开发接口。要求如下:平台无关性,对JAVA、C#、Delphi等各种开发语言全面支持;封装性,接口只提供输人与输出,处理过程进行封装;可扩展性,二次开发接口可根据需要在系统无需重新编译的情况下即可完成接口的扩充。为满足以上要求,Web Service将是非常好的选择。②功能扩展接口:作为具有较高扩展性的系统,系统必须在以下方面提供扩展性、挖掘功能、挖掘算法、挖掘模型。