版权归原作者所有,如有侵权,请联系我们

[科普中国]-数据挖掘查询语言

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

概述

随着网络技术的发展和计算机使用的日益广泛,电子化数据越来越多,人们正面临“数据丰富而知识贫乏”的问题。八十年代末兴起的数据挖掘(data mining)技术或数据库中的知识发现(knowledge discovery in database,KDD)技术为解决此问题开辟了一条道路。数据挖掘是在大量的数据中发现潜在的、有价值的模式和数据间关系(知识)的过程。经过十多年的工作,数据挖掘技术的研究与应用已取得了很大的成果。

然而,我们还面临着许多问题:(1)各种数据挖掘问题及挖掘方法基于不同的模型和技术,彼此互相孤立,联系很少;(2)缺少简明精确的问题描述方法,挖掘的语义通常是由实现方法决定的;(3)数据挖掘系统仅提供孤立的知识发现功能,难于嵌入大型应用;(4)数据挖掘引擎与数据库系统是松散耦合,T.Imielinski 和 H.Mannila 称其为"文件挖掘(file mining)系统",它没有提供应用独立的操作原语。

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

对于上述数据挖掘语言,根据功能和侧重点不同,可将其分为三种类型:数据挖掘查询语言;数据挖掘建模语言;通用数据挖掘语言。第一阶段的数据挖掘语言一般属于查询语言;PMML属于建模语言;OLE DB for DM属于通用数据挖掘语言。1

数据挖掘查询语言数据挖掘系统应该有能力支持特殊的和交互的数据挖掘(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的语法,是为挖掘关联规则设计的规则产生查询语言。

数据挖掘其它语言数据挖掘建模语言数据挖掘建模语言是对数据挖掘模型进行描述和定义的语言。如果我们设计一种标准的数据挖掘建模语言,使得数据挖掘系统在模型定义和描述方面有标准可以遵循,那么各系统之间可以共享模型,既可以解决目前各数据挖掘系统之间封闭性的问题,有可以在其它应用系统中间嵌入数据挖掘模型,解决孤立的知识发现问题。“预言模型标记语言”(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,该版本提供独立于应用程序定义模型的方法,使得版权问题和不兼容问题不再成为应用程序之间交换模型的障碍。

通用数据挖掘语言通用数据挖掘语言合并了上述两种语言的特点,既具有定义模型的功能,又能作为查询语言与数据挖掘系统通信,进行交互和特殊的挖掘。通用数据挖掘语言的标准化是解决目前数据挖掘行业出现问题的最优的解决方案。2000年3月,微软公司推出了一个数据挖掘语言,称作OLE DB for Data Mining(DM)。这是朝数据挖掘语言原语标准化方面最显著的努力。

OLE DB for DM的规范包括创建原语以及许多重要数据挖掘模型的定义和使用(包括预言模型和聚集)。它是一个基于SQL预言的协议,为软件商和应用开发人员提供了一个开放的接口,该接口将数据挖掘工具和能力更有效地和商业以及电子商务应用集成。同时,OLE DB for DM已经与DMG发布的PMML标准结合。通过与PMML标准结合,微软将数据挖掘分析应用带入了一个更加强大的开放规范。这意味着大量的组织或公司现在都可以有一种简单的并且易实现的方式将数据挖掘模型与他们自己构建的应用相结合,增强了应用系统的分析能力,却没有增加复杂性。

OLE DB for DM扩充了SQL语言语法,使得商业分析和开发人员只是调用单一确定的API(应用程序接口)函数即可实现数据挖掘功能,而不需要特殊的数据挖掘技能。它与关系数据库自然的集成能够加快数据挖掘进入高利润的电子商务应用领域,例如站点个性化设计和购物篮分析。

微软的目的是为数据挖掘提供行业标准,以至于任何数据挖掘软件的算法,只要符合这个标准,都能容易地嵌入应用程序中。OLE DB for DM支持多种流行的数据挖掘算法。使用OLE DB for DM,数据挖掘应用能够通过OLE DB生产者接进任何表格式的数据源,数据挖掘分析现在能够依赖一个关系数据库直接进行。

为了更容易访问,OLE DB for DM没有增加任何新的OLE DB接口;相反,这个规格定义了一个简单的查询语言,它的语法非常类似于SQL。