多Agent协同系统的3层数据挖掘模型的设计

  • 格式:pdf
  • 大小:199.00 KB
  • 文档页数:3

[收稿日期]20070610 [作者简介]李春生(1960),男,1983年大学毕业,教授,现主要从事人工智能与智能系统方面的教学与科研工作。

多Agent协同系统的3层数据挖掘模型的设计 李春生,代春平 (大庆石油学院计算机与信息技术学院,黑龙江大庆163318) 冉 琨 (大庆油田有限责任公司第四采油厂,黑龙江大庆163511)[摘要]传统的数据挖掘模型存在低效性和非智能化等不足。

设计了一个基于Multi唱Agent的3层数据挖掘模型,讨论了模型的通信和运行过程。

这一模型弥补了传统数据挖掘的缺陷和不足,而且分层管理不同角色的工作,在很大程度上提高了数据挖掘的智能性和高效性,减少了人工的参与。

[关键词]数据挖掘;Multi唱Agent技术;KQML;Agent;消息协议[中图分类号]TP302[文献标识码]A [文章编号]16731409(2007)03N06803 数据收集和存储技术的快速进步使得企业各部门积累了大量数据,如何从大量数据中提取出有用信息成为一个需要研究和解决的课题。

由于数据量太大,无法使用传统的数据分析工具和处理技术。

即使数据集相对较小,由于数据本身的非传统特点也不能使用传统方法处理。

数据挖掘是一种将传统的数据分析方法与处理大量数据的复杂算法相结合的技术,它为探查和分析新的数据类型以及用新方法分析已有数据类型提供了很好的机会。

传统的数据挖掘技术需要人们的大量参与,一次需要处理大量数据,并且可能因为低准确性而造成多次重复操作,大大降低了它的智能性和高效性,浪费了用户的时间和精力。

随着Agent技术的出现和研究,人们尝试着将其应用到数据挖掘中来,现已取得很好的效果。

笔者在此基础上,设计了一个基于Multi唱Agent技术的3层数据挖掘模型,该模型在一定程度上弥补了传统数据挖掘技术的不足。

由于把Agent本身的特点引入到数据挖掘过程中,使该模型具有自治性、反应性、交互性和自适应性;同时,Multi唱Agent系统的知识共享可以提高分类的效果和模型的有效性。

1 Agent技术及Multi唱Agent系统Agent是由分布式人工智能发展而来的一种新型计算机模型。

所谓Agent,是指驻留在某一环境下能够自主、灵活地执行动作以满足设计目标的行为实体[1]。

它是协作系统中的独立行为实体,能够根据内部知识和外部激励决定和控制自己的行为。

许多系统尤其是复杂系统可能不仅仅只有一个Agent,而是由2个甚至更多的Agent主体构成。

在这些系统中,每个Agent都是自主的行为实体,封装了状态和行为,因而相对独立;同时,不同的Agent之间可能存在着复杂的关系。

在此,将由2个或者更多个相互独立同时又相互作用的Agent所构成的系统称为Multi唱Agent系统(MAS)。

图1 基于Multi唱Agent的数据挖掘模型系统框架图2 模型的系统框架及通信协议该模型如图1所示。

共分为3层:第1层为用户层,每个用户对应一个用户Agent,而每个用户Agent对应于用户的一个用户信息库;第2层为管理层,由管理Agent来管理所有的Agent信息,同时协调各层Agent之间的工作;第3层是任务实现层,由数据清洗Agent、数据挖掘Agent、测试Agent和评价Agent组成,・86・长江大学学报(自科版)理工卷 2007年9月第4卷第3期JournalofYangtzeUniversity(NatSciEdit)Sci&EngV Sep畅2007,Vol畅4No畅3其中,数据清洗Agent是由M个清洗算法Agent(i)(i=1,2,3,…,M)组成;数据挖掘Agent是由N个挖掘算法Agent(j)(j=1,2,3,…,N)组成。

根据应用的特点,用户层和管理层之间的通信采取Agent之间建立信道的点对点消息传递方式,基于该通信信道进行双向、对等的消息传递。

管理层和任务实现层之间的通信方式采取黑板方式,即参与通信的一组Agent共享一个公共区域,通过向该区域写入和读取信息实现信息的交流。

Agent通过消息协议可以互相理解和交换信息,并对消息做出处理。

在该系统实现中,消息协议采用了基于KQML语言定义的面向数据挖掘的通信语言(DMACL)。

它以KQML作为协同通信协议的基础,对其进行扩充,并以XML来描述消息的内容体,在此基础上设计了一套比较完整的、可扩充的消息协议[2]。

3 用户层和管理层用户层有多个用户Agent,每个用户Agent在进入系统时,需要到管理Agent中进行注册并通过信誉认证。

用户Agent可以向管理Agent提出请求,要求系统为其完成一定的任务,同时接收任务的执行结果。

用户Agent在任务执行完成后可以随时申请撤销,以便为系统节省开支。

管理层由管理Agent来实现管理任务。

管理Agent主要负责各个Agent的管理及协调工作,具体包括:提供用户Agent的注册、信誉认证管理以及用户Agent提出的需求任务的管理、任务的分派和任务执行结果的返回。

当某个用户Agent长期不提出需求的时候,管理Agent可以建议其退出系统。

同时,管理Agent对数据清洗Agent、数据挖掘Agent、测试Agent和评价Agent之间的交互合作进行协调管理。

4 任务实现层1)数据清洗Agent 海量数据中既有噪声数据、空缺数据,又存在数据不一致的现象。

数据清洗Agent主要是对待挖掘的数据进行预处理,以提高数据的“质量”。

针对不同的数据特点,所采用的数据分类清洗算法也不同。

该部分由M个清洗算法Agent(i)(i=1,2,3,…,M)组成。

每个算法Agent封装一个独立数据预处理算法。

Agent(i)可以根据实际需要动态地调入和撤除。

目前在实现该模型时,主要采用改进的BP神经网络和贝叶斯网络两种数据预处理算法。

数据清洗Agent同时提供人工参与清洗数据的操作界面,并将数据进行备份。

人工预先处理的数据转交给用户选定的算法Agent(i)对数据进行分类清洗。

用户在以后的工作中出现数据预处理不满意的结果,可以重新选择算法Agent(i)进行再次数据清洗。

2)数据挖掘Agent(DataMing唱Agent) 在该模型中,DataMining唱Agent由N个挖掘算法Agent(j)(j=1,2,3,…,N)组成。

根据所需处理的问题,可以动态地增加或减少挖掘算法Agent(j)。

每个挖掘算法Agent都有固定的特性,根据这些特性可以完成不同的任务。

当一个Agent无法完成所分配的任务时,就需要和其他的挖掘算法Agent进行通信,请求其他的挖掘算法Agent来帮助完成任务。

当它要向其他Agent请求帮助时,可以通过以下方案解决它们之间的通信问题:每个挖掘Agent自身带有一个其他所有Agent信息的记录集,而且这个记录集在通信完之后要进行更新,始终保持记录的是其他Agent的最新情况,比如其他Agent的任务分配、自身特性、知识库和位置等。

这样,当某个Agent需要进行通信时,就可以查找自身记录集,找到目标Agent的位置,与其通信,协作完成任务。

若无法找到目标Agent,则会有报错提示,并将该任务重返给管理Agent,让其重新进行分析和分配[3]。

一个庞大的任务可分解成多个子任务,由多个不同的挖掘算法Agent来完成。

针对问题的特点采用不同的挖掘算法,从而提高了数据挖掘的准确性以及系统的灵活性。

当某个挖掘Agent完成了其所分配的任务时,会向管理Agent发送执行结果,并向管理Agent说明自己现状,以便其他的Agent实时更新该挖掘Agent(j)的状况表,同时也为下次任务的分配做准备。

管理Agent在收到执行结果后,会提示测试Agent该挖掘Agent的任务已经执行完成。

3)测试Agent(Test唱Agent) 测试Agent的功能是对数据挖掘Agent所给出的结果进行验证。

将挖掘的结果应用到新一批数据中,检验挖掘结果的准确度。

挖掘结果可能存在冗余或无关信息,需要将其・96・第4卷第3期李春生等:多Agent协同系统的3层数据挖掘模型的设计 删除。

也有可能结果不满足用户需求或条件,因此整个挖掘过程还需要重新进行或在某个环节重复运行,诸如重新选取数据、采用新的数据清洗方法、设定新的数据挖掘参数值,或选用不同的挖掘算法等等[4]。

4)评价Agent 为了获得更好的挖掘结果,需要对建立的挖掘模型进行性能评价。

评价Agent对挖掘Agent发现的模式,包括数据清洗采用的算法和数据挖掘采用的算法,进行自动评价以确定当次挖掘所建立模型的可行性。

评价Agent通过对模型检测给出性能评价,并将评价结果以友好的、可理解的方式反馈给用户。

该评价Agent采用平均方法对性能进行评价。

5 模型的工作机制在用户Agent初进系统时,用户Agent应向管理Agent提交相关信息进行注册。

管理Agent通过对用户Agent进行验证,向其发放通行证,以确保用户Agent可以提交任务和接收任务的执行结果。

用户Agent在注册通过后会在管理Agent中实时更新自己的信息和状态,以保证管理Agent可以更准确地分配任务或将任务执行结果返回。

当用户有新请求时,由用户Agent向管理Agent提交任务申请。

管理Agent中保存有数据清洗Agent、数据挖掘Agent、测试Agent和评价Agent的实时信息。

管理Agent接收到用户Agent的任务后,首先根据用户提出的任务特征进行分析,然后检查用户信息存储模块,若有与之相关的记录或相似的请求结果,则推荐给用户选择,否则根据当前数据清洗Agent的状态将新任务下发,同时记录下用户请求的相关信息,以备下次请求时使用。

数据清洗Agent接收到任务后,根据数据的特征选取不同的清洗算法Agent(i)完成该工作。

清洗工作结束后,清洗Agent通过管理Agent与数据挖掘Agent进行通信,将清洗后的数据传输给数据挖掘Agent。

数据挖掘Agent执行所分配的任务或子任务,当需要与其他挖掘Agent进行通信合作时,可以按照上述方案进行协商合作。

如果找不到需要合作的挖掘Agent,则通知管理Agent将这个任务重新进行分解、分配,并更新挖掘Agent状况表。

如果能够找到,则将所需的帮助信息提供给原挖掘Agent,由两者共同完成任务,若有需要还可能有第三方挖掘Agent参与。

也就是说,执行一次任务时,一个挖掘Agent有可能与多个挖掘Agent协作完成任务。

当某个挖掘Agent完成任务之后,会给测试Agent发出提示信息,表明自己已经完成当前挖掘任务。

测试Agent对挖掘结果进行检验,若检验结果未达到用户需求,则需通过管理Agent通知挖掘Agent重新挖掘,直到满足用户需求为止。