数据挖掘系统设计技术分析

时间:2022-10-06 10:53:17

数据挖掘系统设计技术分析

【摘要】数据挖掘技术则是商业智能(Business Intelligence)中最高端的,最具商业价值的技术。数据挖掘是统计学、机器学习、数据库、模式识别、人工智能等学科的交叉,随着海量数据搜集、强大的多处理器计算机和数据挖掘算法等基础技术的成熟,数据挖掘技术高速发展,成为21世纪商业领域最核心竞争力之一。本文从设计思路、系统架构、模块规划等方面分析了数据挖掘系统设计技术。

【关键词】数据挖掘;商业智能;技术分析

引言

数据挖掘是适应信息社会从海量的数据库中提取信息的需要而产生的新学科。它可广泛应用于电信、金融、银行、零售与批发、制造、保险、公共设施、政府、教育、远程通讯、软件开发、运输等各个企事业单位及国防科研上。数据挖掘应用的领域非常广阔,广阔的应用领域使用数据挖掘的应用前景相当光明。我们相信,随着数据挖掘技术的不断改进和日益成熟,它必将被更多的用户采用,使企业管理者得到更多的商务智能。

1、参考标准

1.1挖掘过程标准:CRISP-DM

CRISP-DM全称是跨行业数据挖掘过程标准。它由SPSS、NCR、以及DaimlerChrysler三个公司在1996开始提出,是数据挖掘公司和使用数据挖掘软件的企业一起制定的数据挖掘过程的标准。这套标准被各个数据挖掘软件商用来指导其开发数据挖掘软件,同时也是开发数据挖掘项目的过程的标准方法。挖掘系统应符合CRISP-DM的概念和过程。

1.2ole for dm

ole for dm是微软于2000年提出的数据挖掘标准,主要是在微软的SQL SERVER软件中实现。这个标准主要是定义了一种SQL扩展语言:DMX。也就是挖掘系统使用的语言。标准定义了许多重要的数据挖掘模型定义和使用的操作原语。相当于为软件提供商和开发人员之间提供了一个接口,使得数据挖掘系统能与现有的技术和商业应用有效的集成。我们在实现过程中发现这个标准有很多很好的概念,但也有一些是勉为其难的,原因主要是挖掘系统的整体概念并不是非常单纯,而是像一个发掘信息的方法集,所以任何概念并不一定符合所有的情况,也有一些需要不断完善和发展中的东西。

1.3PMML

PMML是1999年由DMG了1.0版本,他主要是一个基于XML的模型描述语言,利用XML的描述能力来表达各种挖掘模型和规则。标准化的描述使得各个不同的厂商的软件之间可以共享,交换这些挖掘模型。所以他主要是一种模型和规则的描述语言。

1.4对于标准的基本判断

CRISP-DM的流程已经成为业界的基本认识,但他更像一个项目指导思想,而不是单纯硬性规范。ole for dm规范了挖掘模型和操作原语,使挖掘软件能有效,简单的整合进现有的企业软件架构,对于推动挖掘软件的使用和普及意义非凡。但ole for dm的规则模型对于结构复杂,形态各异的模型规则用简单的平面表来表示就显得非常怪异,而PMML正好弥补了这个缺陷,PMML利用了XML的描述能力,能有效的描述挖掘模型和规则。

挖掘服务器主要以上我们对于这些标准的基本判断为基础,吸收CRISP-DM和ole for dm的核心的优良概念,在实际开发中我们也是根据实际需求来拓展了一些概念和修正了一些做法,为客户和开发使用人员提供更好的软件。

2、软件功能设计

2.1设计思想

数据挖掘系统的构架设计采用如下的原则:

采用分层的设计,模块化的原则

采用先进和成熟的技术

使用C++语言使用(C/C++语言是实现服务器级别软件的首选);使用泛型思想,面向对象技术;使用STL容器或开发STL更优化的C++容器。

标准性

系统的设计和开发遵循国际标准和行业标准;符合CRISP-DM规定的数据挖掘项目实施的过程流程标准,遵循ole for dm规范中挖掘模型和操作原语;使用DMX作为用户的接口来驱动数据挖掘过程。

良好的可扩展性

系统支持多个层面的可扩展性,通过快速开发/重组、参数配置等多个方面使得系统可以实现客户未来不断变化的需求;系统有合理的层次结构;要有较强的扩展能力,可快速方便的插入新算法;系统要求支持平台无关性,能够适应多种主流主机平台、数据库平台、中间件平台,具有较强的跨系统平台的能力。系统能适应不同的网络结构,可根据业务的发展灵活扩展硬件产品。

2.2系统架构体系

根据架构分析和设计思想产生系统的架构图,并对架构图进行描述,说明分层的原因、层次的职责。首先从系统整体架构来阐述,然后对数据挖掘服务器进一步分层,模块化,并完整说明每层实现的功能。

2.3系统整体架构

上面的架构图由:数据层、挖掘服务器层、驱动层和客户层组成。

数据层:由业务系统的各个数据库或数据仓库组成。通过ODBC或相应的驱动为挖掘服务器层提供数据支持。

挖掘服务器层:实现对数据进行预处理,包括主成分分析、抽样、过滤、投影、离散等,创建、训练、评估模型,预测,修改模型参数,删除规则,删除模型等一系列功能。本层通过Socket与上面的驱动层交互,接收驱动层的DMX语句,执行完成后作出响应并返回结果到上一层。

驱动层:根据客户层的具体平台分为JAVA驱动和C++驱动,驱动层提供API接口供客户端调用。类似于数据库系统中的JDBC驱动和ODBC驱动。

客户层:处于系统的最上层。系统最终用户的使用界面和设备。包括基于浏览器的瘦客户端和基于GUI的胖客户端应用。

3、数据挖掘服务器架构

本架构图是对服务器客户端架构的进一步分层,模块化后的描述。上面的架构图由数据源接口层、核心服务层、传输层和用户驱动(接口)层组成。

数据源接口层:提供获取数据的接口。

核心服务层:由许多核心服务单元组成,包括会话管理、DMX解析、DMX引擎、算法、模型管理、内存管理、异步框架、持久化管理、并发控制、异常处理和计算与排序缓冲区等。

传输层:用于获取上层的输入,并向上层返回结果。

用户驱动(接口)层:用户使用DMX语句提交给本层完成模型管理、模型训练、模型预测等功能。

4、模块概要设计

4.1内存管理

4.1.1服务器内存。系统内存主要分为3块:系统管理模型和规则的内存,用于排序及其它计算操作的缓冲区内存,用户连接私有内存。

内容管理的目标是实现:不产生内存碎片;内存不会泄露;内存分配和删除要快;尽量做到总是有内存可用。

4.1.2大数据量支持。数据挖掘服务器提供对巨大数据量的支持。当然,有些算法对于大数据量是没有意义的,比如说神经网络,这是由算法本身的特征决定的。数据挖掘服务器可以支持大量数据,但也有可能导致计算量的急剧增加,所以相应的计算机也应该比较强劲。用户可以通过一个参数MaxMemoryBuffer来设置某一次处理可以使用的最大内存,如果所需内存超过这个数值,系统将使用用户的硬盘空间来处理数据,所以如果用户希望有比较大的内存,希望优化性能的话可以设大这个参数,尽可能将数据在内存处理。

4.1.3客户端数据集。BI系统往往工作在巨大的数据量的环境中。所以挖掘服务器是以效率为优先考虑设计的,尽量使用更少的内存,更少的代码来加快执行速度。挖掘服务器的驱动中,结果集有三种数据缓冲类型,对应着不同的用户需求和资源(内存)需求的选项:不缓冲数据集,缓冲一行数据集(包括该行的所有子表),缓冲整个数据集。

不缓冲数据集提供深度单向遍历能力。特点是只使用很少的内存。这种数据集的内存需求为除了连接会使用一个网络传输的缓冲区以外,该数据集几乎不会申请其它任何内存,这种情况对于内存使用苛刻的用户使用,或作为更底层的代码集成进用户的系统,这种低资源要求是非常适合的。但不缓冲数据集付出的代价是在结果集中有嵌套表的情况下顺序来读取这些嵌套表。这个概念是递归的,也就是说有多层嵌套表时,必须也是按深度遍历的方式来读取。

缓冲一行数据集提供主数据集上单向遍历,子所有嵌套表随机遍历。特点是内存需求适中,遍历能力能满足大多数需求。这个选项是默认的选项。这种数据集至少会缓冲主数据集的任意一行数据,包括该行的所有子嵌套表。系统会分配一个适当大小的内存池来分配所生成的结果集对象。这些内存在在用户遍历完一行时释放,接下来被重用。

全缓冲数据集提供主数据集,子嵌套表的随机访问能力,但在数据集比较大时会占用比较大的内存。如果对数据集要求随机访问的话可以使用这种数据集。

用户在使用数据集时可以根据使用需求,资料意味着状况来决定使用什么类型的数据集。图中灰色部分表示各自占用的内存。

4.2挖掘算法

数据挖掘服务器系统将算法分离出来,系统为算法的接入提供统一的接口,将算法当成一种可插入式的模块。从系统框架的角度来看,并不关心算法是如何实现的。这种设计无疑使本系统有很强的可扩展性,将来可以方便的插入新的数据挖掘算法。

系统实现的挖掘算法应基本覆盖目前主流的挖掘算法,能满足用户各种数据挖掘任务需求。算法实现中充分考虑运行速度和内存的使用,力求达到最佳的运行效率。多个算法只扫描一遍输入数据集以实现支持大数据量的要求,对部分挖掘算法考虑增量挖掘。

4.3数据源

4.3.1统一数据源架构。统一数据源是产品应支持的数据源架构,挖掘服务器使用其中的平面格式部分(即表或类表的一维数据)。统一数据源的概念是在企业的信息系统中提供统一接口的数据源接口,而不管数据实际是从不同的数据库、文件、Web Service或其它接口提供的。

4.3.2数据源连接池。如果数据来源是数据库,用户可以对连接池进行设置。

4.3.3数据源种类。挖掘系统现在支持平面数据源格式,包括ORACLE(原生接口),DB2(原生接口),及ODBC接口的数据源,及文本文件。

4.4异常处理

为了最大程度实现异常处理的通用性、可扩展性以及可配置性,系统采用统一的异常处理框架,并且提供统一的异常处理接口。通过统一配置错误信息,各模块中不论任何地方,只需调用此唯一的接口,框架就会根据配置信息执行需要的异常处理。

参考文献

[1]Microsoft公司2000年《Microsoft OLE DB for Data Mining Specification》微软的数据挖掘规范,此规范中的DMX定义了模型和使用的操作原语

[2]SIG组织 1999年《cross-industry standard process for data mining》跨行业数据挖掘标准流程标准

作者简介

蒋勇杰(1982-)男,汉族,广西桂林人,目前在中国人民大学攻读管理学硕士研究生学位,现在中国储备粮管理总公司主要从事项目管理工作

上一篇:浅谈建筑智能信息系统防雷 下一篇:浅析用电信息采集系统在营销工作中的应用