论文部分内容阅读
摘要:针对实际问题选择数据挖掘方法是一个困难的工作,使用本体对数据挖掘方法进行建模并为用户推荐适合的方法是一个可行的解决方案。PMML是一种应用广泛的数据挖掘国际标准,提出了一种基于PMML标准构建数据挖掘本体的方法并用Protégé构建了一个本体,为利用本体推理为用户推荐挖掘算法奠定了基础。
关键词:本体;数据挖掘;PMML;
中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)36-2563-03
Constructing Data Mining Ontology Based on PMML Standard
LIANG Zhu, ZHANG Hui, ZHANG Shi-ling
(Southwest University of Science and Technoloty,Mianyang 621010,China)
Abstract: It is difficult to select a suitable data mining algorithm for a real problem. Using ontology for modeling data mining algorithms and suggestingappropriate algorithm to a user is a feasible solution. We Propose a method to construct data mining ontology based.
Key words: ontology; data mining; PMML
数据挖掘是从海量数据中获取知识的过程。然而,随着研究的不断发展,针对各种不同的问题催生出了各种不同的数据挖掘算法,如神经网络、支持向量机、粗糙集等。但这些算法有各自的假设,并需要设置各种参数,用户在没有数据挖掘专家帮助的情况下很难使用这些算法对他们的数据进行挖掘。将数据挖掘模型本体化,利用本体的推理机制为用户推荐算法,对简化用户的挖掘过程具有重要意义。本文提出了一种基于PMML标准构建数据挖掘模型本体的方法,为利用本体推理为用户推荐挖掘算法奠定了基础。
1 本体
本体(ontology)原本是一个哲学上的概念,是研究客观世界本质的学问。在计算机科学中,本体的定义尚未统一,Studer在1998年对本体的定义得到最多的认同:“本体是对某一领域概念模型的明确的、形式化的规范说明”[1] 人工智能领域的研究被分为两类,一类是面向形态的,另一类是面向内容的。前者研究逻辑和知识的表示,后者研究知识的存储。本体是面向内容的,它清楚地描述了概念及概念之间的关系,通过概念之间的关系来描述概念的语义。不同研究者都把它当作是领域内不同主体(人、机器、软件系统等)之间进行交流(对话、互操作、共享等)的一种语义基础,即由本体提供一种共识。
出于对各自学科领域和具体工程的不同考虑,构建本体的过程各不相同。目前还没有一套标准的本体构建方法。一般认为,Gruber在1995年提出的5条规则[2]是比较有影响的:1)清晰性、明确性和客观性:本体应该用自然语言对术语给出明确客观的语义定义;2)完整性:所给出的定义是完整的,能表达特定术语的含义;3)一致性:知识推理产生的结论与术语本身的含义不会产生矛盾;4)最大单调可扩展性:向本体中添加通用或专用的术语时,通常不需要修改已有的内容;5)最少约束:对待建模对象应该尽可能少列出限定约束条件。
Ontology可以按照分类来组织,包含5个基本的建模元语:类、关系、函数、公理、实例;4种基本关系:part-of、kind-of、instance-of和attribute-of。本体构建者也可以根据具体情况定义关系。[3]
2 PMML
数据挖掘技术的研究与应用经历了十多年的努力和发展已取得了很大的成果,但仍然还存在许多问题:
1)各种数据挖掘问题及挖掘方法基于不同的模型和技术,彼此互相独立,联系很少;
2)缺少简明精确的问题描述方法,挖掘的语义通常是由实现方法决定的;
3)数据挖掘系统仅提供孤立的知识发现功能,难于嵌入大型应用;
4)数据挖掘系统仅提供孤立的知识发现功能,它没有提供应用独立的操作元语。
到目前为止,数据挖掘行业是高度分散的,公司和研究机构独立开发各自的数据挖掘系统和平台,没有形成开放性的标准;同时数据挖掘本身是一门多学科综合跨度非常大的技術,这两点是上述问题存在的根本原因。数据挖掘行业非常需要一个数据挖掘和统计模型的标准描述,除此之外,也希望该标准是一个相对严谨的标准,为今后提出的标准之间的互操作提供一个通用的平台。
由Angoss,IBM,NCR,Magnify,Oracle,Illinois大学的NCDM(The NationalCenter For Data Mining),SPSS,Xchange以及MINEit等组成的DMG,于1999年7月制订出基于XML的预测模型标记语言PMML,其思想就是依托XML本身特有的合理数据分层思想和自描述性,实现数据挖掘模型的描述、管理标准化和可移植性[4],是一个已经被W3C所接受的标准。其目的在于将模型以独立于形式的方式封装,使不同的应用程序都可以使用它[5]。PMML可以帮助用户简便、快捷地定义模型并且在不同厂商的相容应用之间共享这些模型,为应用提供了一个独立于厂商的方法来定义预测模型(实际范围已经扩展到其它数据挖掘模型),使用PMML标准在不相容的应用系统之间可以实现无缝的模型交换。现在已经得到应用的是PMML3.2。
3 数据挖掘模型本体的构建
3.1 数据挖掘模型
我们的研究是要构建数据挖掘模型的本体,在这里将以树的形式简单介绍基于PMML标准的数据挖掘模型的主要模块,如图1所示。模型主要包括头信息、数据字典、 挖掘任务、 转换字典和PMML模型以及扩展几个部分[6]。
1)头信息(Header):包含了版权、版本等相关信息
2)数据字典(DataDictionary):涉及整个PMML文件中的原始数据定义
3)挖掘任务(MiningBuildTask):包含了任意XML形式的对于挖掘结构的描述
4)转换字典(TransformationDictionary):定义了多种形式的转换机制
5)PMML模型(PMML Model):包含了关联规则,聚类,回归等各类模型的定义
6)扩展(Extension):包含了其他各部分没有定义的需要扩充的描述,也是每个元素的定义中都包含的内容,方便用户对模型的说明和扩展
其中最重要的部分是数据字典和PMML模型本身。PMML对模型中的每一个元素可以有进一层的定义,定义中包含该元素涉及的其他元素和特征。对特征的定义包含特征的名称、数值类型。
3.2 本体构建
3.2.1 本体构建工具Protégé
Protégé是一个免费的开放源码本体编辑器和知识库框架。Protégé平台支持两种本体建模方式,即采用Protégé框架编辑器和Protégé OWL编辑器。Protégé本体可导出为各种格式,包括Clips、UML、DAML OIL、RDF(S)、OWL 和 XML Schema。它基于Java,具备可扩展性,提供的是一种即插即用环境,使其成为一个进行快速构建原型)和开发应用程序的灵活基础。
Protégé所采用的方法论使得系统构建者能够从模块部件基础上搭建软件系统,包括组建领域模型的可重用的框架、独立于领域的问题解决方法论,这方便了解决问题时的策略制定。系统包括两个主要的部件:本体编辑器,通过扩展层次结构来建立领域本体,包括抽象和实际的类与属性;基于本体建立的知识获取工具,以得到本体的实例。
Protégé拥有一个由开发者、学术用户、政府用户和公司用户共同构成的强大群体。他们在各种各样的领域中为寻求知识解决方案而使用着Protégé,如生物医学、情报搜集、公司建模等。
3.2.2 本体构建方法
用类表示的本体构建关键在于合理地对知识进行分类,并正确完善地定义类之间的关系。在该数据挖掘模型的顶层本体构建参照PMML标准,按照以下方法构建:
图2 用Protégé构建的数据挖掘模型本体Header部分
图3 Header的NECESSARY條件约束
1)类的构建
定义PMMLHeader, PMML-MiningBuildTask, PMML-DataDictionary, PMML-Models和PMML-TransformationDictionary几个基本类以及 BaseElement, BaseAttribute几个扩展类。PMML-Models下包含子类Association,Clustering,GeneralRegression等各种算法模型,该类也是挖掘模型的核心部分,各算法模型详细定义了出入口参数,挖掘数据类型,使用算法名称等,其组织形式和其他各基本类相似。BaseElement, BaseAttribute包含一些类都关联的共用子类,如Extension,ValuePartition,optype等。
在各个类下定义对应的Element(元素)和Attribute(特征)两个基本子类,包含该部分的所有元素和特征。通过Element关联到其他相关类,Attribute则定义了该类的各种特征。如PMML-Header的HeaderElement子类包含子类Application,Annotation,Timestamp和Header(因为Header和其他类的关系不是父子类的继承关系,所以作为兄弟结点放在同一层,具体关系定义会在下一节中提到);PMML-Header的HeaderAttribute包含子类copyright和description等,表示Header的特征,如图2所示。
ValuePartitions专门用来定义一些数据字典中没有定义的离散数据类型。如属性property的属性类型为PROPERTY,取值范围是:valid,invalid,missing。则在ValuePartitions下建立子类PropertyValuePartitions,在PropertyValuePartitions下建立子类valid,invalid,missing。然后建立property的对象属性hasProperty,再设置该属性的值域range为PropertyValuePartitions。[7]
2)关系的定义
不同于其他的领域本体,数据挖掘模型本体中的各类间的关系并不依赖于父类和子类间的继承,而是相互关联。所以,定义对象属性hasElement,hasAttribute和数值属性hasValue几个主要属性,利用protégé提供的NECESSARY和NECESSARY
关键词:本体;数据挖掘;PMML;
中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)36-2563-03
Constructing Data Mining Ontology Based on PMML Standard
LIANG Zhu, ZHANG Hui, ZHANG Shi-ling
(Southwest University of Science and Technoloty,Mianyang 621010,China)
Abstract: It is difficult to select a suitable data mining algorithm for a real problem. Using ontology for modeling data mining algorithms and suggestingappropriate algorithm to a user is a feasible solution. We Propose a method to construct data mining ontology based.
Key words: ontology; data mining; PMML
数据挖掘是从海量数据中获取知识的过程。然而,随着研究的不断发展,针对各种不同的问题催生出了各种不同的数据挖掘算法,如神经网络、支持向量机、粗糙集等。但这些算法有各自的假设,并需要设置各种参数,用户在没有数据挖掘专家帮助的情况下很难使用这些算法对他们的数据进行挖掘。将数据挖掘模型本体化,利用本体的推理机制为用户推荐算法,对简化用户的挖掘过程具有重要意义。本文提出了一种基于PMML标准构建数据挖掘模型本体的方法,为利用本体推理为用户推荐挖掘算法奠定了基础。
1 本体
本体(ontology)原本是一个哲学上的概念,是研究客观世界本质的学问。在计算机科学中,本体的定义尚未统一,Studer在1998年对本体的定义得到最多的认同:“本体是对某一领域概念模型的明确的、形式化的规范说明”[1] 人工智能领域的研究被分为两类,一类是面向形态的,另一类是面向内容的。前者研究逻辑和知识的表示,后者研究知识的存储。本体是面向内容的,它清楚地描述了概念及概念之间的关系,通过概念之间的关系来描述概念的语义。不同研究者都把它当作是领域内不同主体(人、机器、软件系统等)之间进行交流(对话、互操作、共享等)的一种语义基础,即由本体提供一种共识。
出于对各自学科领域和具体工程的不同考虑,构建本体的过程各不相同。目前还没有一套标准的本体构建方法。一般认为,Gruber在1995年提出的5条规则[2]是比较有影响的:1)清晰性、明确性和客观性:本体应该用自然语言对术语给出明确客观的语义定义;2)完整性:所给出的定义是完整的,能表达特定术语的含义;3)一致性:知识推理产生的结论与术语本身的含义不会产生矛盾;4)最大单调可扩展性:向本体中添加通用或专用的术语时,通常不需要修改已有的内容;5)最少约束:对待建模对象应该尽可能少列出限定约束条件。
Ontology可以按照分类来组织,包含5个基本的建模元语:类、关系、函数、公理、实例;4种基本关系:part-of、kind-of、instance-of和attribute-of。本体构建者也可以根据具体情况定义关系。[3]
2 PMML
数据挖掘技术的研究与应用经历了十多年的努力和发展已取得了很大的成果,但仍然还存在许多问题:
1)各种数据挖掘问题及挖掘方法基于不同的模型和技术,彼此互相独立,联系很少;
2)缺少简明精确的问题描述方法,挖掘的语义通常是由实现方法决定的;
3)数据挖掘系统仅提供孤立的知识发现功能,难于嵌入大型应用;
4)数据挖掘系统仅提供孤立的知识发现功能,它没有提供应用独立的操作元语。
到目前为止,数据挖掘行业是高度分散的,公司和研究机构独立开发各自的数据挖掘系统和平台,没有形成开放性的标准;同时数据挖掘本身是一门多学科综合跨度非常大的技術,这两点是上述问题存在的根本原因。数据挖掘行业非常需要一个数据挖掘和统计模型的标准描述,除此之外,也希望该标准是一个相对严谨的标准,为今后提出的标准之间的互操作提供一个通用的平台。
由Angoss,IBM,NCR,Magnify,Oracle,Illinois大学的NCDM(The NationalCenter For Data Mining),SPSS,Xchange以及MINEit等组成的DMG,于1999年7月制订出基于XML的预测模型标记语言PMML,其思想就是依托XML本身特有的合理数据分层思想和自描述性,实现数据挖掘模型的描述、管理标准化和可移植性[4],是一个已经被W3C所接受的标准。其目的在于将模型以独立于形式的方式封装,使不同的应用程序都可以使用它[5]。PMML可以帮助用户简便、快捷地定义模型并且在不同厂商的相容应用之间共享这些模型,为应用提供了一个独立于厂商的方法来定义预测模型(实际范围已经扩展到其它数据挖掘模型),使用PMML标准在不相容的应用系统之间可以实现无缝的模型交换。现在已经得到应用的是PMML3.2。
3 数据挖掘模型本体的构建
3.1 数据挖掘模型
我们的研究是要构建数据挖掘模型的本体,在这里将以树的形式简单介绍基于PMML标准的数据挖掘模型的主要模块,如图1所示。模型主要包括头信息、数据字典、 挖掘任务、 转换字典和PMML模型以及扩展几个部分[6]。
1)头信息(Header):包含了版权、版本等相关信息
2)数据字典(DataDictionary):涉及整个PMML文件中的原始数据定义
3)挖掘任务(MiningBuildTask):包含了任意XML形式的对于挖掘结构的描述
4)转换字典(TransformationDictionary):定义了多种形式的转换机制
5)PMML模型(PMML Model):包含了关联规则,聚类,回归等各类模型的定义
6)扩展(Extension):包含了其他各部分没有定义的需要扩充的描述,也是每个元素的定义中都包含的内容,方便用户对模型的说明和扩展
其中最重要的部分是数据字典和PMML模型本身。PMML对模型中的每一个元素可以有进一层的定义,定义中包含该元素涉及的其他元素和特征。对特征的定义包含特征的名称、数值类型。
3.2 本体构建
3.2.1 本体构建工具Protégé
Protégé是一个免费的开放源码本体编辑器和知识库框架。Protégé平台支持两种本体建模方式,即采用Protégé框架编辑器和Protégé OWL编辑器。Protégé本体可导出为各种格式,包括Clips、UML、DAML OIL、RDF(S)、OWL 和 XML Schema。它基于Java,具备可扩展性,提供的是一种即插即用环境,使其成为一个进行快速构建原型)和开发应用程序的灵活基础。
Protégé所采用的方法论使得系统构建者能够从模块部件基础上搭建软件系统,包括组建领域模型的可重用的框架、独立于领域的问题解决方法论,这方便了解决问题时的策略制定。系统包括两个主要的部件:本体编辑器,通过扩展层次结构来建立领域本体,包括抽象和实际的类与属性;基于本体建立的知识获取工具,以得到本体的实例。
Protégé拥有一个由开发者、学术用户、政府用户和公司用户共同构成的强大群体。他们在各种各样的领域中为寻求知识解决方案而使用着Protégé,如生物医学、情报搜集、公司建模等。
3.2.2 本体构建方法
用类表示的本体构建关键在于合理地对知识进行分类,并正确完善地定义类之间的关系。在该数据挖掘模型的顶层本体构建参照PMML标准,按照以下方法构建:
图2 用Protégé构建的数据挖掘模型本体Header部分
图3 Header的NECESSARY條件约束
1)类的构建
定义PMMLHeader, PMML-MiningBuildTask, PMML-DataDictionary, PMML-Models和PMML-TransformationDictionary几个基本类以及 BaseElement, BaseAttribute几个扩展类。PMML-Models下包含子类Association,Clustering,GeneralRegression等各种算法模型,该类也是挖掘模型的核心部分,各算法模型详细定义了出入口参数,挖掘数据类型,使用算法名称等,其组织形式和其他各基本类相似。BaseElement, BaseAttribute包含一些类都关联的共用子类,如Extension,ValuePartition,optype等。
在各个类下定义对应的Element(元素)和Attribute(特征)两个基本子类,包含该部分的所有元素和特征。通过Element关联到其他相关类,Attribute则定义了该类的各种特征。如PMML-Header的HeaderElement子类包含子类Application,Annotation,Timestamp和Header(因为Header和其他类的关系不是父子类的继承关系,所以作为兄弟结点放在同一层,具体关系定义会在下一节中提到);PMML-Header的HeaderAttribute包含子类copyright和description等,表示Header的特征,如图2所示。
ValuePartitions专门用来定义一些数据字典中没有定义的离散数据类型。如属性property的属性类型为PROPERTY,取值范围是:valid,invalid,missing。则在ValuePartitions下建立子类PropertyValuePartitions,在PropertyValuePartitions下建立子类valid,invalid,missing。然后建立property的对象属性hasProperty,再设置该属性的值域range为PropertyValuePartitions。[7]
2)关系的定义
不同于其他的领域本体,数据挖掘模型本体中的各类间的关系并不依赖于父类和子类间的继承,而是相互关联。所以,定义对象属性hasElement,hasAttribute和数值属性hasValue几个主要属性,利用protégé提供的NECESSARY和NECESSARY