一、医疗大数据挖掘的核心技术
医疗大数据挖掘是伴随计算机发展而来的一门新兴技术,涉及的学科领域和方法很多,汇集了来自统计学、机器学习、模式识别、数据库技术、信息检索、网络科学、人工智能、高性能计算和数据可视化等各学科的成果。多学科技术的相互交融和相互促进,相互依赖又互不相同,使得数据挖掘这一学科蓬勃发展。数据挖掘核心技术主要包括统计学方法、人工智能方法、数据库方法、信息检索和可视化方法等。其中,统计学方法有回归分析、判别分析等;人工智能方法有机器学习方法(常用自然语言处理技术、专家系统、模式识别等)和神经网络方法(常用前向神经网络、自组织神经网络等)等;数据库方法包括基于可视化的多维数据分析或OLAP方法等。SAS EM、Modeler、K-Miner、Tempo等数据挖掘软件均提供了各类可视化模块。医疗大数据挖掘的核心技术如图所示。
1、医学统计学
医学统计学是以医学理论为指导,运用统计学原理和方法研究医学领域的数据的收集、分析、解释和表示。数据挖掘与统计学具有天然的联系。数据挖掘不是为了替代传统的统计分析方法而出现的。相反,它是统计分析方法的延伸和扩展。数据挖掘就其算法本身,很大一部分可以从数理统计中获得理论解释,但作为一个整体的研究方向,应该从计算机的层面进行全局的考虑,即从系统的角度分析,数据挖掘是面向应用的。医学统计学主要目的是通过对已发生的事件进行分析,对未来事件发生的可能性做出统计推断,也就是预测。大数据挖掘的目的亦是从复杂医学数据池中发现新的模式和知识,挖掘得到有价值的新信息,并指导实践。
在数据挖掘中使用统计学方法并不简单。大多数的统计分析技术都基于完善的数学理论和很高的计算复杂度,预测的准确度还是令人满意的,但对使用者的要求很高。一个巨大的挑战就是将统计学方法应用于大型数据集,因为应用于分布在多个逻辑或物理站点上的大型数据集时,需要小心地设计和调整算法,以降低计算开销。
2、医学人工智能
医疗大数据挖掘的核心技术便是融合人工智能与机器学习技术,挖掘人的生命和疾病现象及本质规律,也经常被称为医学人工智能。机器学习属于计算机和统计学交叉学科,核心目标是通过函数映射、数据训练、最优化求解、模型评估等一系列算法实现让计算机拥有对数据进行自动分类和预测的功能。机器学习领域包括很多种类的智能处理算法,分类、聚类、回归、相关分析等每一类中都有很多算法进行支撑,如支持向量机、神经网络、逻辑回归、决策树、贝叶斯网络、随机森林、判别分析等。医疗大数据挖掘利用了人工智能领域,尤其是机器学习方面的研究成果,数据挖掘的核心技术可以说是机器学习,这两门学科都致力于模式发现和预测。数据挖掘与机器学习有许多相似之处。对于分类和聚类任务,机器学习研究通常关注模型的准确率。除准确率之外,医疗大数据挖掘研究非常强调挖掘方法在大数据上的有效性和可伸缩性,以及处理复杂医学数据的方法,以开发新的、非传统的方法。
数据挖掘强调算法对大数据量的适应性,算法必须对记录为数十万条及以上的数据集有很好的性能;周期性更新的数据集需要考虑能对这些增量数据进行处理而不用从头计算一次;数据挖掘还需考虑如何处理数据集体积大于内存容量的问题和并行处理问题。
3、数据库技术
很多大中型医院相继建立了自己的HIS,随着HIS的应用和不断发展,数据库中的数据量迅速膨胀,数据库规模逐渐扩大,复杂程度日益增加。尽管积累了大量的业务数据,真正能将这些数据的价值挖掘出来并运用到医院的临床辅助诊断和日常管理决策中的却很少。利用前沿的数据仓库技术,根据实际需求,从医院海量信息数据库中分析、提取,进行有效的数据组织,来构建数据仓库模型,从而开展数据挖掘,对全方位医疗管理决策是必要的。
数据库系统研究关注创建、使用和维护数据库。特别是数据库系统研究者们已经建立了数据建模、查询语言、查询处理与优化方法、数据存储以及索引和存取方法的公认原则。数据库系统因其在处理非常大的、相对结构化的数据集方面的高度可伸缩性而闻名。数据仓库是为了数据挖掘做预准备,数据挖掘可建立在数据仓库之上。数据挖掘成功的关键之一是能够访问正确的、完整的和集成的数据。这也是对数据仓库的要求。数据仓库不仅是集成数据的一种方式和一个焦点,而且所有的数据仓库的解决方案都源自和依赖数据源部件的质量和效果。
数据仓库集成的、随时间变化的、稳定的、面向主题的特点为数据挖掘提供了坚实的数据基础。许多数据挖掘任务都需要处理大型数据集,甚至是处理实时的快速流数据。因此,数据挖掘可以很好地利用可伸缩的数据库技术,以便获得在大型数据集上的高效率和可伸缩性。此外,数据挖掘任务也可以用来扩充已有数据库系统的能力,以便满足高度复杂的数据分析需求。
4、医学信息检索
医学信息检索主要研究和利用计算机、通信等信息技术处理生物医学数据、信息、知识的存储、组织、检索与优化等一系列医学信息管理任务,辅助医学领域的科研与实践,提高解决问题和制定决策的科学性、及时性和可靠性。信息检索是根据所需的信息需求与存储在数据库中的信息进行比较和选择,即匹配的过程。例如,使用医学数据库管理系统查找个别记录,或通过互联网的搜索引擎查找特定的互联网医疗页面并检索出相关的信息,则是信息检索领域的任务。但并非所有的信息发现任务都被视为数据挖掘。信息检索可能涉及使用复杂的算法和数据结构,但是它们主要依赖传统的计算机科学技术和数据的明显特征来创建索引结构,从而有效地组织和检索信息。面对医疗领域复杂和多样化的信息需求,医学信息检索能够帮助医生与患者获取所需的知识和信息,在实际应用中发挥着越来越重要的作用。
近年来,数据挖掘技术的发展推动了面向医疗大数据的知识发现,被用来增强信息检索系统的能力。但随着医疗信息化的发展,智能医疗、数字医疗、卫生保健系统等应用的快速增长,大量文本和医学图像数据日益累积并且可以联机获得。它们的有效搜索和分析同样对数据挖掘提出了许多具有挑战性的问题。因此,文本挖掘和医学图像等数据挖掘与信息检索方法集成已经变得日益重要。
二、医疗大数据挖掘的难点
1、快速的、具有健壮性的数据挖掘算法
医疗数据库的数据量大、结构多样,要在海量的数据中提取知识,需要花费比其他数据库更多的时间。同时,我们需要从同一医疗数据库或不同医疗数据库挖掘不同类型的知识。由于不同的应用需要不同类型的知识,因此数据挖掘应该覆盖广泛的数据分析与知识发现任务需求。因此必须考虑医疗大数据挖掘的性能问题,其中包括效率、可扩展性和数据挖掘算法的并行化等问题。数据库中数据的巨大规模、广泛分布的数据存储地点,以及一些数据挖掘算法的计算复杂性等,都极大地推动了并行分布数据挖掘算法的研究与开发。数据挖掘算法的可扩展性表现在数据挖掘的运行时间与所处理的数据规模呈线性关系。在假设数据挖掘系统可利用的存储资源不变的情况下,这意味着当被挖掘数据的规模确定后,相应数据挖掘算法的运行时间应该是可以预测和接受的,即我们需要使用计算速度快的数据挖掘算法。同时,医疗数据库的类型较多,并且是动态变化的,要求数据挖掘算法具有一定的容错性和健壮性。
此外,数据挖掘算法需要具有可解释性。目前以深度学习为核心的机器学习方法在疾病的预测、诊疗方面有比较好的效果,然而,这些机器学习方法的可解释性比较差,难以被医学领域的科研工作者认可。
2、医学知识的准确率与可靠性
医疗大数据挖掘过程中需要反复和医学、药学专家,或者已有的知识进行交互。医疗大数据挖掘的主要目的是为医疗活动和管理提供科学的决策,因此必须保证挖掘出的知识具有较高的准确率和可靠性。首先,根据自定义的度量标准进行度量,识别真正需要的模式。数据挖掘系统具有产生数以千计甚至数以万计的模式或规则的潜力,这就需要从中筛选出真正感兴趣的、真正有用的知识。其次,通过一些机器筛选之后,最后的决策是要由人来提供的。因为对于知识可用性的理解是非常主观的,且是以生命健康作为代价的,所以在医学领域进行知识发现需要经验丰富的专家来做最后的决策。同时,数据挖掘结果的表达与可视化也是重点。医疗大数据挖掘应该能够用高水平语言、可视化表示或其他表示方式来描述所挖掘出的知识,以使医生以及患者更加容易地理解和应用所挖掘出的知识。数据挖掘结果的可视化表示对交互式数据挖掘系统而言是非常重要的,同时要求系统采用多种表示形式,如采用表格、图、矩阵、曲线等来描述所挖掘的结果。
3、医疗数据标准化、不同医疗信息系统数据库的异构特征
在医学界,很多基本概念都没有规范,例如一个简单的概念“结肠腺癌转移到肝”都有很多的表达形式,再如有的药物有很多别名。同时,实验和诊断皆带有主观性,不同医生的病历文书书写习惯具有较大差异,这些都为医学数据的整合与知识挖掘带来了难度。此外,不同的医院往往采用不同的厂商、不同类型的医疗信息系统,同时由于每天庞大的医疗业务量,从而构成了不同的巨大的、分布的、异构的数据库。如何从不同数据(包括结构化数据、半结构化数据和非结构化数据)中挖掘出所需要的模式知识是医疗大数据挖掘研究所面临的巨大挑战之一。尤其是医疗影像等医疗数据往往是以GB甚至TB为数量级的。
另外,数据库的关系表中所涉及的属性或变量也可能达到成百上千的数量。这种数据的海量性和高维性使数据挖掘进行中的模式搜索空间异常巨大,同时可能导致搜索出无意义模式的概率增加,因此必须从中筛选出有效和有用的规则、规律和特性。不同医疗信息系统造成的多源异构医疗数据交换与融合是实现医疗大数据挖掘的前提。
三、医疗大数据挖掘的模型框架设计与流程
1、医疗大数据挖掘的模型框架设计
医疗大数据挖掘的模型框架由需求层、数据层、算法层和部署层构成。需求层主要实现需求理解概念化,即临床医生想要通过数据挖掘技术解决的临床问题。数据层主要包含数据理解和数据准备,可归纳为解决数据挖掘需求需要收集和准备的数据。算法层主要实施建模和评估,指通过数据挖掘方法建立模型,按数据挖掘需求识别代表知识的真正有价值的模式。部署层与需求层相对应,将数据挖掘成果形成研究报告,实际应用或部署、推广。需求层、数据层、算法层和部署层之间的关系如图所示。
面对庞大的医疗大数据,简单地从数据出发考虑数据挖掘问题,往往会导致研究方向的盲目性和研究结论与现实需求的偏差。需求理解可以帮助数据挖掘主体从宏观上评估数据挖掘项目的可行性和必要性,减少盲目选择,规避风险,打破数据驱动的机械性思维。需求与数据、算法对应关系的梳理和嵌入,可以从文献经验角度为优化医疗大数据挖掘路径提供依据,降低学习成本。需求驱动与优化的数据挖掘路径结合,将有效地提升医疗大数据挖掘的质量。
以疾病预后需求为例,如肺癌患者生存能力的预测是目前临床研究的一个难题,建立肺癌患者生存率预测模型并对模型的预测能力进行评估是临床中亟需解决的需求。面对这一需求,临床医生首先可通过对肺癌患者生存能力预测研究现状的分析,对数据挖掘项目的实施计划、风险和受益项目进行有效设计,并在模型的需求层匹配“疾病预后需求”;再依据需求层和数据层的对应关系选择相应的数据上传(如肺癌患者电子病历数据),经过数据层的数据准备和数据处理形成初始数据集;然后根据数据层和算法层的对应关系选择相应数据挖掘方法(如贝叶斯网络、决策树、支持向量机),在算法层实施建模和评估,分析数据挖掘结果的精确性;最后,在部署层形成研究报告,达到预测肺癌患者生存能力的目的。
2、医疗大数据挖掘的流程
第1步,需求理解
充分理解临床医生想要通过数据挖掘技术解决的临床问题。在分析过程中,需要对数据挖掘项目的实施计划、风险和受益项目进行有效设计,充分保证数据挖掘项目的稳定性和优势,从而为目标优化提供稳定支持。
第2步,数据集成
对来自不同医疗信息系统的病人数据进行数据集成,形成医疗大数据中心。数据集成是数据挖掘中经常用到的手段,原因是需要挖掘的原始数据可能来自不同的系统和不同的数据源,而且数据形式、存取接口甚至数据词典都存在差异。因此,数据集成的目的就是将各个数据源统一成一个准确、有效、可用的数据源。数据来源包括HIS、临床信息系统(Clinical Information System,CIS)、LIS、RIS、PACS和病案系统等系统。这些系统涉及的数据库及数据形式都不完全相同,有SQL Server、Oracle,有文档形式的数据,还有一些半结构化数据(如电子病历内容)。存取这些不同形式的数据,需要利用不同的接口,比如数据库一般采用数据库厂家提供的数据库接口,对文档的存取可以用操作系统自带的文件I/O接口;也有一些系统出于数据安全考虑,不允许直接对原始数据进行存取,而是提供Web Service等接口。
第3步,专病库抽取(二次建库)
基于医疗大数据中心构造面向特殊疾病的专病库,如大肠癌病例库、心衰病例库等。在构建临床专病库时,要确定符合疾病特征的病例和需要的病例字段,对于结构化字段,需要从原始的电子病历库中抽取,例如年龄与性别;对于半结构化或非结构化字段,需要使用文本抽取等技术,结合知识库对其进行结构化。在这个过程中,需要建立知识图谱,以方便自动化的病例数据抽取。
第4步,数据质量(可用性)评估
需要对专病库进行数据质量评估,评估其是否适用于挖掘。评估指标包括数据完整性、数据一致性、医疗实体及其编码的一致性、数据逻辑性等。若专病库达到评估要求,即可进行第5步的建模;如果不能,则需要回到前面步骤,重新抽取和整理数据。
第5步,建模
选择合适的模型,设计并实施实验。在建模过程中要对多种多样的建模方法进行认真甄选、合理使用,通过构建、评估模型并校准参数使其成为最佳模型。比较典型的做法是运用多种建模方法对同一数据挖掘的问题进行分析。如果实验过程中出现问题,可能需要改进算法;也有可能是数据质量的缘故,需要回到前面步骤,重新抽取和整理数据。
第6步,评估与部署
在评估过程中要充分考虑数据的分析角度。此阶段已构建了一个或多个优质模型,在应用最终模型前要对模型进行严苛的评估,不可忽视模型构建过程中的每一步,以保证已构建的模型能够达到预期目的。部署实际上是将建模过程及得到的最终结果以文字的形式呈现出来。建模不是项目的最终目的。建模的目的是收集更多相关的信息数据,并以医疗健康领域相关人员能够使用的方式组织和呈现这些数据,保证需求目标的有效实现。
整体来看,数据挖掘是从确定临床需求开始,然后根据需求集成数据或整合专病库,过滤数据,选择合适的数据挖掘方法,最终满足需求,并将模型推广和应用的过程。医疗大数据挖掘的整体流程如图所示。
四、医疗大数据挖掘的应用
1、在疾病诊疗中的应用
医疗大数据挖掘在疾病诊疗方面的应用主要为疾病早期诊断、临床决策支持、诊疗用药等。在疾病早期诊断方面,例如加拿大安大略理工大学的卡罗琳·麦格雷戈(Carolyn McGregor)博士及其研究队伍与IBM公司合作,采用软件来监测并处理即时的患者信息,实施对早产婴儿的病情诊断,在明显感染症状出现的24小时之前,系统就能监测到早产婴儿身体发出的感染信号。在临床决策支持方面,通过对患者体征、费用和疗效等数据进行挖掘,帮助医生确定最有效和最具有成本效益的治疗方法。基于大数据的临床决策支持系统可有效扩展临床医生的知识、减少人为疏忽,帮助医生提高工作效率和诊疗质量。纪念斯隆-凯特琳癌症中心和沃森超级计算机合作,利用60万份医疗数据、150万条患者记录以及肿瘤研究领域中42种医疗杂志和临床试验的200万页文本数据,研发出一种治疗决策工具。利用大数据挖掘,沃森可以现场为医疗工作者提供治疗建议,与沃森一起工作的护士,有约90%的采纳了其建议。在诊疗用药方面,通过大数据的挖掘与分析能够有效减少药物的副作用发生,提高药物对患者疾病的治疗质量,减少临床不合理用药对患者的伤害,同时降低药物的费用、节省药物资源。
2、在生物信息学中的应用
人类基因组计划的启动和实施,使核酸、蛋白质数据迅速增长,将海量的生物信息数据利用起来,探索生物信息中的规律,对人类基因组进行更深入的研究,为人类战胜疾病提供参考。区分DNA序列上的外显子和内含子成为基因工程中对基因进行识别和鉴定的关键环节之一。目前已有大量研究者努力对DNA数据进行定量挖掘,从已经存在的基因数据库中得到导致各种疾病的特定基因序列模式。此外,大数据挖掘技术还能将系统生物学数据(如基因、蛋白质、生物小分子的相关数据)和电子健康病历数据相结合,使基因测序、个性化药物及个人健康管理等个性化医疗变成临床实践。例如,韩国生物医学中心就计划运行国家DNA管理系统,将DNA数据和患者医疗数据结合,为患者提供个性化的诊断和治疗。通过医疗大数据挖掘技术,可以从DNA序列数据出发,开展DNA序列间相似的搜索和比较、基因序列相似性和基因序列功能预测性、发现在疾病不同阶段的致病基因、致病基因的表达模式与识别等研究。
3、在流行病学中的预测
在疾病预警方面,医疗大数据挖掘可以连续整合和分析公共卫生数据,提高疾病预报和预警能力,防止疫情暴发。在2009年,谷歌公司对甲型H1N1流感暴发的预测比美国疾病控制与预防中心(Centers for Disease Control and Prevention,CDC)的早1~2周,这在当时震惊了整个医学界和IT领域的科学家,相关研究报告发表在Nature杂志上。医疗大数据挖掘可以为卫生政策法规提供科学依据,辅助卫生部门更快地检测出新的传染病和疫情。公共卫生部门可以通过覆盖全国的患者电子病历数据库,快速检测传染病,进行全面的疫情监测,并结合医疗信息系统,对流行病的防治以及对疾病危险因素进行筛选,从而减少传染病感染率。在疾病预防与控制方面,医疗大数据挖掘可以使研究者更加了解疾病的影响因素。据估计,只有10%~15%的健康影响因素已被医疗服务提供者所测定,剩下的85%~90%的健康影响因素,包括健康行为因素、遗传因素、自然和社会经济环境因素等均未被测定。医疗大数据将传统的健康数据(如医疗记录、家族疾病史等)与其他来源的个人数据(如收入、教育、饮食习惯、娱乐方式等)联系起来,利用挖掘技术对健康危险因素进行对比和关联分析。通过对不同区域、人群进行评估,遴选健康相关危险因素,有助于有针对性的干预计划的制订,从而降低重病发病率,以促进居民健康水平的提高。