一、  数据挖掘语言概述  
       设计全面的数据挖掘语言是一个巨大的挑战,因为数据挖掘覆盖了宽广的任务,从数据特征化到挖掘关联规则,数据分类,聚集和偏差检测,等等。每个任务都有不同的需求。设计一个有效的数据挖掘语言需要对各种不同的数据挖掘任务的能力、限制、以及运行机制都有深入地理解。

     数据挖掘语言的研究经历了两个阶段,第一个阶段是研究单位和公司自行研究和开发阶段;第二阶段是研究单位和公司组成联盟,研制和开发数据挖掘语言标准化的阶段。这两个阶段趋势界限是很明显的:
1、        第一个阶段成果包括Jiawei Han等研制的DMQL;Imielinski和Virmani提出的MSQL;Meo、Psaila、和Ceri提出MINE RULE操作器;
2、        第二阶段主要包括数据挖掘组织协会(DMG)提出的预言模型标记语言PMML;
3、        第三阶段是数据挖掘通用语言类型,微软公司提出的OLE DB for Data Mining规范则属于数据挖掘的通用语言类型;


二、 数据挖掘查询语言


数据挖掘系统应该有能力支持特殊的和交互的数据挖掘(sad-hoc and interactive data mining),目的是为了灵活和有效的知识发现。数据挖掘查询语言即是设计用来支持这个特点的。我们首先以加拿大Simon Franser大学Jiawei Han等开发的数据挖掘系统DBMiner中数据挖掘查询语言DMQL(Data Mining Query Language)来介绍查询语言的特点,接着简单介绍其它研究工作。

数据挖掘查询语言DMQL由数据挖掘原语组成,数据挖掘原语用来定义一个数据挖掘任务。用户使用数据挖掘原语与数据挖掘系统通信,使得知识发现更有效。这些原语有以下几个种类:数据库一部分的规范以及用户感兴趣的数据集(包括感兴趣的数据库属性或数据仓库的维度);挖掘知识的种类;在指导挖掘过程中有用的背景知识;模式估值的兴趣度测量;以及挖掘出的知识如何可视化表示。数据挖掘原语允许用户在挖掘过程中从不同的角度或深度与数据挖掘系统进行交互式地通信。

数据挖掘查询的基本单位是数据挖掘任务,通过数据挖掘查询语言,数据挖掘任务可以通过查询的形式输入到数据挖掘系统中。一个数据挖掘查询由以下五种基本的数据挖掘原语定义:

1)任务相关数据原语

这是被挖掘的数据库的一部分。挖掘的数据不是整个数据库,只是和具体商业问题相关、或者用户感兴趣的数据集,即是数据库中一部分表,以及表中感兴趣的属性。该原语包括以下具体的内容:数据库或数据仓库的名称;数据库表或数据仓库的立方体;数据选择的条件;相关的属性或维;数据分组定义。

2)被挖掘的知识的种类原语

该原语指定被执行的数据挖掘的功能,在DMQL中将挖掘知识分为五种类型,即五种知识的表达:特征规则;辨别规则;关联规则;分类/预言;聚集。

3)背景知识原语

用户能够指定背景知识,或者关于被挖掘的领域知识。这些知识对于引导知识发现过程和评估发现的模式都是非常有用的。背景知识原语包括:概念层次(concept hierarchy);对数据关系的用户信任度(user beliefs about relationships in the data)。

4)兴趣度测量原语

这个功能是将不感兴趣的模式从知识中排除出去。兴趣度测量能够用来引导数据挖掘过程,或者在发现后评估被发现的模式。不同种类的知识有不同种类的兴趣度测量方法。例如对关联规则来说,兴趣度测量包括支持度(support)和可信度(confidence)。低于用户指定的支持度和可信度阈值的规则被认为是不感兴趣的。兴趣度测量原语包括:简单性(simplicity);确定性(certainty,比如:可信度);效用(utility,比如:支持度);新颖性(novelty)。

5)被发现模式的表示和可视化原语

这个原语定义被发现的模式显示的方式,用户能够选择不同的知识表示形式。该原语包括:规则,表格,报告,图表,图形,决策树,和立方体;向下钻入和向上累积(drill-down and roll-up)。

DMQL正是基于这些原语设计的数据挖掘查询语言。它允许从关系数据库和数据仓库中多个抽象层次上特殊(ad-hoc)和交互地挖掘多种种类的知识。DMQL采用类似SQL语言的语法,因此它能够很容易地和关系查询语言SQL集成。

除了DMQL以外,我们简单介绍其它一些数据挖掘查询语言的研究工作。MSQL是一个数据挖掘查询语言,它有Imielinski和Virmani提出。这个语言使用了类似SQL的语法和SQL原语(包括排序、分组、和其它原语)。既然在数据挖掘中可能产生大量的规则,MSQL提供了一个称作GetRule和SelectRule的原语,用于规则产生和规则选择。它统一地对待数据和规则,因此,能够在执行数据选择,以及基于查询的规则产生时进行优化工作,同时也能在操纵或者查询产生规则的集合时进行优化。其它在数据挖掘语言设计方面的研究工作包括Meo、Psaila、和Ceri提出MINE RULE操作器。它同样遵循类似SQL的语法,是为挖掘关联规则设计的规则产生查询语言。








数据挖掘查询语言能与数据挖掘系统通信,进行交互和特殊的挖掘。它提供了独立于应用的操作原语,简明精确的问题描述方法。但是,由于各查询语言是研究机构和公司为自己的数据挖掘系统开发,没有形成标准,它并没有实质性地解决各个数据挖掘系统彼此互相孤立,难于嵌入大型应用的问题。

PMML为处理和交换预言模型提供了一个简单、开放的构架,使得各公司能够更加迅速地使用他们从在线和传统的数据中挖掘出的信息。这种标准使得公司在IT基础构架中更加容易构建商业智能。PMML允许用户在一个软件商的应用程序内开发模型,而使用其它软件商的应用程序对模型可视化、分析、估值或者以别的方式使用该模型。它使得在不同应用程序之间能够无缝地交换模型变为可能,解决了数据挖掘系统彼此孤立,难于嵌入大型应用的问题。

然而,PMML是预言模型标记语言,数据挖掘模型包括预言模型和描述模型,因此PMML并不是全面的数据挖掘模型定义语言。同时,PMML1.0不是一个全面的集合,我们期望PMML最终将发展成一个全面的、具有丰富建模能力的模型定义语言。我们预见并且盼望这个标准接下来的版本能够介绍优化,比如种类字段(categorical fields)的位向量扩充(bit vector expansions)或者连续字段(continuous fields)的log 变换。PMML,或者类似于PMML的事物,随着商业系统对统计和数据挖掘工具与技术需求的日益增加,对它的要求显得特别迫切。

OLE DB for DM规范的发布在预言和描述分析模型被商业应用广泛使用的道路上是一个重大的里程碑。它同时具备了数据挖掘查询和建模语言的优点,它的推广必将推动数据挖掘行业的发展。但是,对于一些数据挖掘模型,比如:概念描述(特征和辨别规则)和关联规则,还有数据仓库模型,OLAP的创建和使用,在目前的版本中仍然没有涉及。我们期望微软公司将继续动态地扩充和丰富它的内容。


三、 数据挖掘建模语言



数据挖掘建模语言是对数据挖掘模型进行描述和定义的语言。如果我们设计一种标准的数据挖掘建模语言,使得数据挖掘系统在模型定义和描述方面有标准可以遵循,那么各系统之间可以共享模型,既可以解决目前各数据挖掘系统之间封闭性的问题,有可以在其它应用系统中间嵌入数据挖掘模型,解决孤立的知识发现问题。“预言模型标记语言”(Predictive Model Markup Language,PMML)正是这样一种数据挖掘建模语言。


PMML被一个称作数据挖掘协会(The Data Mining Group ,http://www.dmg.org/,DMG)的组织开发。该组织由Angoss, Magnify, NCR, SPSS和芝加哥Illinois大学
等企业和单位组成,它的目的是开发预言模型开放标准,策略是将此标准推荐给W3C工作组,使PMML成为W3C的正式推荐物。目前DMG宣布了定义预言模型开放标准的第一个版本PMML 1.0。PMML主要目的是允许应用程序和联机分析处理(OLAP)工具能从数据挖掘系统获得模型,而不用独自开发数据挖掘模块。另一个目的是能够收集使用大量潜在的模型,并且统一管理各种模型的集合。这些能力在商业应用领域是有效的配置分析模型的基础。


PMML是一种基于XML的语言,用来定义预言模型。它为各个公司定义预言模型和在不同的应用程序之间共享模型提供了一种快速并且简单的方式。通过使用标准的XML解析器对PMML进行解析,应用程序能够决定模型输入和输出的数据类型,模型详细的格式,并且按照标准的数据挖掘术语来解释模型的结果。


PMML提供了一个灵活机制来定义预言模型的模式,同时支持涉及多个预言模型的模型选择和模型平衡(model averaging)。对于那些需要全部学习、部分学习和分布式学习(ensemble learning, partitioned learning, and distributed learning)的应用程序,这种语言被证明是非常有用的。另外,它使得在不同的应用程序和系统之间移动预言模型变得容易、方便。特别地,PMML非常适合部分学习、元学习、分布式学习、以及相关领域。


使用PMML进行模型定义由以下几部分组成:


1)头文件(a header)


2)数据模式(a data schema)


3)数据挖掘模式(a data mining schema)


4)预言模型模式(a predictive model schema)


5)预言模型定义(definitions for predictive models)


6)全体模型定义(definitions for ensembles of models)


7)选择和联合模型和全体模型的规则(rules for selecting and combining models and ensembles of models)


8)异常处理的规则(rules for exception handling)


其中第5项组件是必不可少的。另外预言模型的模式必须被定义,这能够利用一个或多个模式(组件3,4,5)来定义。其它几项组件是可选的。


PMML1.0标准版提供了一个小的DTD(文档类型定义,XML术语)集合,DTD详细说明了决策树和多项式回归模型的实体和属性。DTD1.0遵循着一个通用模式,该模式将一个数据字典和一个或多个模型的定义相结合,数据字典能够立即应用于模式。数据字典的元素是非常简单的。


DMG当前正在制定PMML版本1.1,该版本提供独立于应用程序定义模型的方法,使得版权问题和不兼容问题不再成为应用程序之间交换模型的障碍。