基于Spark的智慧医院决策系统设计与实现

2022-03-02 06:16赵志建
现代计算机 2022年23期
关键词:门诊量数据挖掘线性

赵志建

(江苏联合职业技术学院南京工程分院,南京 211135)

0 引言

近年来,人们由于工作压力激增、生活作息紊乱、饮食不规律、环境污染以及人口老龄化严重等因素导致健康水平急剧下降,进而导致医院门诊量不断飙升、住院量增长、复诊率激增等现象。这些现象后续引发的门诊挂号难、床位数紧张、专家资源稀缺、医护人员超负荷工作等问题必然会增加医院信息管理的难度,降低医院的服务质量以及医护人员的决策水平。因此,亟待引进新的理论、新的方法以及新的技术,助力县、区、市级医院以及各级分院的整体行业规划、管理建设及智能化服务,为实现医院现代化建设、高效化管理、智能化决策添砖加瓦。

随着大数据时代的来临,人工智能(Artificial Intelligence,AI)技术[1],包含数据挖掘、语音识别、图像识别、自然语言处理等,正快速地席卷全球,并被广泛应用于智能基因疾病预测[2]、智能医学影像识别[3]、智能医院管理及服务[4]、智能健康管理服务[5]、智能诊疗[6]、智能医药开发[7]等医疗领域,带来了巨大的经济效益和社会效益。

人工智能时代的到来预示着医院信息化即将进入高速发展期。将人工智能技术应用于医院信息管理体系,通过数字化和可视化实现模式,率先成型为AI医疗产品或服务,不仅能够合理推荐各科室床位数、专家号比例等有限医院资源,使其发挥最大效用,从而提高医院资源的有效利用率,还能够精准预测门诊挂号窗口或收费窗口的高峰期并做好导医或导诊工作,从而提高医院或医护人员的智能化服务质量。

在此背景下,本文设计并实现了基于Spark平台的智慧医院决策系统,完成对海量数据信息的分布式存储、智能化处理、合理性分析,从而挖掘出有价值的信息推荐给医院或医护人员,来提高医院的整体管理水平,医护人员的决策质量,床位、专家等医疗资源的合理化分配。

1 相关工作

1.1 智慧医院决策系统发展概况

智慧医院决策系统是运用云计算平台、数据挖掘、人工智能等相关新一代信息技术来促进医院行业的建设、管理和智能化服务的新发展模式,是传统医院在实施决策过程中和信息技术相结合的转型升级[8]。

目前,国外在智慧医院管理及服务方面遥遥领先,一直处于主导地位。全球50%的智能化医院服务均分布在美国,20%分布于欧洲,而亚洲仅占5%。早在十年前,美国IBM公司就已经提出了智慧医院的概念,如今已经取得巨大成功,完全实现了对医院海量数据的共享以及对医疗服务的互通,通过对业务语言组件的标准化,实现了对所有患者病例的共享。这样不仅使得医生可以随时检查患者的健康状况,也可以为用户提供其他健康服务[9]。随后,许多欧洲国家也相继投入巨资打造健康档案管理服务等,智慧医院项目也得到了广泛应用。近年来,IEEE召开的许多大数据相关的国际会议,都安排了专题来深入探讨大数据挖掘技术在医疗健康等方面的应用与发展[10]。

尽管国内在该领域涉足较晚,但近几年在政府政策极力推动下,发展也极为迅速。《新一代人工智能发展规划》[11]和《关于促进“互联网+医疗健康”发展的意见》[12]中明确指出,我国将大力推广人工智能治疗新模式,加强智慧医院建设,早日建成快速精准的智能医疗体系。在国家的号召下,智慧医疗信息化应用层出不穷。例如:清华大学推出“家庭小护士”系统、百度健康云、阿里健康等。然而这些应用大多数功能过于单一,缺少大数据分析引擎,还远不能满足用户的需求。目前,尽管人工智能技术在医疗健康行业得到了广泛的应用,但是基于数据挖掘的智慧医院服务管理系统还处于初级阶段,成功落地的具体实践案例少之又少,有待于进一步研究。

1.2 数据挖掘算法概述

数据挖掘(data mining)又称知识发现(knowledge discovery),泛指从大量数据中挖掘出隐含的、先前未知但潜在的有用的信息和模式的一个系统化和工程化的过程。在大数据时代里,数据的产生和收集是基础,以数据为导向的数据挖掘工作是核心。数据挖掘是大数据中最关键也是最基本的工作,蕴含了应用性、工程性、集合性及交叉性四大特性。

数据挖掘涉及学科领域之多、学术领域之深、应用领域之广,是集关联规则挖掘、分类、回归、聚类及异常检测等多种任务于一身的强大知识发现引擎。在不同任务中,挖掘的目标和内容迥乎不同,挖掘算法也大相径庭。

1.2.1 简单线性回归算法

线性回归是利用数理统计中的回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析,即简单线性回归。

简单线性回归形式简单、易于建模,却蕴含着机器学习中重要的基本思想。假设给定连续型数据集其中xi∈R,简单线性回归可表示为

其中,回归参数ω和b用于衡量f(x和y)之间的差别。

基于均方误差(mean squared error,MSE)最小化(亦称最小二乘法)试图寻找一条直线使所有样本到该直线的欧氏距离之和最小的方式来确定ω和b的值是回归任务中最为常用的求解方法。因此,可试图定义f(xi与yi)间的均方误差并求其最小化,即:

求解ω和b使最小化的过程称为线性回归模型的最小二乘“参数估计”(parameter estimation),然后将E(ω,b)分别对ω和b求导,得到:

然后令公式(3)和(4)为零,可得到ω和b最优解:

1.2.2 CART回归树算法

分类与回归树(classification and regression trees,CART)最早是由Breiman提出的既可以用于分类,又可以用于回归问题的经典二叉决策树算法。相比于简单线性回归算法,CART回归树能够很好地实现对非线性数据的拟合。

CART回归树算法处理回归问题主要由回归树的生成与剪枝两步组成:

(1)CART回归树的生成:递归地构建最小二乘回归树的过程,主要实现对输入空间(即特征空间)的一个划分,以及在划分单元上的最优输出值。假设给定连续型数据集其中xi∈R,回归树模型试图学得,

其中Rm表示从输入空间中划分出的M个单元R1,R2,…,RM,cm表示每个单元Rm对应的输出值,I(·)表示指示函数。

在回归树中,输入空间的划分常用启发式方法,选择第j个特征x(j)和它的取值s,作为划分变量和划分点,并定义两个区域,

然后通过最小化均方误差来寻找最优划分变量j和最优划分点s,求解如下,

通过固定输入特征j可以找到最优切分点s,然后遍历所有输入特征,找到最优的切分特征j构成一个最优切分对(j,s)。依此将输入空间划分为两个区域,接着对每个区域重复上述操作,直到满足条件为止。

(2)CART回归树的剪枝:用验证数据集对已生成的树采用代价复杂度(cost-complexity pruning,CCP)[13]进行剪枝并选择最优子树,从而保证对未知数据有更准确的预测。

1.3 Spark分布式框架

Spark是由UC Berkeley AMPLab实验室研发并开源的基于内存计算的高效分布式计算框架[14]。相比于传统的Hadoop,Spark引进了弹性分布式数据块(resilient distributed dataset,RDD),高效的有向无环图(directed acyclic graph,DAG)执行引擎,提高了在大数据环境下流数据处理的实时性,同时保证了高容错性和高可伸缩性。除此之外,Spark还兼容分布式文件系统(hadoop distributed file system,HDFS)分布式存储、多语言编程接口以及实时数据流处理(spark streaming)、交互式查询(spark SQL)、机器学习(spark MLlib)和图计算(spark GraphX)通用组件库来解决实时计算、机器学习和图计算等应用场景。整个Spark生态系统如图1所示。

图1 Spark生态系统

2 智慧医院决策系统设计与实现

2.1 系统总体设计

如图2所示,智慧医院决策系统主要由系统分析模块、系统管理模块、数据存储模块以及数据挖掘模块组成。系统分析模块又包括全院分析、门诊分析、住院分析以及患者分析子功能模块。系统管理模块由机构管理、部门管理、系统功能管理、岗位管理、系统日志管理、移动管理、用户管理等子功能管理模块组成。数据存储模块包括分布式数据库存储及关系型数据库存储。数据挖掘模块包括数据预处理、线性回归预测及CART回归预测。

图2 系统总体结构

数据存储模块和数据挖掘模块作为该系统的重要组成部分,本文将只针对这两个模块进行详细阐述。

2.2 数据存储模块设计

数据存储模块主要实现对医院相关统计数据的存储和管理,主要由两部分组成:一是采用Hive数据仓库工具实现对存储在HDFS分布式文件系统上的医院统计数据的解析查询;二是利用Sqoop ETL工具完成Hive与关系型数据库MySQL之间的数据传递,供Web端获取并以图表的形式可视化展示。

2.2.1 Hive解析查询实现

本文采用的Spark框架作为如今最为流行的分布式平台,不仅提供了向HDFS分布式文件系统读取数据的应用接口,也提供了Hive数据仓库工具的应用接口。

Hive是基于HDFS分布式文件系统之上的数据仓库,所以底层数据均存储在HDFS文件系统或HBase中。当用户在Hive中创建完一张表时,会自动在HDFS中创建一个文件夹,表中数据对应着该文件夹下的文件。Hive也可以将结构化的数据文件映射为一张数据库表,从而能够从HDFS文件系统中直接读取表数据,并为用户提供一套完整的SQL查询功能,实现对表数据的简单查询功能。

2.2.2 Hive与MySQL交互实现

由于Web端一般从关系型数据库中读取数据并可视化执行结果,为了完成分布式数据仓库Hive与关系型数据库(例如MySQL)之间的数据传输,Apache提供了Sqoop工具并实现了两者之间的数据交互。Sqoop工具主要提供了两个核心功能:导入和导出,其本质就是一个命令行工具,将导入和导出命令转换成MapReduce程序来实现数据迁移,其工作机制如图3所示。

图3 Sqoop ETL工具工作机制

Sqoop安装配置可参考[snail_bing,2018b],当用户安装完毕后,可以直接执行以下命令完成从Hive数据仓库导出数据到MySQL。

Hive数据导出到MySQL命令实现

sqoop-export--connect jdbc:mysql://localhost:3306

--username xxx

--password***

--table tableName

--export_dir/hive/skybase.db

--columns“id,Month,Outpatient Volume”

2.3 数据挖掘模块设计

数据挖掘模块作为智慧医院决策系统最为核心的部分,需要依赖Spark大数据平台完成两大目标,首要目标是能够对医院相关统计数据有个清晰的认知,然后对原始数据进行针对性的数据清洗、特征选择、归一化等预处理操作;其次就是要借助Spark通用组件库MLlib机器学习库为预处理完的数据合理选择机器学习模型进行有效建模,并能够保证对未知数据具有良好的预测性能。医院统计数据大多是一维的,所以本文采用了简单线性回归和CART树回归这两类回归预测算法来进行对比实现。

2.3.1 数据预处理

智慧医院决策系统的数据主要来源于医院收集的统计数据,包括门诊量、营收入、药占比、床位占比、专家比、诊疗人数、医生平均处方金额等。而这些数据在获取过程中可能出现缺失等现象,所以需要对其进行缺失值检查并处理,同时还需要去除唯一属性。由于大部分统计数据特征维度都是一维且差值较小,所以一般不需要进行特征编码,特征选择及数据归一化操作。

2.3.2 简单线性回归预测算法

为了更好地理解并实现线性回归树预测算法,仍以医院门诊量月度统计量为训练数据去构建最小二乘回归树模型。假设已经从Hive数据仓库中读取到2018年前九个月的门诊量数据,如表1所示,其中x表示月份,y表示每月对应的门诊量,单位为千。目标就是要采用公式(1)中的权重ω和偏置量b来预测第十个月的门诊量。

表1 2018年月度门诊量

紧接着借助MLlib提供的线性回归算法对前九个月数据进行训练,然后根据训练得到的模型对第十个月的门诊量进行预测。预测结果为9.38,非常接近第十个月的门诊量真实值9.1。图4进一步展示了线性回归模型在门诊量月度统计数据上的拟合效果,从中可以看出线性回归模型预测性能相对较好,但是并不能很好地刻画门诊量数据的分布,从第七个月的门诊量数据即可看出线性模型的不足之处。

图4 线性回归模型拟合效果图

2.3.3 CART回归预测算法

实际应用场景中,往往原始数据并不都服从线性分布,此时再使用线性回归模型去拟合该类数据必将大大降低模型的泛化能力,即对未来未知数据的不精确预测。针对该问题,本文进一步尝试了另外一种经典的二叉决策树回归模型CART。决策树模型不仅可以很好地拟合服从非线性分布的数据,还拥有一套成熟的理论体系,保障了树模型的可解释性。

为了更好地理解并实现CART回归树预测算法,还以医院门诊量月度统计量为训练数据去构建最小二乘回归树模型。CART回归树算法拟合效果如图5所示。

图5 CART回归模型拟合效果图

决策树回归模型与简单线性回归模型在训练数据上的拟合能力对比结果如图6所示。从图中可以明显看出决策树模型的决策边界可以更好地描述原始训练数据的特征空间分布,这也是决策树模型及其集成模型(例如RandomForest,AdaBoost,XGBoost,GBDT等)被广泛应用的重要。

图6 回归模型决策边界对比图

3 结语

本文所研究的基于Spark平台的智慧医院决策系统,是一个适用于各县、区、市级医院、各级分院的智能化信息管理、分析与决策系统;是覆盖门诊量分析、住院量分析、全院收入分析、各科室床位占用比分析、各科室医生药占比分析、住院科室医患比分析等各类数据分析引擎的智能分析系统;是能够实现专家占比预测、门诊挂号或收费窗口高峰期预测、各科室床位数推荐、门诊量月度预测、门诊收入年度预测、初诊复诊趋势预测等预测功能,进而辅助医院或医护人员做出高效决策并合理分配医疗资源的智慧医院决策系统。

为了从海量数据中提炼出有价值的信息辅助医院或医护人员做出合理决策,智慧医院决策系统基于大数据分布式框架Spark提供的HDFS分布式存储、MLlib机器学习库的数据预处理及回归预测,实现了对医院信息数据的管理、分析、挖掘、推荐预测功能。从而提高了医院的整体管理水平,医生或医护人员的智能化服务与决策质量,挂号与收费窗口高峰期的精准化预测,床位数、专家号比例等有限医疗资源的合理化分配。

猜你喜欢
门诊量数据挖掘线性
COVID-19疫情对一家三级医院儿内科门诊量和比例的影响
渐近线性Klein-Gordon-Maxwell系统正解的存在性
线性回归方程的求解与应用
探讨人工智能与数据挖掘发展趋势
数据挖掘技术在打击倒卖OBU逃费中的应用浅析
我院2014—2018年门诊人次的季节趋势分析
二阶线性微分方程的解法
一种基于Hadoop的大数据挖掘云服务及应用
某儿童医院2010—2014年门诊量季节动态发展趋势
基于线性正则变换的 LMS 自适应滤波