林宗缪 尹雪莱
(1.上海市质量监督检验技术研究院 上海 201114)(2.上海交通大学医学院附属第九人民医院 上海 200011)
随着医疗数据的增长,医疗大数据在临床医学研究中得到了极大的发展。大数据技术在疾病的预防、治疗、预后决策等方面有着很好的发展前景。医生在治疗中将更多的注意力放在了个体上,但往往很多疾病的产生存在着共性,如在遗传史、生活环境以及某此临床特征。那么大规模的收集相关的诊疗数据,可以分析出疾病的影响因素,更好地对疾病进行防控与治疗。2010年起,美国临床肿瘤学会(ASCO)牵头了一项癌症治疗的大数据项目——cancerLinQ[1~2]。通过该项目医生可以获取到全球范围的癌症信息和分析数据,总结疾病规律,形成有效的治疗策略。在数据智能化技术开发领域,2013年起IBM与Memorial Sloan-Kettering cancer center开展合作[3~4],通过超级计算机Watson建立人工智能模型,对肿瘤、肺癌、乳腺癌和前列腺癌等数万份病历和临床研究数据进行大数据分析,并在实际医疗中为医生提供诊疗解决方案。
颌骨囊性病变是指颌骨内出现的,由囊壁引起的含有液体的囊性肿物[5],包括颌骨囊肿(牙源性囊肿和非牙源性囊肿)、颌骨肿瘤(牙源性肿瘤和非牙源性肿瘤)和瘤样病变等[6]。颌骨囊性病变患者大部分因牙齿疼痛移位或颌骨膨胀至医院就诊,部分患者没有明显临床症状,仅因其他病因在影像学检查时发现。患者就诊后通过询问病史,专科检查,和影像学检查进行初步诊断,再根据患者年龄、病变部位、病变范围等确定治疗方案。患者就诊时即会询问诊断准确率,各治疗方式的优缺点、治愈率和并发症发生几率等。但并没有关于颌骨囊性病变的诊断及治疗指南给予医生参考。
本文将基于22517例颌骨囊性病变的就诊及治疗随访数据,建立一个颌骨囊性病变的诊断、治疗及预后分析系统,对诊疗大数据进行预处理,建立数据模型,通过深度的数据挖掘,对颌骨囊性病变进行辅助诊断、疾病分类、预测和预后决策提供支持。当新患者就诊后,录入患者相关信息及辅助检查信息,系统即可通过大数据分析与模型计算给出初步诊断、诊断准确率、既往患者选择的治疗方式及各治疗方法的治愈率、并发症发生率等数据,能够快速并直观地给予医生指导,有助于医生与患者间沟通。随着该系统逐步普及,将有更多就诊患者诊断数据录入,形成全国颌骨囊性病变的大数据库,大数据应用将使该系统的诊断准确率更加完善,指导意义更明确。
云计算是一种可分配可调节的分布式计算技术。它最大的特点是计算可并行、资源可扩展、性能安全可靠。MapReduce[7]是一个用来处理大数据集的编程模型,它通过Map函数生成键值,Reduce函数合并相同键的值来实现云计算。Hadoop是基于MapReduce的一个开源运行环境的框架,为用户提供了在服务器集群环境下处理数据能力,并通过分布式文件系统HDFS来存储文件。Hadoop框架采用分布式、面向列的开源数据库Hbase[8]存储处理后的数据。Hadoop具有高容错性、可伸缩性和高可靠性的特点,因此在云计算领域得到了广泛的运用。
Spark[9~10]是一个面向大规模数据处理的统一分析引擎框架,采用最先进的DAG调度器,适合对批数据处理和流数据进行高性能处理。对此类数据的问题处理,Spark运行效率比Hadoop有显著的提高。Spark可以和Yarn分布式集群资源框架来配合完成调度分配任务,以提高分布式资源管理效率。Yarn运行流程图如图1所示。调度框架的核心部分包括资源管理器和节点管理器。资源管理器调度配置系统中应用资源;节点管理器监控每个服务器的资源和计算任务,并把情况反馈给资源管理器。
图1 Yarn运行流程图
2.2.1 C4.5决策树算法
决策树是一种树形决策模型,用于解决结构化决策分支问题。决策树是一种基于布尔检验分支序列的预测模型,它使用已知的数据得出更准确的预测和分类。决策树的主要组成部分包括由决策点的节点、动作和特定选择表示的决策点。决策树中的每个规则都是通过跟踪从根到节点到下一个节点的一系列路径来表示的,依此类推,直到达到某个操作为止。信息熵描述一个系统所有信息量的一种期望值。信息越复杂,出现情况越复杂,信息熵越大。信息增益是指数据分类前后所含信息熵的差值。决策树的策略是使路径上的信息熵尽量小。C4.5是决策树的一种经典算法。
C4.5算法用增益率来选择分裂属性[11~12]。公式如下:
A属性的信息增益率:
在分支节点选择信息增益率最大的属性作为分裂属性,信息增益率在循环计算中逐渐变小,信息趋向确定。
2.2.2 BP神经网络算法
人工神经网络ANN[13]是一种基于生物神经网络结构和功能的计算模型,具有大规模并行处理、分布式信息存储、良好的自组织自学习能力。反向传播算法是一种常用的训练人工神经网络的方法。BP[14]反向传播算法是通过反向权值修正达到学习训练的目的。BP网络拓扑如图2所示。
图2 BP网络结构图
BP算法以网络误差为目标函数、采用梯度下降法来计算目标函数的最小值[15]。在反向传播过程中反复训练,从而对神经元的权值和阈值待续优化以减小误差。BP算法非常适合进行机器学习,并在大数据分析中训练模型。
采集22517例颌骨囊性病变患者收治、诊断、治疗和预后的全过程数据,数据量约有2000G。对非结构数据进行处理,建立标准数据仓库。包括数据清洗、分类,确定关键数据指标等。
采集颌骨囊性病变患者收治、诊断、治疗和预后的全过程数据,从主治医师已完成的住院病历中提取住院患者的影像学信息和临床信息。包括是否有颌骨膨隆、疼痛、牙髓活力丧失、咬合无力、牙齿移位、颌关系紊乱;性别、居住史、年龄、婚育史、吸烟史、饮食习惯、肿瘤史;全景片、牙CT、颌骨CT、MRI等影像学资料;手术方式、手术次数、并发症、复发及转移。
对非结构数据进行处理,建立标准数据仓库。包括数据清洗、分类,确定关键数据指标等。根据对既往颌骨囊性病变信息的初步分析及参考文献筛选出与诊断相关数据,制定诊断、治疗及预后评估方案。
将决策树算法用于颌骨囊性病变分类系统,提取颌骨囊性病变影像学信息,利用训练数据中产生的决策树模型,由一般到特定的共方差纹理特征进行囊肿,良性或恶性肿瘤的分类判断。该方法显示出了决策树在区别颌骨囊性病变种类方面具有一定的可行性,能够帮助医生有效地对颌骨囊性病变进行分类。设立数据分析目标和对指标分类,建立最优数据模型。
1)首先提取病人的病史、手术、随访信息,进行数据清洗和分类;通过口腔颌面头颈肿瘤科专家评分等方式提取影像学特征(8项特征,如表1所示)。经过综合筛选,确定指标。
2)使用Fisher判别和Logistic回归分析对指标进行筛选优化。
3)通过BP、决策树C4.5等数据挖掘技术和Fisher判别分析对优化后的指标建立颌骨囊性病变分类诊断模型。
表1 影像学特征评分表
4)对预测结果的灵敏度、特异度、准确度、预测值等进行分析并反馈,大数据模型持续优化形成颌骨囊性病变诊断模型。
5)在颌骨囊性病变诊断模型基础上建立颌骨囊性病变的诊疗及预后评估系统,对新的颌骨囊性病变进行助诊断、疾病分类、预测和预后决策,且不断自我训练完善诊断模型。
建立大数据云计算系统,基于云计算技术实现的数据挖掘服务。颌骨囊性病变诊疗与预后分析系统是基于云计算技术实现的医疗服务系统,采用分层设计的思想以及面向组件的设计思路。系统结构如图4所示。系统分为四个阶段:数据采集、数据存储、数据处理、生成可视化的数据结果。
1)数据采集与预处理得到候选病史数据集。2)采用云计算技术,通过决策树、线性回归、人工神经网络等算法发现患者现病史和诊断及治疗预后间的关系。3)利用可视化映射方法实现概念关系的生成。4)将计算结果展示给用户。
实验设计将以C4.5决策树建立算法模型用于颌骨囊性病变分类系统,提取颌骨囊性病变影像学信息,利用训练数据产生的决策树模型,由一般到特定的共方差纹理特征进行囊肿,良性或恶性肿瘤的分类判断。该方法显示出了决策树在区别颌骨囊性病变种类方面具有一定的可行性,能够帮助医生有效地对颌骨囊性病变进行分类。
图3 颌骨囊性病变数据模型训练
设计思想是通过MapReduce计算病症各属性的信息增益率。方案设计如下,MapReduce:包含两个阶段,Map阶段:主要任务是处理输入的训练样本集,将每条记录格式化为<key,value>键值对,具体格式为key=属性X,value=<对应属性X的值x,所属类别c,记录id>,再将相同的key的键值对分配到同一个Reduce节点上。Reduce阶段:处理Map输出的<key,value>键值对,对于具有连续值的属性,先进行离散化处理,再分别计算各属性的信息增益率和分枝点。
1)实验数据:采用表5处理后的数据作为数据源。数据集有30个属性,3309条为颌骨囊性病变记录。数据收集诊断为颌骨囊性病变并随访五年以上的患者病例3309例,该数据诊断模型有30个属性,共计3309条,第30位为诊断结果,数据示例(如表2)。
为使上述数据表能用于决策树算法,需要对数据进行预处理,经过处理的数据如表3。
图4 颌骨囊性病变诊疗与预后分析系统结构图
表2 初始数据
表3 预处理数据
2)实验环境:配置6台R740XD/R730XD 2U机架式服务器。安装Hadoop2.7.3、JDK1.8、Hadoop Yarn、Hbase、Redis等大数据计算环境。
3)实验目的:测试运行效率和分类符合情况。
4)实验结果:运行程序生成的决策树部分如图5所示。
图5 经训练颌骨囊性病变数据集得到的决策树模型
其 中,7,surgery=had,9,family=yes,13,TT=had,18,bulge=had:->OKC表示第7个属性为sur⁃gery=had,第9个属性为family=yes,第13个属性为TT=had,第18个属性为bulge=had的样本诊断分类为OKC。
我们设计了五个实验小组,每个小组运行着不同节点数的MapReduce,并将3309条样本数据进行复制,分别分配到5个实验小组中进行测试。测试结果如表4。结果表明随着集群节点的增加,处理结果的速度得到了较大提高。
表4 不同数据量和节点的运行结果
实验结果总结:颌骨囊性病变的数据集可以在基于Hadoop大数据计算环境下进行决策树算法并建模,且分类结果与实际诊断结果符合性较高,可以形成具有指导意义的决策模型。且Hadoop集群具有很好的伸缩性,可以为海量的医疗数据提供数据挖掘计算。但是实验中存在几个问题需要研究解决。一方面数据集的属性值有效性,后续工作将结合Fisher判别和Logistic回归对属性进行过滤。另一方面对于数据模型需要进行“剪枝”及优化,另外在数据方面,将建立更细致全面的病人诊疗、影像、预后等数据库,不断优化模型。最后,我们将丰富算法库建立人工神经网络和多算法交差的模型库,不断探索和提高颌骨囊性病变决策模型的精确性和准确率。
本文研究设计了基于颌骨囊性病变大数据的诊疗及预后分析系统。该系统通过对颌骨囊性病变的临床数据和影像数据进行筛选优化,建立颌骨囊性病变诊断模型,有助于对颌骨囊性病变进行临床辅助诊断与预后决策。经过实验证明该系统对病变诊断具有良好的诊断效果,且具有较好的计算效率和扩展性。