论文部分内容阅读
数据挖掘技术是当前计算机技术的研究热点之一。当前的数据挖掘研究主要在命题逻辑的框架内,存在描述能力弱和不便于利用背景知识的局限性。而且,这些方法多采用单表假设,算法寻找单表数据中的模式。但数据通常保存在关系数据库的多张表中,若想利用现有的数据挖掘算法,存在将数据转换到单表中的难题。
归纳逻辑程序设计(Inductive Logic Programming,ILP)是机器学习和逻辑程序设计的一个交叉研究领域。它使用归纳的思想,借助成熟的逻辑程序设计的理论与方法,克服了传统机器学习存在的问题,比传统经典的机器学习系统具有更强的表达力和普遍适用性。机器学习是数据挖掘采用的一种技术,因此,归纳逻辑程序设计能够自然地应用于数据挖掘。
基于一阶逻辑的一阶规则挖掘技术常被称作ILP。一阶逻辑为ILP提供了一致的和非常有表达力的表示手段:背景知识、例子以及挖掘到的知识都可表示为子句语言的公式,所以在挖掘过程中可非常自然地利用背景知识。另外得到的知识表示为相关谓词构成的一阶规则,比命题规则具有更强的表达能力,使知识的内涵更加丰富并易于人们理解。因此,ILP可克服传统命题规则挖掘方法的两个主要限制:描述能力的限制与背景知识利用的限制。此外,由于关系数据库的形式描述.“关系代数”与ILP的子句逻辑有着内在的关联性,ILP技术可被直接用于涉及关系数据库中多个关系(表)的数据挖掘任务。
本文通过对归纳逻辑程序设计和数据库以及数据挖掘两方面的了解和学习,总结了关系数据库与归纳逻辑程序设计之间的关系,分析了归纳逻辑程序设计系统和数据库系统结合的三种方法:数据库的直接转化法,prolog级与数据库连接法,子句级与数据库连接法。并采用第一种方法,通过数据库中关系属性与谓词之间的映射,完成了数据库管理系统与归纳逻辑程序设计系统之间松散耦合的接口。即根据数据库中关系属性与谓词的映射,把数据库的对应部分(对应ILP学习中的正负实例、背景知识、类型说明及模式说明)转换为归纳逻辑学习系统中需要的逻辑程序语句的形式,作为ILP系统的输入。该接口使用VC++6.0与ODBC实现。该接口使归纳逻辑学习系统对于数据库管理系统具有通用性和独立性。
采用更为高效的紧耦合方法实现归纳逻辑程序设计系统与数据库系统的结合将是后续工作中不断加以改进的课题。