请选择搜索类型: 期刊 | 论文
    基于策略模式的中医数据挖掘平台的设计与研究

        摘要:随着数据挖掘技术的发展和中医信息化的逐渐深入,很多数据挖掘方法被应用到中医研究领域.本文针对面向对象软件设计模式中的策略模式在数据挖掘科研软件平台设计开发上的应用进行了研究,并提出平台设计概要.在此基础之上,提出一种中医数据挖掘研究的思想方法:将中医问题(数据)封装、将数据挖掘方法(算法)封装,实现统一的接口,从而实现在某一类中医问题中尝试不同的数据挖掘方法、将某一种数据挖掘方法应用于不同的中医问题.基于上述思想方法,实现了中医数据挖掘平台,用于中医相关领域的数据挖掘研究.

        关键词:数据挖掘;中医;策略模式;软件重用;中医数据挖掘平台

    1引言

        设计模式是一套被反复使用、经过分类的代码设计经验的总结.使用设计模式,可以重用代码、让代码更容易地被他人理解,而且能保证代码可靠性19】.策略模式是面向对象软件设计模式的一种,它定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换,使得算法可独立于使用它的客户而变化“’

        数据挖掘(Data Mining),又称数据中的知识发现(KDD),其目的是自动或方便地提取隐藏或记录在数据中的代表知识的模式¨J.目前数据挖掘在rr、银行、保险、医药和零售等行业以及生物、天文等科研领域都有应用,并出现了一些商用数据挖掘软件产品.

        中医文化源远流长,历朝历代的中医著作浩如烟海,如何从不同的角度对这些文献进行高效的整理、研究成为中医科研工作者的重要课题.另外,目前的中医研究中的药理研究、临床试验、动物实验,以及医院的病例诊断、治疗记录等都会产生大量的数据需要处理.而作为计算机科学中专为处理大规模数据而生的数据挖掘在此大有可为.

        目前已经有一些数据挖掘方法被应用到中医研究中,但只局限于具体问题,即数据挖掘具体某种方法与中医研究中某一具体问题是一一对应的关系.虽然能够取得一定的成果,但对于探索性的试验存在很大的局限性.为此,本文首先针对策略模式在数据挖掘科研软件平台设计开发上的应用进行了研究,并提出了平台设计概要.在此基础之上,设计并实现一种能够在不同问题和不同方法之间实现灵活的多对多关系的中医数据挖掘平台.此平台将中医问题(数据)封装、将数据挖掘方法(算法)封装,从而实现:

        1)某一问题分别采用不同方法解决,避免某一问题被束缚在一种方法中,可以相互对比不同方法的解决效果;

        2)某一种方法应用于不同的问题,可以在尽可能多的问题中最大限度发挥某一种方法的功效.

    2中医数据挖掘应用现状

        近年来医疗系统信息化取得了很大的进展,HIS(医院信息管理系统)LIS(实验室信息管理系统)PACS(医学影像系统)等已经被广泛应用于医院.在中医的现代化过程中,也建立了很多数据库,例如中医药科技信息数据库等.但以上应用大都仅限于对数据的存储以及简单处理,对数据的分析不足.

        中医学具有系统性、整体性、复杂性、不确定性等特点,适合采用数据挖掘类似的从整体观上人手的研究方法.已经有一些研究将数据挖掘应用于中医研究.陈明等【副将关联规则应用于中医疾病证候诊断中.秦中广H1等将粗糙集应用于中医类风湿证候诊断中.刘晋平”1研究了数据挖掘在中医脉诊研究中的应用.王敏,吕立等∞’将关联规则应用于中医热毒文献数据分析中.

    3中医数据挖掘平台的理论基础和技术架构

    31软件复用与设计模式

        软件复用是指在两次或多次不同的软件开发过程中重复使用相同或相似的软件元素的过程.软件元素包括程序代码、测试用例、设计文档、设计过程、需求分析文档甚至领域知识.对于新的软件开发项目而言,它们或者是构成整个目标软件系统的部件,或者在开发过程中发挥某种作用.软件重用的条件是软件本身在某种程度上应具有一定的一致性和不变性,这样才便于软构件的设计19J.面向对象程序设计的思想的提出为程序员设计可复用的软件提供了一个强有力的工具.随着面向对象程序设计的思想被广泛应用,人们不断探索、挖掘能够提高软件复用度的途径,在这个过程中,逐渐形成了设计模式这个概念,即面向对象软件设计的经验.介绍设计模式的经典著作文献[2]中借城市和建筑模式说明了面向对象设计模式的概念:每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心.这样,你就能一次又一次地使用该方案而不必做重复劳动.文献[2]中的另外一个关于设计模式的定义是:设计模式是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述.

    设计模式分为以下几大类瞄[2]

        1.创建型模式.创建型模式抽象了实例化过程,他们帮助一个系统独立于如何创建、组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而一个对象创建模式将实例化委托给另一个对象.创建型设计模式包括:抽象工厂、生成器、工厂方法、原型、单件.

        2.结构型模式.结构型模式涉及到如何组合类和对象以获得更大的结构.结构型类模式采用继承机制来组合结构或实现.一个简单的例子是采用多重继承方法将两个以上的类组合成一个类,结果这个类包含了所有父亲的性质.这一模式尤其有助于多个独立开发的类库协同工作.结构型设计模式包括:适配器、桥接、组成、装饰、外观、享元、代理.

        3 .行为模式.行为模式涉及到算法和对象之间职责的分配.行为模式不仅描述对象或类的模式,还描述它们之间的通信模式.这些模式刻划了在运行时难以跟踪的复杂的控制流.它们将你的注意力从控制流转移到对象间的联系方式上来.行为设计模式包括:职责链、命令、解释器、迭代器、中介者、备忘录、观察者、状态、策略、模板方法、访问者.

    32策略模式

        行为模式分成对象行为模式和类行为模式两种,分别应用于对象层面和类层面.策略(Strategy)模式,又称政策(Poli—cy),是对象行为型模式的一种.策略模式的核心意图是定义一系列的算法,把它们一个一个封装起来,并且使它们能够互相替换.策略模式使算法可以独立于使用它的客户而变化.对于使用策略模式的动机,文献[2]用一个例子来表述:一个文档编辑器,需要实现换行功能.有许多算法可以对一个正文流进行分行.将这些算法硬编进使用它们的类中是不可取的.

        对于以上的问题,依照策略模式的思想,可以定义一些类来封装不同的换行算法来避免.一个以这种方法封装的算法称为一个策略(Strategy),如图1所示.其中Composition类负责维护和更新一个正文浏览程序中显示的正文换行.换行策略不是由Composition类实现的,而是由抽象的Compositor类的子类各自独立实现的.Compositor各个子类实现不同的换行策略.

     

     

     

     

        对于在什么情况下适合使用策略模式,文献[2]提出以下几种:

        1.许多相关的类仅仅是行为有异.

        2.需要使用一个算法的不同变体.

        3.算法使用客户不应该知道的数据.

        4.一个类定义了多种行为,并且这些行为在这个类的操作中以多个条件语句的形式出现.

    33数据挖掘主要方法

        数据挖掘的主要方法包括以下6种:特征化与区分¨[1]、简档[8]、关联规则[1,8]、分类与预测[1,8]、聚类与离群点分析[1,8]、演变分析[1].每种方法包含若干算法.特征化与区分【¨:数据特征化是目标类数据的一般特性或特征的汇总;数据区分是将目标类数据对象的一般特征与一个或多个对比类对象的一般特征进行比较.

    简档[1]:对数据库中正在进行的事件做描述或解释.

    关联规则¨[8]:通过对数据库事务的统计计算确定哪些事务可能同时出现,寻找事务之间的相关性.

    分类与预测[1]:通过构造一个模型或分类器来预测类属标号、连续函数或有序值.

    聚类与离群点分析[1]:聚类是将物理或抽象对象的集合分成相似的对象类的过程;离群点分析是指查找、分析与数据的一般行为或模型不一致的数据对象.

    演变分析[1]:描述行为随时间变化的对象的规律或趋势,并对其建模.

    34基于jsPMVC架构

        随着互联网的普及,越来越多的应用软件采用Web开发.基于JSPMVC架构是一种很灵活的Web开发架构.客户端即浏览器.MVC架构将服务器端分为3个不同逻辑单元:模型(Model)、视图(View)、控制器(Controller).在一个服务器应用中,通常将应用分为业务逻辑、表示和请求处理.模型对应为业务逻辑和数据,视图对应为表示,控制器对应为请求处理¨….其中视图部分用JSP语言开发,模型和控制器用Java语言开发,控制器使用Servlet类.服务器采用TOMCAT

    4 策略模式在数据挖掘科研平台上的应用研究

        数据挖掘作为计算机科学研究中的一个新兴领域,从其诞生起,其研究就存在以下两个方面:

       1.数据挖掘自身理论的完善.主要关注于算法研究以提高数据挖掘的效率,以及总结数据挖掘的思想方法.

       2.拓展数据挖掘技术的应用领域.数据挖掘是一门应用科学,其根本目的在于以数据挖掘的思想方法和相应的算法为基础,借助于现代计算机强大的计算能力,为多种行业提供解决方案.

        以上两点相辅相成,只有数据挖掘自身理论不断完善,数据挖掘技术才能够具备应用于更多行业的能力和条件;在各种领域的应用过程中,也会逐渐发现数据挖掘自身理论的不足之处,为理论研究提供方向.

        虽然在诸多科研人员的努力之下,目前数据挖掘的理论方面已经形成了一个较为完善的体系,但在拓展数据挖掘技术的应用领域过程中,因为应用行业问题形式的千变万化,很多情况下不易找到问题和方法之间的一一对应关系.

        由上可知,设计一个针对于数据挖掘应用研究的科研软件平台有其必要性:

        1.从应用问题的角度而言,同一个应用问题需要借助数据挖掘理论中不同的思想方法、算法来进行科研尝试,以便观察、比较其应用效果.

    2.从数据挖掘的角度而言,经典理论中同一种思想方法、算法需要尝试应用于不同的问题.

    该平台应该区别于商用数据挖掘工具软件,商用数据挖掘工具软件(譬如WekaSASSPSSClementine)的目标是导人用户的数据,通过内部运算,为用户给出一个数据挖掘结果.至于系统采用什么样的数据挖掘算法来得到结果,用户并不知道,也没有必要向用户开放,只要软件开发商在新版本升级的过程中更新算法即可.商用数据挖掘工具软件面向的用户对象并不一定了解数据挖掘本身,他们感兴趣的只是结果.

    相比而言,针对于数据挖掘应用研究的科研软件平台需要让用户知道解决问题所用的算法,并可以选择不同的算法,以便相互比较解决问题的效果.该平台面向的用户对象关注于数据挖掘本身.具体而言,针对于数据挖掘应用研究的科研软件平台侧重于提供给用户以下功能:

        1.能够集成现有数据挖掘思想方法、算法.

        2.能够导人数据挖掘应用问题,包括相应的数据.

        3.能够灵活地选择问题和方法之间的组合.

        4.能够比较不同的方法解决同一问题的效果,并显示给霭产.

        5.能够展示同一方法如何解决不同问题.

        基于以上论述,策略模式非常适合数据挖掘应用研究的科研软件平台的架构设计:

        1.该平台的核心在于同一应用问题尝试不同的方法/算法、同一方法/算法尝试解决不同的应用问题,策略模式的核心意图是定义一系列的算法,把它们一个一个封装起来,并且使它们能够互相替换.简单地说,可以基于策略模式的思想,按照数据挖掘方法/算法理论体系(如图2),将各种数据挖掘方法/算法封装,实现统一的数据处理接口,由于策略模式使算法可以独立于使用它的客户而变化,从而实现同一应用问题使用不同的方法/算法进行尝试的目的.


     

        2.策略模式思想的应用不仅仅局限于数据挖掘方法/算法上,还可以扩展到应用问题/数据上,根据应用问题/数据的情况,在一定粒度上将各种应用问题/数据封装,实现统一的算法调用接口,从而实现同一数据挖掘方法/算法在不同的应用问题上进行尝试的目的.

    3.可视化方面也可以应用策略模式.该平台需要将数据挖掘方法/算法在某些应用问题上的计算结果显示给用户.对于数据挖掘不同的方法/算法,其结果显示形式不尽相同,譬如:关联规则挖掘一般采用文字显示,分类挖掘常常需要显示决策树或神经网络,离群点挖掘需要显示点簇等等.可以应用策略模式的思想,将各种显示形式封装,实现统一的接口,从而实现可视化形式上的丰富性.

    该平台的模块设计.根据以上分析总结出该平台分为以

     

     

     

    块得到的结果并显示给用户.由于每种数据挖掘方法处理对象的角度不同,所以结果的展示形式也不同,图5中第2层的每种方法对应此模块中的一个显示组件.此模块工作在用户接口层,需要与用户进行交互,采用JSP页面作为前台显示界面,Servlet类实现后台调用.

    524数据接口模块

        此模块负责一切与读写数据库相关的操作,工作在数据接口层.此模块采用JDBC接口,实现将JSP页、XML文件以及其他数据库中的数据写入后台数据库,以及从后台数据库中读取数据.

    525功能模块其他说明

        为了从模块结构的角度集中说明此平台的核心设计思想——策略模式,有些细节未在本章上述论述中说明.现补充如下:

       (1)对于数据录入部分,上述着重讨论了半结构化数据的处理方法.对于一些可以直接应用的结构化数据,数据录入模块也会提供接口,并通过数据接口模块直接导入数据库.图5数据挖掘方法类关系图

     


     

        (2)为了达到加快数据挖掘模块的响应速度、存储数据挖掘结果、引人中医领域已有的知识等目的,必须在内部数据库中建立知识库,在数据挖掘模块工作时与其交互.

    6 中医数据挖掘平台功能及性能评价

    61基于策略模式的功能实现

        (1)数据挖掘是中医研究采用的一个新方法,对于具体的中医研究问题,需要尝试应用多种数据挖掘方法的效果.例如,问题1:通过中医文献研究某一病机与什么症状最相关.这个问题可以用关联规则方法来解决,也可以用分类(决策树)方法来解决.在本平台中,可以先注册一个属性包括病机、主要症状(全身症状、头面症状等,如图6所示)的数据库,并将文献资料条目导入并标引,然后分别定制关联规则和分类(决策树)相关的方法进行数据挖掘处理.

        (2)中医是数据挖掘应用的一个新领域,数据挖掘的同一种方法可能会应用到不同的中医问题研究中.譬如关联规则方法除了上述提到的问题1,还可以应用到问题2:通过中医治疗用药数据研究某种所用方剂的频率高低.注:是中医对疾病的一种描述方式.

        (3)对于数据挖掘结果的可视化,一般包括文字、图示两部分.每种方法的显示形式不同.所以需要应用策略模式,在统一的显示接口下采用多种显示组件.图7为关联规则方法的结果显示形式.


    62性能评价

        此中医数据挖掘科研平台的开发目的是为中医研究提供计算机辅助工具.目前中医研究对于数据挖掘应用主要关注于各种数据挖掘方法在不同中医研究问题中尝试得到的挖掘结果,并评价其对中医研究的贡献性,而并非关注于具体某种算法的性能.


     

         目前此平台工作于配置为主频25GHz以上的双核CPU4GB内存、Windows XP操作系统、Tomcat 5OOracle 9i的服务器上,可以顺利完成103量级的数据规模的数据挖掘计算.

    7结语

        面向对象软件设计模式中的策略模式非常适合用于数据挖掘应用研究的科研软件平台的架构,本文对此进行了论述,并提出了设计概要.在此基础之上,利用基于JSPJavaWeb开发技术实现了一个中医数据挖掘科研软件平台,该平台具有很强的灵活性优势:在问题端和解决方法端都可以实现开放性的添加、删除、更新,并可以通过服务定制进行任意一种方法解决任意一类问题的试验,避免问题和方法之间的互相束缚,满足科研的要求.

Copyright © 2013-2024 yixuehx.com All Rights Reserved

建议最佳分辨率 1024*768 投稿邮箱:gudaowenhua1191@163.com 公司地址:衡水市桃城区榕花街通衢苑8号楼1-201

在线客服