郑丹青
(株洲职业技术学院 电子信息工程系,湖南 株洲 412001)
数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,寻找有意义、有价值信息的过程。数据挖掘可以应用于任何类型的信息储存库(如关系数据库、数据仓库、事务数据库和高级数据库系统)以及瞬态数据(如数据流)[1]。目前,数据挖掘在医学领域的应用主要集中在疾病辅助诊断、药物开发、医院信息系统中的应用和遗传学方面的应用等。在疾病诊断方面,如采用贝叶斯学习分类方法对男女患者的图像进行自动诊断,将数据挖掘用于肝癌遗传综合征的自动检测[2],运用决策树方法,以医院病案室保存的冠状动脉粥样硬化性心脏病(简称冠心病)病案中选取了一些数据作为挖掘的原始数据集进行医疗数据分析[3]等。在医院信息系统中,利用决策树方法进行医院信息系统挖掘及医疗政策分析[4]等。
近年来,随着医院信息化建设的发展,电子病历和病案的大量应用,医疗设备和仪器的数字化,使得医院数据库系统中积累了大量有关病人的病史、诊断、检验和治疗的临床信息,而如何利用数据挖掘技术从医院信息系统中抽取、清洗和变换数据,采用分类、聚类、关联分析等方法构建临床医疗数据分析系统。通过对患者资料数据库中大量历史数据处理、提炼蕴含其中的大量有价值的信息,发现隐藏的关系和模式,预测未来的发展趋势,已成为医院信息化建设中所需要进一步研究的课题。其中,对疾病的临床诊断、治疗和预后的关系研究也是医学科学研究很重要的方面[5]。
文中将以胃癌术后复发的危险因素分析为例,探讨构建基于数据挖掘的临床医疗数据分析系统,并运用元数据管理方法,使用户可以根据数据分析的需要自行选取数据分析模型中的变量,使系统具有灵活性和扩展性。
医院信息系统包括管理信息系统和临床信息系统两部分。其中,临床信息系统主要处理有关病人方面的信息,如患者入院、住院、治疗、检查、出院等医疗信息。而利用数据挖掘决策树技术,通过对医院信息系统中疾病的临床诊断、治疗和预后情况进行数据分析,可从中发现影响疾病预后情况的因素。现以胃癌术后复发情况的数据分析为例,为寻找出胃癌术后复发的危险因素,构建临床医疗数据挖掘模型结构如图1所示。
图1 临床医疗数据挖掘模型结构
为了进行胃癌术后复发情况分析,首先确定胃癌术后复发与哪些因素有关,从中选取年龄、胃切除、家族遗传、营养状况、术后化疗、是否复发等相关信息作为数据挖掘项目的变量,这些变量数据类型及取值范围见表1。
表1 定义数据分析模型的变量
其次从业务数据库中抽取数据,经过数据预处理,去掉与决策无关的属性,处理含空缺值的属性,形成决策树的训练数据集见表2。
表2 胃癌术后复发训练数据集(部分)
其中选取是否复发作为目标属性,建立一棵决策树,以进行胃癌术后复发的危险因素分析。
胃癌术后复发数据仓库分为年龄、胃切除、家族遗传、营养状况、术后化疗、是否复发6个维表和一个事实表,数据仓库模型如图2所示。
图2 数据仓库模型
然后,根据表1和表2所示数据,利用SQL SERVER 2008创建临床医疗数据仓库。
数据挖掘平台包括数据挖掘建模、数据挖掘结果展示和用户交互界面等。其中,数据挖掘建模是数据挖掘操作的核心步骤,挖掘建模包括学习算法的选择、算法参数的确定等[6]。
数据挖掘建模采用myEclipse作为开发工具,weka作为数据挖掘工作平台。一方面利用weka软件所集合的能承担数据挖掘任务的机器学习算法,包括对数据进行预处理、分类、回归、聚类、关联规则等实现数据挖掘建模;另一方面采用myEclipse作为开发工具,运用Java语言开发设计数据挖掘算法,然后,利用weka的接口将所编制的数据挖掘算法集成到weka软件中。
利用weka软件实现数据挖掘分析,首先要实现weka与数据仓库的连接,选择临床医疗数据仓库作为数据源,将数据仓库中的事实表作为数据挖掘的模型表。
weka与数据仓库的连接方法,首先用解压软件打开Weka3.6的安装目录下的weka.jar文件,在 weka.jar/weka/experiment目录下找到DatabaseUtils.props.mssqlserver文件,并替换原来的DatabaseUtil.props文件,然后修改此文件中的jdbcURL,设置服务器和数据库名,并将数据库中的数据类型设置为对应的weka仅支持的分类型(nominal)、数值型(numeric)、字符串型(string)和日期(date)型。然后重新打包 weka.jar,并替换原来同名文件。设置环境变量,将SQL Server2008的数据库驱动程序sqljdbc4.jar加入到classpath变量中。
在完成数据库连接,打开数据表后,在weka数据挖掘工作平台上选择数据挖掘技术方法,如选择决策树算法进行胃癌临床医疗数据分析。在选择了输入和预测列后,通过选择决策树中的某一种算法,就可在weka数据挖掘工作平台上展示出数据挖掘结果。还可将测试集导入挖掘模型中,进行模型的训练和测试,并对数据挖掘模型评估、预测。
在临床医疗数据分析系统中,数据分析模型的变量会因所分析的对象不同而发现变化,为了使医疗数据分析系统具有扩展性和灵活性,设计元数据库和元数据管理项目。
第一部分是对数据抽取、转换、加载模块中的数据进行管理。为实现这项管理功能,在元数据库设计中包括数据源信息表、目标数据源信息表、数据源与目标数据源之间映射关系信息表和数据转换规则信息表等。其中数据源信息表和目标数据源信息表用于保存数据文件编号、文件类型、文件名称和文件所在位置(目录)等[7]。
第二部分是对数据仓库中事实表和维表中数据进行管理。因为在对不同疾病的临床医疗数据进行分析时,数据分析模型所定义的变量个数是不同的,因此,通过元数据管理实现对数据仓库中事实表和维表中属性的动态管理,由事实表的元数据表决定事实表的属性和维表个数及属性。
通过元数据管理可以实现由医务人员根据医学分析的需要,自行选取数据分析模型中的变量,构建不同的训练数据集进行医学分析。利用这种方法使临床医疗数据分析系统应用更加灵活。
以文献[8]中所提供的胃癌术后复发数据集为例,并将此数据集作为不同数据源,测试加载到数据仓库中,采用myEclipse作为开发工具,weka作为数据挖掘工作平台,连接数据仓库,读取数据挖掘的模型表,选择决策中的M5P算法,对胃癌临床医疗进行分析,结果如图3所示。
由此可见,胃癌术后复发危险因素有胃切除、家族遗传和术后化疗。
图3 胃癌临床医疗数据分析结果
通过构建基于数据挖掘的临床医疗数据分析系统,并将之应用于胃癌术后复发的危险因素分析,从中发现与疾病有关的危险因素,实现了对疾病危险因素筛选分析。同时,通过构建元数据管理,使数据挖掘系统具有很好的扩展性和灵活性。通过此系统与医院信息系统的接口,可以方便从医院信息系统直接提取数据,并可实现由医务人员根据医学分析的需要自行选取数据,进行数据分析研究的功能。随着临床医疗数据的不断增加,利用数据挖掘技术对医院信息系统中疾病的临床诊断、治疗和预后情况进行数据分析等诸多研究将会被日益重视并广泛应用。
[1]Jiawei Han,Micheline Kamber.数据挖掘概念与技术[M].范明,孟小峰,译.北京:机械工业出版社,2007:199-200.
[2]于长春,贺佳,范思昌.数据挖掘技术在医学领域中的应用[J].第二军医大学学报,2003,24(11):1250-1252.
[3]刘昆,刘业政.基于决策树的医疗数据分析[J].计算机工程,2002,28(2):41-43.
[4]章兢,张小刚.数据挖掘算法及其工程应用[M].北京:机械工业出版社,2006:37,69-73.
[5]徐刚,袁兆康.数据挖掘及其在医学领域中的应用和展望[J].实用临床医学,2006,7(11):196-198.
[6]纪希禹.数据挖掘技术应用实例[M].北京:机械工业出版社,2009.
[7]郑丹青.基于元数据的数据仓库ETL系统设计与研究[J].吉林师范大学学报,2010,31(2):43-45.
[8]王彤.医学统计学与SPSS软件应用[M].北京:北京大学医学出版社,2008.