多Agent协同系统的3层数据挖掘模型的设计
- 格式:pdf
- 大小:168.79 KB
- 文档页数:3
长江大学学报(自科版)理工卷2007年9月第4卷第3期 Journal of Yangtze University(Nat Sci Edit)Sci&Eng V Sep.2007。Vo1.4 No.3
多Agent协同系统的3层数据挖掘模型的设计
李春生,代春平 (大庆石油学院计算机与信息技术学院。黑龙江大庆1 6331 8) 冉‘琨 (大庆油田有限责任公司第四采油厂。黑龙江大庆1 63511)
[摘要]传统的数据挖掘模型存在低效性和非智能化等不足。设计了一个基于Multi—Agent的3层数据挖 掘模型.讨论了模型的通信和运行过程。这一模型弥补了传统数据挖掘的缺陷和不足,而且分层管理不 同角色的工作,在很大程度上提高了数据挖掘的智能性和高效性.减少了人工的参与。 [关键词]数据挖掘;Multi—Agent技术;KQML ̄Agent;消息协议 [中图分类号]TP302 [文献标识码]A [文章编号]1673—1409(2007)03一N068—03 数据收集和存储技术的快速进步使得企业各部门积累了大量数据,如何从大量数据中提取出有用信 息成为一个需要研究和解决的课题。由于数据量太大,无法使用传统的数据分析工具和处理技术。即使 数据集相对较小,由于数据本身的非传统特点也不能使用传统方法处理。数据挖掘是一种将传统的数据 分析方法与处理大量数据的复杂算法相结合的技术,它为探查和分析新的数据类型以及用新方法分析已 有数据类型提供了很好的机会。传统的数据挖掘技术需要人们的大量参与,一次需要处理大量数据,并 且可能因为低准确性而造成多次重复操作,大大降低了它的智能性和高效性,浪费了用户的时间和精 力。随着Agent技术的出现和研究,人们尝试着将其应用到数据挖掘中来,现已取得很好的效果。笔 者在此基础上,设计了一个基于Multi-Agent技术的3层数据挖掘模型,该模型在一定程度上弥补了传 统数据挖掘技术的不足。由于把Agent本身的特点引入到数据挖掘过程中,使该模型具有自治性、反 应性、交互性和自适应性;同时,Multi-Agent系统的知识共享可以提高分类的效果和模型的有效性。 1 Agent技术及Multi-Agent系统 Agent是由分布式人工智能发展而来的一种新型计算机模型。所谓Agent,是指驻留在某一环境下 能够自主、灵活地执行动作以满足设计目标的行为实体 ]。它是协作系统中的独立行为实体,能够根据 内部知识和外部激励决定和控制自己的行为。 许多系统尤其是复杂系统可能不仅仅只有一个Agent,而是由2个甚至更多的Agent主体构成。在 这些系统中,每个Agent都是自主的行为实体,封装了状态和行为,因而相对独立;同时,不同的 Agent之间可能存在着复杂的关系。在此,将由2个或者更多个相互独立同时又相互作用的Agent所构 成的系统称为Multi—Agent系统(MAS)。 2模型的系统框架及通信协议 该模型如图1所示。共分为3层:第1层 为用户层,每个用户对应一个用户Agent,而 每个黑户Agent对1塑于昂户的一个昂户信息库; 第2层为管理层,由管理Agent来管理所有的 Agent信息,同时协调各层Agent之间的工作; 第3层是任务实现层,由数据清洗Agent、数 据挖掘Agent、测试Agent和评价Agent组成, 用户层 管理层
任务实现层
图1 基于Multi-Agent的数据挖掘模型系统框架图 [收稿日期]2007—06—10 C作者简介]李春生(1960一),男,1983年大学毕业,教授,现主要从事人工智能与智能系统方面的教学与科研工作。
维普资讯 http://www.cqvip.com 第4卷第3期 李春生等:多Agent协同系统的3层数据挖掘模型的设计 其中,数据清洗Agent是由M个清洗算法Agent(i)( —l,2,3,…,M)组成;数据挖掘Agent是由N个挖 掘算法Agent(j)(.『一l,2,3,…,N)组成。 根据应用的特点,用户层和管理层之间的通信采取Agent之间建立信道的点对点消息传递方式, 基于该通信信道进行双向、对等的消息传递。管理层和任务实现层之间的通信方式采取黑板方式,即参 与通信的一组Agent共享一个公共区域,通过向该区域写入和读取信息实现信息的交流。 Agent通过消息协议可以互相理解和交换信息,并对消息做出处理。在该系统实现中,消息协议采 用了基于KQML语言定义的面向数据挖掘的通信语言(DMACL)。它以KQML作为协同通信协议的 基础,对其进行扩充,并以XML来描述消息的内容体,在此基础上设计了一套比较完整的、可扩充的 消息协议 。 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( )( —l,2,3,…,M)组成。每个算法Agent封装 一个独立数据预处理算法。Agent(i)可以根据实际需要动态地调入和撤除。目前在实现该模型时,主要 采用改进的BP神经网络和贝叶斯网络两种数据预处理算法。数据清洗Agent同时提供人工参与清洗数据 的操作界面,并将数据进行备份。人工预先处理的数据转交给用户选定的算法Agent(i)对数据进行分类清 洗。用户在以后的工作中出现数据预处理不满意的结果,可以重新选择算法Agent(i)进行再次数据清洗。 2)数据挖掘Agent(Data Ming—Agent) 在该模型中,Data Mining—Agent由N个挖掘算法 Agent(j)(.『一1,2,3,…,N)组成。根据所需处理的问题,可以动态地增加或减少挖掘算法Agent(j)。每 个挖掘算法Agent都有固定的特性,根据这些特性可以完成不同的任务。当一个Agent无法完成所分 配的任务时,就需要和其他的挖掘算法Agent进行通信,请求其他的挖掘算法Agent来帮助完成任务。 当它要向其他Agent请求帮助时,可以通过以下方案解决它们之间的通信问题:每个挖掘Agent自身 带有一个其他所有Agent信息的记录集,而且这个记录集在通信完之后要进行更新,始终保持记录的 是其他Agent的最新情况,比如其他Agent的任务分配、自身特性、知识库和位置等。这样,当某个 Agent需要进行通信时,就可以查找自身记录集,找到目标Agent的位置,与其通信,协作完成任务。若 无法找到目标Agent,则会有报错提示,并将该任务重返给管理Agent,让其重新进行分析和分配 。 一个庞大的任务可分解成多个子任务,由多个不同的挖掘算法Agent来完成。针对问题的特点采 用不同的挖掘算法,从而提高了数据挖掘的准确性以及系统的灵活性。当某个挖掘Agent完成了其所 分配的任务时,会向管理Agent发送执行结果,并向管理Agent说明自己现状,以便其他的Agent实时 更新该挖掘Agent(j)的状况表,同时也为下次任务的分配做准备。管理Agent在收到执行结果后,会 提示测试Agent该挖掘Agent的任务已经执行完成。 3)测试Agent(Test-Agent) 测试Agent的功能是对数据挖掘Agent所给出的结果进行验证。将
挖掘的结果应用到新一批数据中,检验挖掘结果的准确度。挖掘结果可能存在冗余或无关信息,需要将其 维普资讯 http://www.cqvip.com 长江大学学报(自科版)理工卷 2007年9月 删除。也有可能结果不满足用户需求或条件,因此整个挖掘过程还需要重新进行或在某个环节重复运行, 诸如重新选取数据、采用新的数据清洗方法、设定新的数据挖掘参数值,或选用不同的挖掘算法等等 ]。 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( )完成该工作。清洗工 作结束后,清洗Agent通过管理Agent与数据挖掘Agent进行通信,将清洗后的数据传输给数据挖掘 Agent。数据挖掘Agent执行期汾配的任务或子任务,当需要与其他挖掘Agent进行通信合作时,可以 按照上述方案进行协商合作。如果找不到需要合作的挖掘Agent,则通知管理Agent将这个任务重新进 行分解、分配,并更新挖掘Agent状况表。如果能够找到,则将所需的帮助信息提供给原挖掘Agent, 由两者共同完成任务,若有需要还可能有第三方挖掘Agent参与。也就是说,执行一次任务时,一个 挖掘Agent有可能与多个挖掘Agent协作完成任务。 当某个挖掘Agent完成任务之后,会给测试Agent发出提示信息,表明自己已经完成当前挖掘任 务。测试Agent对挖掘结果进行检验,若检验结果未达到用户需求,则需通过管理Agent通知挖掘 Agent重新挖掘,直到满足用户需求为止。通过测试的挖掘模式信息传给评价Agent,评价Agent对此 次的挖掘任务给出相应的评价,并将评价结果和挖掘结果一并提交给管理Agent,由后者将结果反馈给 用户Agent。此间,用户Agent一直在等待挖掘MAS的执行结果。当用户Agent得到所有要得到的结 果时,说明挖掘MAS的所有挖掘Agents已经完成了所有的任务,此时管理Agent会更新它的挖掘 Agent状况表,而用户Agent会对这些结果进行集中处理,如删除多余信息,然后根据用户的喜好,以 最友好的形式反馈给用户。至此,一次完整的用户请求过程结束。 6结 语