第2章 基于智能Agent的知识发现模型研究与设计
2.1 知识发现模型概述
数据是指一个相关事件的表示集合,记录了事件有关方面的原始信息,给数据赋予不同的解释就构成了不同的信息。信息是有意义的数据,是消息的内容,是数据加工的结果,是任何一个系统的组织性、复杂性的度量,是有序化程度的标志。模式可以看成知识,表示数据的特性或数据之间的关系,是对数据包含的内在信息更抽象的描述。知识发现是从数据源中挖掘先前没有察觉到的信息的过程。一般来说,知识发现是指从大型数据库或数据仓库中提取人们感兴趣的知识,这些知识是隐含的、事先未知的潜在有用信息。公司、政府、科学团体被在线数据库存储的数据所淹没。如果没有计算机的帮助和有效的分析工具,分析这些数据并抽取实时更新的有意义的模式则是一件极为难办的事情。数据挖掘从20世纪90年代开始成为数据库和机器学习领域中最受关注的研究方向之一[1][2]。
在过去的十几年中计算机的普及率是空前的,也正是由于PC进入了千家万户,进入了机关、企业,才使得信息服务成为一个举世瞩目的产业。人们越来越多地对计算机抱有期望,期望它能更多地代替人的劳动。然而,计算机并不能完全满足各行各业的需求,这主要是由于缺乏以固定形式表示的部门信息。随着技术进步,人们已经能够产生和维护诸如文本、音频、视频、图像等信息,但缺少必要的与信息系统相关的分析、模型化、仿真、预测、自动处理、决策支持等工具来满足用户的需求。任何由信息驱动的组织和社会,都面临着一些问题。
(1)产生信息并决定其内容;
(2)辨识各种信息的具体用户;
(3)辨识服务的提供者;
(4)通过网络或媒介向普通或特定的用户提供普通或特殊的信息;
(5)通过合适的系统或设备把信息发布到网络上,并且帮助用户访问信息、进行管理等。
因此,在当前的信息时代,传统的数据库管理系统已经远达不到人们的要求,能够处理多媒体多语言的智能信息系统是发展方向,信息系统应该能了解和分析各种用户的查询需求,并且能产生需要的信息。但目前还没有一个通用的智能信息系统,这样的系统至少应该具有如下特点:
(1)见闻广博,具有交互性和响应性;
(2)对于用户而言,系统操作不必预先培训;
(3)系统处理不要求使用用户手册;
(4)系统由用户引导数据和信息的插入;
(5)系统能对不同类型的查询产生信息模块;
(6)网络化。[3]
本章设计了一个基于Agent的智能数据挖掘系统,利用多智能体技术和软计算技术实现了信息的收集、预处理、查询,知识的自动提取,数据挖掘等功能。它可以为智能信息系统提供必要的支持。
研究KDD模型是数据挖掘领域中的一个分支,已经存在一些实用系统和原型系统,如Regian大学的KDD-R系统、Kansas大学的LERS系统、Lock Head Martin公司的Recon系统等[4]。目前,可以把KDD模型分为面向过程的KDD模型、面向用户的KDD模型及面向知识的KDD模型,下面分别简要介绍。
2.1.1 面向过程的KDD模型
把KDD看成面向过程的多处理阶段,数据挖掘只是其中的一部分功能,使得我们可以从整体上对数据库中的知识发现有一个全面的认识,典型的面向过程的KDD模型是Fayyad等[5]给出的KDD处理过程,如图2.1所示。
(1)数据准备:了解KDD相关领域的有关情况,熟悉有关的背景知识,并弄清楚用户的要求。
(2)数据选择:根据用户的要求从数据库中提取与KDD相关的数据,KDD将主要从这些数据中进行知识提取。在此过程中,会利用一些数据库操作对数据进行处理,产生目标数据集。
图2.1 KDD处理过程
(3)数据预处理:主要是对阶段2产生的数据进行再加工,检查数据的完整性及一致性,对其中的噪声数据进行处理,提取模型所需的必要信息,处理丢失的数据域。
(4)数据缩减:根据知识发现的任务,对经过预处理的数据进行再处理,主要通过映射或数据库中的其他操作减少数据量。
(5)确定KDD的目标:根据用户的要求,确定KDD要发现何种类型的知识,因为针对KDD的不同目标,会在具体的知识发现过程中采用不同的知识发现算法。
(6)确定知识发现算法:根据阶段5所确定的任务,选择合适的知识发现算法,这包括选取合适的模型和参数,并使知识发现算法与整个KDD的评判标准相一致。
(7)数据挖掘:运用选定的知识发现算法,从数据中提取出用户所需要的知识,这些知识可以用一种特定的方式表示或使用一些常用的表示方式,如分类规则和分类树、回归、聚类、序列模型、相依性和在线分析等。
(8)模式解释和知识评价:对发现的模式进行解释。在数据挖掘阶段发现的模式,经过用户或机器的解释和评估后,其中可能存在冗余或无关的模式,这时需要将其剔除;也有可能模式不满足用户要求,这时则需要退回到发现阶段之前,如重新选取数据、采用新的数据变换方法、设定新的数据挖掘参数,甚至换一种挖掘算法(如当发现任务是分类时,有多种分类方法,不同的方法对不同的数据有不同的效果)。另外,由于KDD最终是面向人类用户的,因此必须将发现的知识以用户能理解的方式呈现给用户。
除上述KDD多处理过程模型外,文献[9]中还给出了另一种多处理过程模型,它们之间的不同在于后者强调领域专家参与KDD的全过程。
2.1.2 面向用户的KDD模型
面向过程的KDD模型从整体出发给出了知识发现的清晰流程,而面向用户的KDD模型更强调用户对知识发现的整个过程的支持,而不是仅限于数据挖掘的一个阶段。具体模型如图2.2[10]所示。
图2.2 面向用户的KDD模型
此模型注重对用户与数据库交互的支持,用户根据数据库中的数据,提出一种假设模型,然后选择有关数据进行知识挖掘,并不断对模型的数据进行调整优化。整个处理过程分为以下步骤。
(1)任务定义:通过与用户的多次交流,确切了解需要处理的任务。任务定义是为了明确需要发现的知识的类别及相关数据。
(2)数据发现:了解任务所涉及原始数据的数据结构及数据所代表的意义,并从数据库中提取相关数据。
(3)数据清理:对用户的数据进行清理,使其适于后续的数据处理。这需要用户的背景知识,同时应该根据实际任务确定清理规则。
(4)模型定义:通过对数据的分析,选择一个初始模型。模型定义一般分为三个步骤,分别是数据划分、模型选择和参数选择。
(5)数据分析:包括四个处理阶段,一是对选中的模型进行详细定义,确定模型的类型及有关属性;二是计算模型的有关参数,得到模型的各属性值;三是通过测试数据对得到的模型进行测试和评价;四是根据评价结果对模型进行优化。
(6)输出结果:数据分析的结果一般都比较复杂,很难被人理解,将结果以文档或图表的形式输出则易于被人接受。
2.1.3 面向知识的KDD模型
面向知识的KDD模型旨在把知识(包括先验知识和已发现的知识)体现在整个知识发现过程中,使挖掘更具有智能性。文献[4]为提高挖掘效率,从信息融合的角度,将知识库与数据库所提供的信息有机地结合起来,采用双库协同机制给出一种面向知识的KDD模型,其结构如图2.3所示。
图2.3 面向知识的KDD模型
(1)预处理:对原始数据进行包括数据净化、数值化与特定转换等在内的处理,形成挖掘数据库(DMDB),以供数据挖掘过程使用。
(2)聚焦:从挖掘数据库中进行数据的选择。聚焦的方法主要是聚类分析和判别分析。指导数据聚焦的方式有:①通过人机交互由专家提出感兴趣的内容,让专家来指导数据挖掘的方向;②利用启发型协调器进行定向的数据挖掘。
(3)获取假设规则:这是KDD的核心,它是对真实数据库(具有大数据量、不完全性、不确定性、结构化、稀疏性等特点)中隐藏的、先前未知的及具有潜在应用价值的信息进行非平凡抽取。主要是因果关联规则的抽取。
(4)双库协同机制:采用中断型协调器、启发型协调器,分别对所获得的假设规则进行处理,利用关联强度激发数据聚焦进行数据挖掘。
(5)评价:这一环节主要是对所获得的假设规则进行评价,以决定是否将所获得的规则存入知识库。使用的方法主要有:①通过规则的关联强度评价,设定一定的阈值,由计算机来实现;②通过人机交互界面由专家来评价,也可利用可视化工具所提供的各类图形和分析资料进行评价。将经评价认可的规则作为新知识存入衍生知识库。
此模型有如下特征:
① 融合了系统新发现的知识与基础知识库中固有的知识,使它们成为一个有机的整体,即实现了“将用户的先验知识与先前发现的知识耦合到发现过程中”。
② 在知识发现过程中,对于冗余的、重复的、不相容的信息进行了实时处理,有效地降低了由于过程积累而造成的问题的复杂性,同时为新旧知识的融合提供了先决条件,实现了“知识与数据库同步进化”。
③ 改变与优化了知识发现的过程与运行机制,实现了“多源头”聚焦,减少了评价量。
④ 从认知的角度提高了知识发现的智能化程度,增强了认知自主性,较有效地克服了领域专家的自身局限性,实现了“采用领域知识辅助初始发现的聚焦”。
⑤ 双库协同机制的研究揭示了在一定的建库原则下,知识子库与数据子类结构之间的对应关系,为实现“限制性搜索”而缩小搜索空间、提高挖掘效率提供了有效的技术方法。