老年健康评估系统的设计与实现

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 89

硕士学位论文

老年健康评估系统的设计与实现

THE DESIGN AND IMPLEMENTATION


OF THE ELDERLY HEALTH
ASSESSMENT SYSTEM

闫荣珍

哈尔滨工业大学

2018 年 6 月
国内图书分类号:TP315 学校代码:10213
国际图书分类号:621.3 密级:公开

工程硕士学位论文

老年健康评估系统的设计与实现

硕 士 研 究 生: 闫荣珍
导 师 : 徐晓飞教授
申 请 学 位: 工程硕士
学 科: 计算机技术
所 在 单 位: 计算机科学与技术学院
答 辩 日 期: 2018 年 6 月
授予学位单位 : 哈尔滨工业大学
Classified Index: TP315
U.D.C: 621.3

Dissertation for the Master Degree in Engineering

THE DESIGN AND IMPLEMENTATION


OF THE ELDERLY HEALTH
ASSESSMENT SYSTEM

Candidate: Yan Rongzhen


Supervisor: Prof. Xu Xiaofei
Academic Degree Applied for: Master of Engineering
Specialty: Computer Technology
Affiliation: School of Computer Science and
Technology
Date of Defence: June, 2018
Degree-Conferring-Institution: Harbin Institute of Technology
哈尔滨工业大学工程硕士学位论文

摘 要

随着我国人口老龄化速度的加快,老年健康问题带来的社会压力在不断地
增加。而现有的健康评估系统多使用固定的评估规则和评估模型来对个人健康
状况进行风险评估,医护人员无法在系统中动态地、方便快捷地构建老年健康
评估模型,且现有的老年健康评估体系并不完善,缺乏对规范的把控。因此,
完善老年健康评估体系,实现便捷地构建健康评估模型显得尤为重要。
为此,本文将设计并实现老年健康评估系统,完善老年健康评估体系,研
究适用于老年健康评估模型的机器学习方法,抽象算子表达模型并设计工作流
执行引擎来完成老年健康评估模型的零编码构建,并详细设计系统主要功能模
块,实现老年健康评估系统。本文具体完成以下几个方面的工作:
首先,针对现有老年健康评估体系构建不完善的问题,依据《养老机构老
年人健康评估规范》分析老年健康评估内容,确定老年健康评估指标并计算指
标权重,从生理健康、精神健康、生活行为能力、社会适应能力、生活行为习
惯五个维度构建老年健康评估体系,以此达到全面评估老年人健康状况的目的。
其次,针对现有机器学习方法并不完全适用于慢性病患病情况评估的问题,
研究不同机器学习算法在慢性病疾病数据集上所构建老年健康评估模型的性能。
采用 Random Forest 方法计算特征属性的重要度,并使用 Spearman 相关系数计
算各特征属性与目标的相关性来进行特征提取,最后使用 Accuracy、ROC 曲线
和 AUC 值评估模型的综合性能。实验结果表明,Random Forest 和 SVM 方法
更适用于老年健康评估模型的构建。
再次,针对现有老年健康评估系统无法满足医护人员动态构建老年健康评
估模型的需求问题,分析模型构建的工作流程,抽象算子表达模型并设计工作
流执行引擎,实现便捷地构建健康评估模型业务流程,从而使医护人员在系统
中动态地、方便快捷地构建老年健康评估模型,并利用构建好的健康评估模型
评估老年人的健康状况,为医护人员提供决策支持。
最后,基于上述老年健康评估体系的构建和老年健康评估系统的需求分析,
设计系统的整体结构、功能模块和数据库;通过类图、时序图及系统界面,详
细描述了构建老年健康评估模型功能和评估老年人健康状况功能的具体实现;
使用白盒测试和黑盒测试方法对老年健康评估系统的主要功能及性能进行测试。

关键词:老年健康评估;健康评估体系;模型构建;工作流引擎

-I-
哈尔滨工业大学工程硕士学位论文

Abstract
As aging process speeds up, China is facing with the increasing social
pressures caused by elderly health issues. The existing health assessment systems
often use fixed evaluation rules and assessment models to assess the health status of
individual, and that makes the elderly health assessment model cannot be
constructed dynamically and conveniently by medics. Besides, the existing elderly
health assessment institutions is not perfect and lacks control over the standard.
Therefore, it is particularly significant to improve the health assessment institutions
for the elderly and to build a visual health assessment model.
In this paper, I will put forward my ideas to design and implement an elderly
health assessment system, to improve the elderly health assessment institutions, to
research the machine learning methods applicable to the elderly health assessment
model, to abstract an operator expression model and devise the workflow engine to
complete the visualization construction of the elderly health assessment model, and
to detailed design of the main functional modules of the system for the
implementation of an elderly health assessment system. This paper will specifically
accomplish the following tasks.
First of all, aiming at the imperfection of the existing health assessment
institutions for the elderly, I am going to analyze the content of the elderly health
assessment according to the "Rules for health status assessment in long-term care
facilities", ascertain the health assessment indicators for the elderly and calculate
the weights of the assessment indicators. I will build the elderly health assessment
institutions from the five perspectives of physical health, mental health, living
behavioral ability, social adaptability and life habits, in order to achieve a
comprehensive assessment to the health status of the elderly.
Secondly, in view of the present machine learning methods are not fully
applying to the assessment of chronic disease conditions, I studied the performance
of different models of machine learning algorithms for building elderly health
assessment models on chronic disease data sets. I calculated the importance of
feature attributes using the Random Forest method, the correlation between each
feature attribute and the target for feature extraction using the Spearman correlation
coefficient and evaluated the overall performance of the model using Accuracy,
ROC curve, and AUC value. The experimental results show that the Random Forest
and SVM methods are better to the construction of elderly health assessment
models.
Next, because the existing elderly health assessment system cannot meet the

-II-
哈尔滨工业大学工程硕士学位论文

needs of medical personnel to dynamically build an elderly health assessment model,


I will analyze the workflow of model building and abstract an operator expression
model and devise the workflow engine, to build the health assessment model of
visualization. By doing so, health care workers will form an elderly health
assessment model dynamically and in a quick speed using this system, and assess
the health status of the elderly with this well-established health assessment model to
provide decision support for medical personnel.
Finally, based on the above-mentioned elderly health assessment system and
demand analysis of the elderly health assessment system, the system's overall
structure, function modules and database will be designed. Through the class
diagram, sequence diagram and system interface, there will be a detailed description
of the system’s function in building an elderly health assessment model and
realizing the evaluation to the health of elderly. Also, main functions and
performance of the elderly health assessment system can be tested by using the
approach of white box and black box testing.

Keywords: elderly health assessment, health assessment system, model


construction, workflow engine

-III-
哈尔滨工业大学工程硕士学位论文

目 录

摘 要 ...................................................................................................................... I
Abstract ................................................................................................................... II
第1章 绪 论 ....................................................................................................... 1
1.1 课题来源 ....................................................................................................... 1
1.2 课题背景 ....................................................................................................... 1
1.3 课题研究目的和意义 ................................................................................... 2
1.3.1 课题研究目的 ........................................................................................ 2
1.3.2 实际工程意义 ........................................................................................ 2
1.4 国内外研究现状 ........................................................................................... 4
1.4.1 健康评估体系及相关系统研究现状 ..................................................... 4
1.4.2 数据挖掘方法在健康评估中的应用研究现状 ...................................... 6
1.4.3 工作流的可视化技术研究现状 ............................................................. 8
1.5 当前存在的主要问题 ................................................................................. 10
1.6 本文的研究内容及组织结构 ...................................................................... 10
第 2 章 老年健康评估体系与系统需求分析 ....................................................... 13
2.1 老年健康评估体系构建 .............................................................................. 13
2.1.1 老年健康评估内容 .............................................................................. 14
2.1.2 老年健康评估的指标及其权重 ........................................................... 15
2.1.3 老年健康评估体系确立....................................................................... 16
2.2 老年健康评估系统需求分析 ...................................................................... 19
2.2.1 老年健康评估系统功能性需求 ........................................................... 19
2.2.2 老年健康评估系统非功能性需求 ....................................................... 23
2.3 系统业务流程分析 ..................................................................................... 23
2.4 本章小结 ..................................................................................................... 25
第 3 章 老年慢性病评估的方法研究 .................................................................. 26
3.1 老年健康信息特征工程 .............................................................................. 26
3.2 老年健康评估方法 ..................................................................................... 28
3.2.1 基于 Random Forest 的老年健康评估模型 ........................................ 28
3.2.2 基于 XGBoost 的老年健康评估模型 .................................................. 29
3.2.3 基于 SVM 的老年健康评估模型......................................................... 30
3.3 实验及分析 ................................................................................................. 31

-IV-
哈尔滨工业大学工程硕士学位论文

3.3.1 老年慢性病数据特征处理 ................................................................... 32


3.3.2 老年慢性病评估方法对比 ................................................................... 33
3.3.3 模型参数研究 ...................................................................................... 36
3.4 本章小结 ..................................................................................................... 38
第 4 章 老年健康评估模型的构建过程研究 ....................................................... 39
4.1 模型构建的工作流搭建 .............................................................................. 39
4.1.1 工作流分析 .......................................................................................... 39
4.1.2 抽象算子表达模型 .............................................................................. 40
4.1.3 算子表达模型的执行 .......................................................................... 41
4.2 模型构建的工作流执行引擎 ...................................................................... 42
4.2.1 工作流验证 .......................................................................................... 42
4.2.2 工作流执行引擎的设计原则 ............................................................... 44
4.2.3 工作流执行引擎的服务架构 ............................................................... 45
4.2.4 工作流执行引擎的系统融合 ............................................................... 46
4.3 本章小结 ..................................................................................................... 48
第 5 章 老年健康评估系统设计 .......................................................................... 49
5.1 系统总体结构设计 ..................................................................................... 49
5.2 系统功能模块设计 ..................................................................................... 51
5.2.1 系统整体功能结构设计....................................................................... 51
5.2.2 健康评估模型构建模块设计 ............................................................... 53
5.2.3 老年健康评估模块设计....................................................................... 56
5.3 数据库设计 ................................................................................................. 58
5.4 本章小结 ..................................................................................................... 60
第 6 章 老年健康评估系统实现与测试 ............................................................... 61
6.1 构建老年健康评估模型功能实现 .............................................................. 61
6.1.1 算子模块管理功能实现....................................................................... 61
6.1.2 构建工作流实例功能实现 ................................................................... 62
6.1.3 任务管理功能实现 .............................................................................. 63
6.1.4 模型管理功能实现 .............................................................................. 64
6.1.5 可视化统计功能实现 .......................................................................... 65
6.2 评估老年人健康状况功能实现 .................................................................. 65
6.3 老年健康评估系统测试 .............................................................................. 67
6.3.1 单元测试 .............................................................................................. 67
6.3.2 系统测试 .............................................................................................. 68

-V-
哈尔滨工业大学工程硕士学位论文

6.4 本章小结 ..................................................................................................... 72


结 论 ................................................................................................................... 73
参考文献 ............................................................................................................... 74
攻读硕士学位期间发表的论文及其它成果 ......................................................... 78
哈尔滨工业大学学位论文原创性声明和使用权限 ............................................. 79
致 谢 ................................................................................................................... 80

-VI-
哈尔滨工业大学工程硕士学位论文

第1章 绪 论

1.1 课题来源

本课题来源于山东省重大科技专项“云服务组合优化与调度关键技术研发
及示范”(2015ZDXX0201B02)和国家自然科学基金“多维大数据驱动的服务
组合理论与方法研究”(61772159)中的任务“养老云服务平台研发”。本文
主要研究老年健康评估体系、老年健康评估的方法及老年健康评估模型的构建
过程,设计并开发老年健康评估系统。

1.2 课题背景

目前,人口老龄化问题已成为一个全球性的社会问题,随之带来的老年健
康问题给我国带来了巨大的社会压力,已经成为我国当前亟待解决的问题。伴
随着信息科技的飞速发展和老年人保健意识的全面提高,老年健康数据呈爆炸
式的增长。老年健康数据包括电子病历数据、健康体检报告、生活习惯数据等,
如此大量的老年健康数据使得利用老年健康信息进行数据挖掘,从而评估老人
健康状况变得可行。
北京市质量技术监督局于 2014 年 5 月发布了《养老机构老年人健康评估规
范》,该规范确定了老年人健康评估的评估内容、健康分级、评估分类和结果
管理等。传统的医疗信息系统,如 HIS、CIS 等系统着重于对老年健康信息的
管理,缺乏对老人健康状况的评估,无法及时发现老年健康疾病的危险因素,
导致缺乏预防疾病措施并耽误了最佳的治疗时机,评估老年健康状况需求迫切。
老年健康评估的过程是一个健康数据挖掘的过程,该数据处理过程是迭代
的、动态的,且挖掘过程高度耦合,使得健康评估模型构建问题变得复杂。传
统静态的工作流模型不能动态、灵活地定制工作流程,且各阶段控制能力不足、
操作复杂、缺乏高级的可视化能力,无法满足医护人员在老年健康评估模型构
建过程中的动态需求。现有的健康评估系统多使用固定的评估规则和评估模型
来对个人健康状况进行风险评估,医护人员无法在系统中动态地、方便快捷地
构建老年健康评估模型。
因此,需要设计并实现一个老年健康评估系统,该系统可以整合老年健康
数据,并提供便捷地评估模型构建业务,从而可以利用构建好的评估模型评估
老年人的健康状况,辅助医护人员进行医疗决策。

-1-
哈尔滨工业大学工程硕士学位论文

1.3 课题研究目的和意义

通过评估老年人健康状态可以及时发现影响老年人健康的危险因素,然而
目前存在的健康评估系统无法满足医护人员动态构建老年健康评估模型的需求。
通过零编码的方式提供老年健康评估模型的构建业务,利用构建好的模型实现
老年健康状况的评估具有重大的实际工程意义。

1.3.1 课题研究目的

整合老年人的健康信息并对其进行管理,最大限度地进行信息挖掘,发现
其中潜在的一些疾病危险因素,准确地评估老年人健康状况,是对老年人的身
体健康负责,也是对医疗机构的一项重大挑战。因此构建一套完整的老年健康
评估体系,实现高效的老年健康状态评估是很有必要的。老年健康评估系统一
方面提供了老年健康信息管理服务,使医护人员可以通过该服务上传老年人的
健康数据到健康云平台中,另一方面实现了完整的老年健康评估体系,医护人
员通过录入老年人的健康信息,利用构建好的健康评估模型对老年人的健康状
况进行评估,最终做出决策。
利用数据挖掘算法可以对老年健康信息进行进一步地利用,深度挖掘并预
测老年人在健康疾病方面的危险因素,辅助医护人员对老年人健康状况进行评
估,避免评估错误或遗漏一些隐藏的重要信息。医护人员可以通过评估报告发
现老年人潜在的一些疾病危险因素,及时对老年人的日常习惯及行为进行干预,
帮助老年人改善自身健康状况。在对老年人健康状况进行评估的过程中,为医
护人员提供零编码的健康评估模型构建业务,该业务提供模型构建过程中所需
的各种算子模型,包括预处理算子模型、机器学习算子模型和可视化算子模型
等,医护人员可通过 Web 界面拖拽这些可视化算子模型控件形成模型构建工作
流,满足动态地、便捷地构建健康评估模型需求,最终应用构建好的老年健康
评估模型评估老年人的健康状况。
因此,完善老年健康评估体系,实现老年健康信息的管理、老年健康评估
模型的构建过程和提供老年健康状况评估服务成为本文的主要研究目的。

1.3.2 实际工程意义

老年健康评估系统作为山东省重大科技专项“云服务组合优化与调度关键
技术研发及示范”和国家自然科学基金“多维大数据驱动的服务组合理论与方
法研究”的实际工程成果,具有如下的实际工程意义:

-2-
哈尔滨工业大学工程硕士学位论文

(1)应用前景
本文设计并实现的老年健康评估系统提供了老年健康信息的规范化管理,
可以整合来自多个数据源的老年健康信息,并将老年健康信息上传到云平台中,
全面提高了养老服务过程中的信息管理质量。本文设计了老年健康评估标准,
指导了老年健康评估系统的数据库建立及系统设计与实现,推进了我国养老健
康评估体系的标准化建设。通过零编码的老年健康评估模型构建过程,使医护
人员可以自主、动态、便捷地构建老年健康评估模型,满足老年健康评估过程
中的评估模型动态需求。该系统不仅可以为医护人员提供健康评估决策支持,
还可以支持医护人员进行健康评估模型的构建,弥补了现有老年健康评估系统
无法自主构建评估模型的缺陷。医护人员通过系统录入老年人的个人健康信息,
利用构建好的评估模型对老年人进行健康状况的评估,系统会自动生成评估报
告,辅助医护人员发现一些潜在的疾病危险因素,避免评估错误或遗漏一些隐
藏的重要信息,医护人员通过对老年人及早进行疾病干预和治疗,进一步改善
了老年人自身的健康状况。综上所述,本文所构建的老年健康评估系统有一定
的应用前景。
(2)预期经济效益
本项目的实施将会对个人、医护人员和医疗机构产生直接的效益。对个人
而言,老年人可以实时掌握自身的健康状况,节约时间和经济成本,并针对评
估报告结果,及时调整自己的生活习惯,改善健康状况,提高老年人的健康水
平。对医护人员来说,医护人员可以根据需求自主地进行老年健康评估模型的
构建,零编码的工作流程降低了系统的使用成本和技术门槛,减少了医护人员
的学习成本。对于医疗机构,减少了老年健康信息系统的建设和维护成本,同
时系统提供的评估老年人健康状况服务有助于提高服务质量,节约医疗资源并
降低误诊和漏诊的可能性,辅助医护人员发现潜在的疾病危险因素,从而快速
采取干预和治疗措施。综上所述,通过零编码的老年健康评估模型构建过程,
可以有效提高模型构建效率;通过对老年健康状况进行评估,可以提高老年人
的健康水平并减少诊疗失误,提高服务质量,从而产生直接和间接的经济效益。
(3)实际应用价值
该项目将老年健康评估过程规范化管理,实现了老年健康信息管理并简化
了老年健康评估模型的构建过程。通过整合老年健康数据,利用构建好的老年
健康评估模型对老年人的健康状况进行评估,为医护人员提供决策支持,有效
地提高了老年健康评估服务质量,提升了老年人的健康水平,同时也推动了全
国养老健康行业服务化的升级,优化了老年健康评估过程,支撑养老健康行业
向智能化方向进行发展。

-3-
哈尔滨工业大学工程硕士学位论文

1.4 国内外研究现状

根据老年健康评估系统所涉及到的关键技术,本节从健康评估体系及相关
系统、数据挖掘方法在健康评估中的应用和工作流的可视化技术这三个方面对
国内外的研究现状进行分析。

1.4.1 健康评估体系及相关系统研究现状

通过全面了解我国老年人健康护理行业的研究现状,总结并分析我国老年
人健康护理评估项目的实施情况,结果显示,山东省尚未全面开展老年护理健
康评估 [1] 。老年健康状况的综合评估需要构建一个完整的老年健康评估体系,
从多个维度对老年人的各项健康状况进行评估。运用所构建的健康评估指标体
系,全面分析老人的健康状况,探索健康管理的效果及影响健康的指标因素,
为完善我国的养老服务、医疗行业以及社会保障机制提供了参考 [2] 。
文献[3-4]针对老年住院患者,采用文献分析、Delphi 法等多种方法,发现
老年住院患者存在的健康问题及医护方面的需求,综合考虑各种影响因素,最
终构建老年健康护理评估指标体系,为老年住院患者的医疗保健提供科学指导。
文献[5]依据世界卫生组织对健康的新定义,同时参考国内外老年综合健康评估
方法,确立了针对军队干部的老年人综合健康评估指标及各指标权重,最终构
建了综合健康评估指标体系和评估模型。
文献[6-7]分别设计并实现了一个基于 Web 的在线健康评估系统。文献[6]
构建了一个用于评估心血管疾病风险的健康评估系统,可以分析比较人体生理
参数、评估心血管疾病患病风险等,并使用该系统对 6000 多名人群进行健康状
况的评估,验证系统的可用性和有效性。文献[7]研究了基于 web 的系统开发过
程及技术,并分析了健康评估系统的业务流程和功能需求,最终设计并实现了
一个健康评估系统。
文献[8]以 Android 系统为平台,设计并实现了基于时间感知的个人健康风
险评估系统,该系统根据健康风险评估模型所需的输入数据进行健康信息的采
集,并分析这些数据,实现精准地个人健康风险评估,最终根据评估得到的风
险因子和参与评估时间,检索健康知识数据库,为用户提供健康方案。
相对而言,国外对于老人健康状况的评估,更多的是精确到某一种或某一
类型健康状况的评估,很少有涉及到综合健康状况的评估。葡萄牙通过睡眠健
康量表(SHS)对成年人的睡眠健康质量进行评估,以发现睡眠问题并进行干
预治疗,同时尽早预防与睡眠有关的其他疾病,有效促进睡眠和疾病预防 [9]。
文献[10-12]将健康评估系统构建在云平台上,使系统具有灵活性且可扩展,

-4-
哈尔滨工业大学工程硕士学位论文

并为健康风险的评估提供决策支持。文献[10]提出了一种基于模糊专家系统技
术的智能决策支持系统,用于慢性肾脏病的风险评估。同时,该系统部署在谷
歌云平台上,利用谷歌应用引擎作为云服务系统,为早期慢性肾脏病的风险评
估提供了一个云决策支持系统。文献[11]利用 INFaaS 云框架,基于 IoT 开发一
个具有推理服务的个人医疗保健系统,并使用 INFaaS 云服务提供的一组核心
推理通用功能,设计了诊断疾病的动态模型,减少开发人员的工作量,降低了
成本。文献[12]设计了一个用于收集和分析高血压患者患病风险和跌倒风险的
生物医学信号的平台,并对平台进行初步验证。该平台基于云计算,支持临床
决策、处理远程监测数据,并提供快速准确的患病风险和跌倒风险评估。文献
[13] 针对目前海量医疗健康数据转移到云端的趋势,提出了一个健康云平台作
为新兴医疗保健和生命科学系统解决方案的基础来驱动医疗转型。
文献[14-16]采用了模糊关联规则,挖掘疾病规则以支持医疗服务,提高服
务质量。文献[14]采用物联网和模糊关联规则挖掘(FART)的方法,开发了一套
适合家庭护理的智能电子医疗系统。系统支持医疗服务,护理人员使用发现的
规则进行决策,有效提高老人健康护理的服务质量。文献[15]使用模糊关联规
则挖掘的方法,实现了智能医疗补给系统(IMRS)用于评估患者的历史诊断记
录和确定补充医疗资源的数量和频率,有效改善了老年人的医疗健康服务质量。
文献[16]提出了一种基于 2 型模糊本体论,且基于物联网的医疗保健推荐系统,
该系统提取患者生理风险因素的值,通过可穿戴传感器确定患者的健康状况,
对食品和药物的使用提供个性化推荐服务,有效地提高了医疗保健系统的性能。
文献[17-19]基于模糊层次分析法设计并实现了专家决策支持系统,用于评
估个体患心脏病的可能性,辅助医生进行医学诊断。文献[17]基于模糊层次分
析法(AHP)和专家系统的模糊推理方法,将两种方法混合并设计一个临床决
策支持系统(CDSS)以评估个体患心脏疾病的可能性。文献[18]提出了一种用
于医学诊断的模糊专家系统(FES),以辅助医生进行决策。所提出的模糊决
策支持框架考虑了不确定的用户输入,所提出的系统可以用作决策支持系统来
帮助缺乏经验的医生。文献[19]提出了一个新的双峰模糊层次分析框架(BFAHP),
将该方法应用于伊朗医院 152 名患者的实际冠心病数据集,并比较了使用
BFAHP 与神经网络、模糊系统、层次分析法和模糊层次分析法的结果,结果表
明,BFAHP 可以帮助专家提供更准确的结果。
文献[20]提出了由护士或护理专业人员使用的医疗系统,它包括便携式生
物信号采集设备,智能手机应用程序和健康服务器。健康服务器在便携式采集
设备的帮助下监控生物信号,分析患者的健康状况,并向医务人员提供疾病症
状的警报,为慢性病患者的疾病预防和管理提供良好的医疗健康服务。

-5-
哈尔滨工业大学工程硕士学位论文

综上所述,评估老年人健康状况的前提是构建老年健康评估体系。文献[1-5]
表明国内近几年对老年健康评估体系的研究相对较少,并缺乏对一些健康评估
规范的把控,需进一步完善老年健康评估体系。老年健康评估系统需要构建老
年健康评估模型来评估老年人慢性病患病情况,并全面地对老年人健康状况进
行综合评估。文献[6-20]中的多数文献实现了对某一种或某一类疾病的决策支
持系统,辅助医生进行疾病诊断,并没有针对老年人进行综合的健康状况评估,
系统缺乏全面性,且未构建完整的健康评估体系,不支持健康评估模型的构建。

1.4.2 数据挖掘方法在健康评估中的应用研究现状

“数据挖掘(Data Mining)”是从海量的数据集中借助算法挖掘隐藏的信
息的过程,也可以称为知识的发现过程。随着数据挖掘的深入研究,越来越多
的数据挖掘方法被应用于健康评估模型的构建。
文献[21-22]使用决策树算法构建疾病预测模型。文献[21]提出一种分布式
的 C4.5 决策树算法,该算法使用了 Hadoop 的 MapReduce 编程模式和 HDFS
文件存储系统,以此提高了算法的效率,并将所构建的分类模型应用于心脏病
诊断。文献[22]使用基于决策树的综合学习方法来构建患者 FLOS 的预测模型,
实验结果接近最真实的数据分布,验证了预测模型的有效性。
文献[23-26]采用支持向量机方法构建分类器进行疾病诊断。文献[23]基于
体检所获得的各项健康数据指标,采用支持向量机(SVM)方法对南方人群患
者是否患冠心病进行分类研究,为冠心病的预防及治疗提供了指导。文献[24]
采用了 K-Means 和遗传算法(GA)用于去除噪声数据,以 SVM 作为分类器来
找到最优特征集合。所提出的 SVM 方法比其他文献中的分类准确度增加了
2.08%。文献[25]选用支持向量机分类算法来诊断慢性肾脏疾病,选择两种基本
类型的特征选择方法,即封装式和过去式特征选择方法来减小慢性肾病数据集
的维度。结果表明,与其他方法相比,采用 Best First 搜索引擎特征选择方法的
过滤子集评估器的支持向量机分类器在诊断慢性肾脏病方面具有更高的准确率
(98.5%)。文献[26]提出了一种使用从心电图(ECG)提取的心率变异性(HRV)
信号自动诊断正常和冠状动脉疾病的方法,应用主成分分析法(PCA)对特征
属性降维,采用支持向量机(SVM)算法构建分类器,并对 SVM 的参数进行
了调优,以提高精度。
文献[27-30]将不同的数据挖掘算法进行融合,构造混合分类系统用于心脏
病的分析和诊断。文献[27]设计了一种混合 OFBAT-RBFL 心脏病诊断系统,使
用 BAT 和基于规则的模糊逻辑(RBFL)的对立萤火虫技术来预测心脏病,该
系统可以帮助医生自动进行心脏病诊断并增强医疗保健。文献[28]使用基于加

-6-
哈尔滨工业大学工程硕士学位论文

权投票的分类器集成技术进行心脏疾病的预测和分析。提出的集合模型通过使
用五个异构分类器的集合克服了常规数据挖掘技术的局限性:朴素贝叶斯、基
于 Gini 索引的决策树、基于信息增益的决策树、基于实例的学习和支持向量机。
文献[29]提出了一种新的基于 Relief F 和 Rough Set(RFRS)方法的混合分类系
统用于心脏疾病诊断。提出的系统包含两个子系统:RFRS 特征选择系统和具
有整体分类器的分类系统,并最终使用 UCI 数据库的 Statlog(心脏)数据集进
行实验。文献[30]对比 KNN 算法、神经网络、基于聚类的分类、决策树和贝叶
斯分类性能,最终发现决策树的心脏病预测性能优于传统的贝叶斯分类算法。
文献[31-33]利用多种数据挖掘方法构建多分类器,将其用于对多种疾病数
据集的信息挖掘。文献[31]使用决策树方法、逻辑回归方法和一种基于梯度下
降的神经网络方法,分别分析四种慢性病的疾病危险因素,并深入分析了这四
种慢性病共有的疾病危险因素,以观察它们相互之间的联系。文献[32]利用现
有的健康记录数据和可用的生活习惯数据,结合当前流行的 Spark 机器学习计
算平台,建立多分类模型。结合医疗健康记录和生活习惯特征数据的特点,提
出了基于时间窗的 logistic 回归二元分类算法和随机森林健康状况多分类预测
算法。文献[33]提出一种使用聚类,降噪和预测技术的疾病预测决策支持系统。
系统使用分类和回归树(CART)来生成模糊规则,并用几个医疗数据集对提
出的方法进行测试,结果表明,所提出的方法显着提高了疾病预测的准确性。
文献[34-36]分析比较了不同数据挖掘算法所构建模型预测疾病的性能。文
献[34]分析并比较了决策树方法和逻辑回归方法用于预测高血压患者健康状况
的性能。实验结果表明,决策树方法和逻辑回归方法所构建模型预测高血压患
者健康状况效果相当,根据决策树方法所构建模型可以确定高血压患者健康状
况的筛选策略,可用数据挖掘技术预测慢性病患者的健康状况。文献[35]使用
知识发现过程方法,人工神经网络(ANN)和支持向量机模型进行当前的研究
以预测中风的结果,研究结果指出,与 SVM 相比,ANN 在预测中风方面具有
更好的预测性能。文献[36]评估了支持向量机(SVM),随机梯度(SGB)和
惩罚 logistic 回归(PLR)法预测缺血性卒中的性能,利用 10 倍交叉验证重采
样方法,ROC 曲线下面积(AUC)、特异性、敏感性、阳性预测值和阴性预测
值作为模型性能评价指标,采用网格搜索法优化模型参数,最终实验结果表明
支持向量机与其他模型相比,具有最好的预测性能。
综上所述,文献[21-26]使用决策树算法和支持向量机算法构建疾病预测模
型,表明决策树和支持向量机是最常用的数据挖掘算法。文献[27-33]将多种数
据挖掘算法进行融合,构建分类器,用于疾病的诊断,主要涉及到的算法有决
策树、Logistic 回归和支持向量机等。文献[34-36]分析比较了不同数据挖掘算

-7-
哈尔滨工业大学工程硕士学位论文

法预测疾病的性能,Logstic 和支持向量机在大多数数据集中性能都比较好。不
同的算法在不同的数据集中表现也不相同,为此需要进一步研究适用于大多数
疾病数据集的老年健康评估模型方法。

1.4.3 工作流的可视化技术研究现状

老年人普遍患有慢性病,需要借助老年健康评估模型对老年人慢性病患病
情况进行评估。老年健康评估模型的构建是机器学习的过程,需要对数据挖掘
工作流技术进行可视化方法的研究,最终实现老年健康评估模型的可视化构建。
工作流技术最早应用于自动办公化领域,是一种可视化的业务规则,可以将企
业的实际生产过程以工作流的形式更好地展现。1980 年以后,工作流技术由早
期的无实体记录办公环境逐步发展成可以兼容多样信息的环境 [37] 。
文献[38-42]基于 Hadoop 云平台设计并实现了一个数据挖掘系统,使其可
以定义数据挖掘任务,完成对数据挖掘过程的构建。文献[38]基于 MapReduce
编程模型,设计并实现了一个数据挖掘平台,使其能够并行处理大量的数据。
平台以 OSGI 框架为规范,运用数据挖掘过程的建模技术及组件复用的技术,
实现挖掘过程的可视化组件,显著提高了数据挖掘平台的工作效率,使用户便
捷地对平台进行扩展和使用。文献[39]基于 B/S 模式开发数据挖掘平台,提供
友好的图形用户界面给用户进行数据挖掘和 ETL 流程操作。平台通过自定义
MapReduce,使写好的 MapReduce Java 代码可以顺利嵌入到系统中来,由后台
负责对流程进行解析、优化和执行。文献[40] 设计并实现了一个基于 Hadoop
的在线数据挖掘系统,该系统能够通过拖拽可视化组件实现数据挖掘过程的构
建,并验证所构建的数据挖掘过程,提高了系统的工作效率。文献[41]基于 Spark
构建了一个数据挖掘工具平台,平台包括多种数据预处理模块和数据挖掘算法
模块,模块之间可以自由进行组合,且耦合度低,便于模块的维护和扩展,实
现了模型调参、工作流建立等过程的可视化,并将工作流技术和调度流技术进
行融合。文献[42]基于云计算设计并开发了一个数据挖掘平台——PDMiner,该
平台提供了友好的接口界面,使用户可以便捷地定义数据挖掘任务,且开放接
口,方便用户灵活地集成新的算法,提高了系统处理海量数据的效率。
文献[43-44]设计并实现了 Zmining 数据挖掘系统。文献[43]设计并实现了
Zmining 数据挖掘系统中的构件库,通过分析系统的架构及构件库在系统中的
位置,使用 Eclipse 扩展机制实现了构件库的 UI 界面,使其能够和系统很好
的融合。文献[44]介绍了 Zmining 数据挖掘系统的系统总体架构及数据结构,
实现了数据挖掘平台良好的可扩展性,平台基于 OSGI 框架的整体设计思想,
模块化处理了系统的各个功能结构,使得各功能模块可以动态地进行加载。

-8-
哈尔滨工业大学工程硕士学位论文

文献[45-46]主要分析了工作流建模的技术和方法,并介绍了可视化建模工
具。文献[45]分析并探讨了 11 种流行的工作流建模技术,并将工作流建模技术
依据分类标准进行划分,包括基于图形符号的建模技术、基于数学的建模技术
等,并着重介绍了 YAML 和 BPMN 这两种工作流语言。文献[46]提出了一种工
作流建模工具——Work Flow Editor,该可视化工作流建模工具结合了 XPDL 过
程定义语言,可以满足企业的业务过程建模需求。
文献[47-48]构建了一种基于 Web 的工作流管理系统,通过用户友好的界面
提高系统性能。文献[47]通过对基于 Web 的工作流管理系统的分析,按照 WFMC
工作流模型,提出了结合企业具体应用需求的通用工作流管理系统。对航空结
构设计的实际情况表明,使用 Web 技术可以大大提高工作流系统的性能。文献
[48]提供了 ProCrawl(过程爬行器),一种用于从支持多用户工作流程的 Web
应用程序中挖掘用户行为模型的工具。ProCrawl 通过生成程序运行并通过用户
界面观察应用程序行为来逐步构建学习模型。
文献[49-50]提出了在云端进行的分布式计算工作流管理平台。文献[49]提
供了基于 petri 网形式化的新建模技术和工具及架构设计的方法,以促进云和多
智能系统概念和技术的集成,从而在分布式的面向服务的环境中,明确地在云
环境中管理工作流。文献[50]提供了一个分布式计算平台——ClowdFlows。该
平台基于云的 Web 应用程序实现,该应用程序具有图形用户界面,支持数据挖
掘工作流的构建和执行,包括用作工作流组件的 Web 服务。
目前,出现了很多开源的数据挖掘平台实现了工作流技术,如 Tanagra 数
据挖掘软件,该软件使用图形界面,并通过树状结构组织和分析组件,但其缺
乏高级的可视化能力,更适用于统计分析 [51]。Weka 是最常用的数据挖掘软件,
其通过 Java 语言和命令行来调用分析组件,其专业性对于普通用户来说需要很
高的学习成本 [52]。Orange 可以构建一个画布,通过在画布上安放控件,并将控
件进行连接,以此构成数据挖掘流程,其使用简单但缺点是控制能力比较差 [53]。
这些开源数据挖掘软件各有所长但同时也有很多缺点,因此我们需要对数据挖
掘工作流技术做进一步的研究,改善这些问题。
综上所述,构建老年健康评估模型需要实现可视化的工作流技术。文献
[38-44]实现了数据挖掘系统,使用户可以通过可视化界面定义数据挖掘任务,
提高了挖掘过程构建效率。但这些静态的工作流模型不能动态、灵活地定制工
作流程,无法满足用户动态的变更需求。文献[43-50]描述了工作流管理系统涉
及到的工作流引擎技术和工作流建模技术,通过可视化的工作流定制界面完成
工作流管理任务。但这些工作流管理系统是通用的,并不完全适用于特定的医
疗健康领域。文献[51-53]介绍了目前存在的实现工作流技术的开源数据挖掘平

-9-
哈尔滨工业大学工程硕士学位论文

台,但这些平台在高级数据挖掘的可视化与流程控制之间无法取得较好的平衡,
平台的专业化使无编程经历的普通人员学习成本提高。

1.5 当前存在的主要问题

通过对健康评估体系及相关系统、数据挖掘方法在健康评估中的应用和工
作流的可视化技术这三个方面的研究现状分析,发现存在以下几个问题:
(1)老年健康评估指标体系构建不完善
目前,由于国内尚未全面开展老年健康评估项目,关于老年健康评估体系
的研究较少。文献[3-5]构建了老年健康评估指标体系,但缺乏对一些健康评估
规范的把控,需要进一步完善老年健康评估体系。
(2)健康评估系统缺乏对评估模型的构建
文献[6-20]中的多数系统是对某一种或某一类疾病的决策支持系统,没有
针对老年人进行综合的健康状况评估,系统评估缺乏全面性,且未构建完整的
老年健康评估体系,不支持健康评估模型的构建。
(3)数据挖掘方法缺乏针对性
现有的数据挖掘算法支持健康评估模型的构建,但在老年健康评估领域使
用这些算法缺乏针对性。文献[34-36]分析比较了不同数据挖掘算法预测疾病的
性能,但不同的算法在不同的数据集中表现也不相同,为此需要进一步研究适
用于大多数疾病数据集的数据挖掘方法。
(4)工作流可视化与流程控制间无法取得较好平衡
文献[38-44]实现了可视化的数据挖掘系统,但静态的工作流模型无法动态、
灵活地定制工作流程,也无法对工作流程进行控制。文献[51-53]介绍了现有的
实现工作流技术的开源数据挖掘平台,但平台操作复杂,其专业性使普通人员
学习成本提高,造成系统效率低。
本文主要针对上述存在的(1)至(4)项的问题进行深入研究,提供了对
应的解决方案,最终设计实现了老年健康评估系统,并验证了系统的有效性。

1.6 本文的研究内容及组织结构

为实现对老年健康状况的综合评估,满足健康评估模型构建的零编码需求,
本文设计并实现了老年健康评估系统。首先分析老年健康评估的内容和指标权
重,构建老年健康评估体系。其次,对健康信息实施特征工程,对比分析不同
数据挖掘算法所构建的健康评估模型性能,选择合适的算法用于抽象机器学习
算子表达模型。最终,分析模型构建的工作流程,将工作流的数据处理逻辑抽

-10-
哈尔滨工业大学工程硕士学位论文

象为算子表达模型,通过拖拽可视化算子表达模型组件创建工作流实例,由工
作流执行引擎运行,完成健康评估模型的构建。本文的研究思路如图 1-1 所示。

老年健康评估系统设计与实现


健康评估标准不统一 慢性病发病率高 无法动态构建评估模型 流程控制能力不足

问 健康评估体系不完善 评估方法难选择 系统操作复杂、专业化 模型构建过程高迭代



完善老年健康评估体系 老年慢性病评估方法研究 健康评估模型的构建过程研究

养老机构老年健康评估 老年健康信息特征工程 工作流运行流程分析


规范
(DB11/T 305-2014) 抽象算子表达模型
求 集成方法(RF...)

方 提升方法(XGBoost...)
德尔菲法专家咨询 建立工作流执行引擎
法 调查问卷 其他方法(SVM...)

老年健康评估
构建老年健康评估体系 慢性病评估方法选择 模型构建工作流

验 老年健康评估系统应用验证

图 1-1 论文研究思路图

具体章节安排如下:
第 2 章,老年健康评估体系与系统需求分析。分析老年健康评估的内容和
指标权重,构建一套完整的老年健康评估体系。明确系统的参与角色,针对不
同的用户角色进行功能性服务需求分析,并提出系统要满足的非功能性需求,
分析评估老年健康状况和构建老年健康评估模型这两个关键业务流程。
第 3 章,老年慢性病评估的方法研究。详细描述特征工程的相关内容,并
介绍集成方法、提升方法及其他方法的代表性机器学习算法构建老年健康评估
模型的流程。在此基础上,利用真实的健康数据集进行测验,对实验结果进行
分析,比较不同算法在慢性病疾病数据集上的预测效果。
第 4 章,老年健康评估模型的构建过程研究。通过分析构建老年健康评估
模型的具体工作流程,设计并抽象化算子表达模型,利用工作流执行引擎将算
子表达模型组合并顺序执行。提出基于 XML 语言描述算子模型的配置信息和
工作流定义,设计将工作流执行引擎 Oozie 集成于 OSGI 容器的系统融合方案,
实现零编码的老年健康评估模型构建过程。
第 5 章,老年健康评估系统设计。基于老年健康评估系统的需求及关键问
题的研究分析,设计系统的总体结构及软件架构,对模型构建模块和老年健康

-11-
哈尔滨工业大学工程硕士学位论文

评估模块进行详细设计,完成系统的数据库设计。
第 6 章,老年健康评估系统实现与测试。通过用户界面、部分代码和业务
处理流程图三种方式,对构建老年健康评估模型和评估老人健康状况这两个主
要的功能模块实现进行展示。最后,对系统进行单元测试与系统测试。

-12-
哈尔滨工业大学工程硕士学位论文

第2章 老年健康评估体系与系统需求分析

本章将构建一套完整的老年健康评估体系,深入研究老年健康评估的内容
和评估指标及其权重,并分析老年健康评估系统的参与角色,分别针对不同的
角色进行相应的功能性服务需求分析,提出系统要满足的非功能性需求,并对
评估老年健康状况和构建老年健康评估模型这两个关键业务流程进行分析。

2.1 老年健康评估体系构建

构建一个标准的老年健康评估体系,全面评估老年人的健康状况是进行老
年健康评估的前提。为确保老年健康评估结果的准确性和全面性,我们需要分
析老年健康评估的评估内容,确定健康评估指标。为保证评估结果的客观性和
一致性,我们需要为每个评估指标制定相应的评估标准,并针对评估指标对健
康的影响程度计算指标权重,最终使得依据老年健康评估体系实现的老年健康
评估系统更具有客观性和科学性。
老年健康评估体系的构建分为选取评估内容、确定评估指标及计算评估指
标权重三大步骤。首先,我们根据《养老机构老年人健康评估规范》和相关参
考文献,全面分析老年人健康评估体系的研究现状,并从威海布谷夼社区和经
区天弘社区老年人日间照料中心这两家养老服务企业挑选 12 名经验丰富的老
年健康临床医护人员进行访谈,初步确定老年健康评估的内容及其主要的评估
指标。其次,针对老年健康评估指标设计调查问卷,进行两轮德尔菲法专家咨
询,并让专家评估各项指标对老年人健康影响的重要程度,最终建立一套完整
的老年健康评估体系。老年健康评估体系构建过程如图 2-1 所示。

养老机构老年健康评估规范
DB11/T 305-2014 老年健康评估体系
研究现状
相关参考文献
初步确定评估内容及指标
养老服务机构 医护人员访谈

设计专家咨询调查问卷

确定评估指标要素

完成老年健康评估体系构建 两轮德尔菲法专家咨询
确定指标权重

图 2-1 老年健康评估体系构建过程

-13-
哈尔滨工业大学工程硕士学位论文

2.1.1 老年健康评估内容

我们通过对《养老机构老年人健康评估规范》及其相关参考文献的分析和
整理,并结合对老年健康临床医护人员的访谈结果,初步确定从生理健康、精
神健康、生活行为能力、社会适应能力、生活行为习惯这五个维度构建老年健
康评估体系,以此达到全面评估老年人身体健康状况的目的。老年健康评估内
容如表 2-1 所示。

表 2-1 老年健康评估内容

维度 评估内容
生理健康 身体器官、慢性病等身体各方面生理功能
精神健康 情绪状态及认知功能、应对能力
生活行为能力 老年人维持生活所必须的基本行为能力
社会适应能力 社会支撑状况、医疗经济状况
生活行为习惯 抽烟、喝酒、饮食、是否定期体检等

生理健康主要是指老年人身体各方面的生理功能正常,是老年健康评估的
重要组成部分,也是其他维度健康的基础。老年人普遍患有慢性病,而慢性病
是一个长期治疗的过程,且极易引起其他器官的病变,深深地影响着老年人的
生活质量。我们主要从慢性病患病情况、视力、听觉、营养状况等方面评估老
年人生理健康状况。
精神健康是指老年人的心理活动正常,即老年人在情绪状态及认知功能、
应对能力方面有一定的自我调节能力,是早期发现老年痴呆症的主要手段之一。
我们主要从睡眠质量、心理情绪、执行功能、回忆和语言等认知能力方面对老
年人精神健康状况进行评估。
生活行为能力即老年人日常生活所需的基本行为能力,是老年人能否独立
进行日常活动的基础。主要包括日常生活能力及步态和平衡能力,以此评估老
年人行为是否可以满足日常生活所需。
社会适应能力主要指老年人的社会支持情况和医疗经济状况。良好的社会
适应能力可以提高老年人的健康状况,使老年人没有任何方面的后顾之忧,保
障老年人良好的生活质量。
良好的健康生活行为习惯是预防疾病、保障自身健康的基础,通过改善自
身不良的生活行为习惯可以减少甚至消除一些影响健康状况的危险行为。我们
从定期体检、抽烟、喝酒、饮食等方面来评估老年人的生活行为习惯是否良好。

-14-
哈尔滨工业大学工程硕士学位论文

2.1.2 老年健康评估的指标及其权重

我们依据老年健康评估指标设计了指标重要程度情况调查表,从威海市立
医院挑选 7 名具有丰富经验,在老年健康领域工作 10 年以上,且具有较强责任
心,可以给出客观、全面意见的专家完成问卷调查。由专家对各项评估指标进
行权重赋值,并提出自己的建议。通过两轮的德尔菲法专家咨询问卷调查,并
将结果进行汇总和统计分析,最终根据健康评估的内容,从生理健康、精神健
康、生活行为能力、社会适应能力、生活行为习惯五个维度筛选出 17 项关键评
估指标,并对这些指标进行权重赋值。老年健康评估的部分指标如表 2-2 所示。

表 2-2 老年健康评估的部分指标

维度 评估指标 评估方法
生理健康 慢性病患病情况 询问/老年健康评估模型
视力情况 标准对数视力表
听力情况 语音测试
营养状况 简易营养评估(MNA-SF)
躯体疼痛 疼痛数字评分法(NRS)
精神健康 认知能力 画钟试验(CDT)/简易智能评估量表(MMSE)
睡眠质量 深睡眠质量评估表
抑郁 老年抑郁量表(GDS)
焦虑 Zung 焦虑自评量表(SAS)
生活行为能力 日常生活能力 Barthel 指数
步态和平衡能力 Tinetti 量表
社会适应能力 社会支持 肖水源社会支持评定量表(SSRS)
医疗费用来源 (1)医保 (2)自费 (3)其他
生活行为习惯 是否定期体检 (1)是 (2)否
是否抽烟 (1)是 (2)否
是否喝酒 (1)是 (2)否
饮食情况 (1)健康 (2)一般 (3)较差

专家的权威程度决定了专家咨询问卷调查结果的可靠程度,为此,我们从
理论分析能力、领域熟悉程度、实践经验等方面由专家进行自我综合评估,获
得专家权威系数,系数越接近 1,表示权威性越高,问卷调查结果越可信。
由专家对重要的健康评估指标进行权重赋值,并将结果进行平均值计算。
使用专家权威系数加权平均值,修正指标权重赋值结果,最终得到老年健康评
估的部分指标权重值,如表 2-3 所示。

-15-
哈尔滨工业大学工程硕士学位论文

表 2-3 老年健康评估的部分指标权重值

生理健康 精神健康 生活行为能力 社会适应能力 行为习惯 权重


— 0.39 0.15 0.23 0.12 0.11 1
慢性病患病情况 0.34 — — — — 0.133
视力情况 0.11 — — — — 0.043
听力情况 0.09 — — — — 0.035
营养状况 0.25 — — — — 0.098
躯体疼痛 0.21 — — — — 0.082
认知能力 — 0.41 — — — 0.062
睡眠质量 — 0.25 — — — 0.037
抑郁 — 0.16 — — — 0.024
焦虑 — 0.18 — — — 0.027
日常生活能力 — — 0.57 — — 0.131
步态和平衡能力 — — 0.43 — — 0.099
社会支持 — — — 0.47 — 0.056
医疗费用来源 — — — 0.53 — 0.064
是否定期体检 — — — — 0.36 0.039
是否抽烟 — — — — 0.21 0.023
是否喝酒 — — — — 0.19 0.021
饮食情况 — — — — 0.24 0.026

2.1.3 老年健康评估体系确立

经过两轮的德尔菲法专家咨询问卷调查,并对调查结果进行统计分析和计
算,最终确定了包含 5 个健康维度的 17 项重要健康评估指标及其指标权重。最
终构建的老年健康评估体系主要框架及关键指标权重如图 2-2 所示。
老年健康评估体系各指标评估方法的说明:
(1)慢性病患病情况:老年人普遍患有慢性病,而慢性病是一个长期治疗
的过程,且极易引起其他器官的病变,治疗费用高,深深地影响着老年人的生
活质量。在这一部分,通过询问老年人健康疾病史了解老年人患慢性病的情况,
将情况分为“无”、“1~3 种”、“3 种以上”三个等级,并构建老年慢性病
预测模型,评估老年人未来可能患慢性病的种类。
(2)视力、听力情况:视力和听力直接影响到老年人的日常生活和交流沟
通,因此,我们选用常用的标准对数视力表和语音测试对老年人的视力和听力
情况做粗测,以此了解老年人的视觉和听觉减退程度。

-16-
哈尔滨工业大学工程硕士学位论文

慢性病患病情况(0.133)
视力情况(0.043)
生理健康
听力情况(0.035)
(0.39)
营养状况(0.098)
躯体疼痛(0.082)

认知能力(0.062)

精神健康 睡眠质量(0.037)
(0.15) 抑郁(0.024)
焦虑(0.027)
老年健康评估
体系框架 生活行为能力 日常生活能力(0.131)
(0.23) 步态和平衡能力(0.099)

社会适应能力 社会支持(0.056)
(0.12) 医疗费用来源(0.064)

是否定期体检(0.039)

生活行为习惯 是否抽烟(0.023)
(0.11) 是否喝酒(0.021)
饮食情况(0.026)

图 2-2 老年健康评估体系主要框架及关键指标权重

(3)营养状况:合理的营养可以帮助老年人改善部分健康功能指标,可以
一定程度上降低患病 的风险。我们选用简易营养评估量表(Mini Nutritional
Assessment-Short Form,MNA-SF)对老年人的营养状况做一个评估,其中包括
对老年人的食量、BMI 指数、体重、活动能力、精神心理、急性疾病等方面的
评估。评估量表满分 14 分,≥12 分则营养状况正常,8~11 分则可能会有营养
不良风险,≤7 分则营养不良。通过 MNA-SF 的测试筛查患有营养不良风险的
老年人,对其及时进行营养干预。
(4)躯体疼痛:疼痛是我们平时最容易忽视的一种老年综合症,不仅会导
致老年人的生活质量下降,在严重时,甚至还会影响到老年人的日常行为和心
理健康。为此,使用疼痛数字评分法(Numerical Rating Scale,NRS)对老年
人的疼痛程度进行评估,疼痛数字评分区间为[0,10],0 分为无痛,10 分为剧
痛,数字越大则表示疼痛感越强。
(5)认知能力:通过评估认知能力可以尽早发现并诊断老年痴呆症,便于

-17-
哈尔滨工业大学工程硕士学位论文

早期的疾病干预和治疗。我们通过画钟试验(Clock Drawing Test,CDT)和简


易智能评估量表(Mini Mental State Examination,MMSE)对老年人的认知能
力进行综合评估。CDT 得分在 3~4 分表示认知水平正常,0~2 分则说明认知水
平下降。MMSE 总分 30 分,其所得分值与受教育程度有关,包含定向、记忆、
注意和计算、回忆及语言这 5 个方面的测试。
(6)睡眠质量:老年人普遍患有失眠症,长期的睡眠障碍严重影响老年人
的生活质量,会加重患病程度并对心理健康造成一定的影响。我们使用深睡眠
质量评估表评估老年人睡眠质量,针对答案计算最终分数,≤4 分表示睡眠质
量良好,4~6 分表示睡眠质量较差,≥7 分则睡眠质量很差,需及时给予干预。
(7)抑郁、焦虑:严重的不良情绪会损害老年人的健康和生活质量,但这
种不良情绪往往会因为身体的不适而被忽略造成漏诊,为此,我们使用老年抑
郁量表(Geriatric Depression Scale,GDS)和 Zung 焦虑自评量表(Self-rating
Anxiety Scale,SAS)评估老年人是否有不良的情绪,以尽早进行心理指导干预。
(8)日常生活能力:良好的日常生活能力可以保障老年人维持最基本的生
活自理能力。Barthel 指数(Barthel Index,BI)被用来评估老年人的日常生活
能力,共有 10 个评估项目,总分为 100 分,分值越高则表示老年人的自理能力
越强。通过评估老年人日常生活能力缺陷程度,给予个性化的医护照顾。
(9)步态和平衡能力:跌倒会对老年人造成意外伤害甚至死亡,所造成的
医疗花销也无法估量,作为影响老年人跌倒风险的重要影响因素,Tinetti 量表
(Tinetti Balance and Gait Analysis)可以很好的评估老年人的步态和平衡能力,
并筛选出最受影响的评估项目,针对性地给予护理干预。
(10)社会支持、医疗费用来源:良好的社会支持和医疗费用来源可以促
进老年人的生活质量和身心健康,这些因素与老年痴呆症及多种慢性病之间存
在一定的联系。社会支持评定量表(Social Support Rate Scale,SSRS)可以较
好地反映个人在社会上所获得的支持程度,共有 10 条项目,得分越高表明获得
的支持程度越高。将医疗费用来源分为医保、自费、其他三个选项,通过了解
医疗费用的来源和社会支持程度,为老年人的治疗及护理方案提供参考依据。
(11)生活行为习惯:良好的生活行为习惯可以预防疾病,维护自身的健
康,通过改变一些危险的生活方式也可以有效减少或者消除疾病风险。我们将
是否定期体验、是否抽烟、是否喝酒简单分为“是”和“否”两个等级;将饮
食情况从饮食口味、食用腌制食物频率、食用高脂肪食物频率等维度测量,分
为“健康”、“一般”、“较差”三个等级。针对上述项目,医护人员可通过
简单询问了解老年人生活行为习惯,并提出个性化的医疗保健建议。

-18-
哈尔滨工业大学工程硕士学位论文

2.2 老年健康评估系统需求分析

老年健康评估系统需要从多个维度对老年人健康状况进行评估,现有的各
种评估量表,如 MMSE、SAS 等可以满足我们的大部分评估需求,但对老年人
慢性病的患病情况进行评估方面,却缺乏老年健康评估模型来评估老年人未来
可能患慢性病的种类。为此,我们需要在老年健康评估系统中动态地构建老年
健康评估模型,并利用模型评估老年人慢性病患病情况。
此外,由于现有的机器学习算法种类繁多,不同的算法会构建不同的老年
健康评估模型,我们需要比较不同算法所构建评估模型的性能,从中选择最优
的算法来进行老年健康评估模型的构建。因此,我们面向老年健康评估的处理
过程进行分析,以此选择最优的健康评估模型用于评估老年人慢性病患病情况,
预测老年人未来可能患慢性病的种类。
我们从 HIS 系统、老年健康体检报告等多个数据源进行数据的采集。面对
海量的、有噪声的、有缺失值的老年健康数据,首先需要对老年健康信息进行
预处理,并选用合适的特征向量进行模型的构建。由于模型的构建过程过于专
业化,为使医护人员可以便捷的利用系统构建老年健康评估模型,我们需要研
究面向过程的可视化方法,最终实现零编码的老年健康评估模型构建过程。

2.2.1 老年健康评估系统功能性需求

老年健康评估系统参与角色包含三大类:用户、医护人员、系统管理员,
各角色的功能描述如表 2-4 所示。

表 2-4 系统参与角色及功能描述

角色 功能描述
用户 查看自己的健康信息档案
完成各项健康评估测验表的填写
医护人员 管理老年健康信息
管理健康评估测验表
构建老年健康评估模型并应用
系统管理员 对用户、菜单、集群、文件进行维护
管理模型构建所需的算子表达模块
管理模型构建项目及任务

在明确老年健康评估系统的参与角色及各角色功能后,通过进一步的角色
用例分析描述系统的功能性需求。

-19-
哈尔滨工业大学工程硕士学位论文

(1)用户服务需求
用户通过系统的前台门户网站进行个人信息的注册并进行系统登陆,同时
查询个人健康档案信息。用户可以通过在 Web 页面填写各类健康评估测验表来
完成本人各项健康状况的评估,并查看最终的健康评估报告。用户服务需求用
例图如图 2-3 所示。

病历信息查看

注册和登陆 <<include>>
体检信息查看
<<include>>

健康档案查看 <<include>> 健康史信息查看

生理健康测验
<<include>>
健康评估测验
<<include>>
精神健康测验
<<include>>

用户 评估结果查看 <<include>>
生活行为能力测验
<<include>>

个人信息维护 社会适应能力测验

修改密码
生活行为习惯测验

图 2-3 用户服务需求用例图

用户存在如下功能服务需求:
1)注册和登陆:用户可以通过前台门户网站的注册界面进行信息注册,在
系统登陆界面,通过输入用户的用户名和密码进行登录。
2)健康档案查看:用户登陆前台门户网站后,可以查看个人的健康档案信
息,包括病历信息、体检信息、健康史信息等。
3)健康评估测验:用户通过系统提供的界面,选择需要完成的健康评估测
验项目,完成生理健康、精神健康、生活行为能力、社会适应能力、生活行为
习惯五个维度的项目评估测试。
4)评估结果查看:用户在健康评估结果界面查看最终生成的健康评估报告,
同时可详细查看各项目评估结果信息。
5)个人信息维护:维护个人的基本信息,包括查看或修改用户名、家庭住
址、联系方式等。
6)修改密码:用户可以对自己的账户密码进行修改操作。

-20-
哈尔滨工业大学工程硕士学位论文

(2)医护人员服务需求
系统为医护人员提供老年健康信息管理、健康评估测验表管理等服务,同
时医护人员可以通过 Web 界面完成零编码的老年健康评估模型构建,并应用所
构建的健康评估模型评估老年人的慢性病患病情况。医护人员服务需求用例图
如图 2-4 所示。

病历信息维护
<<include>>
<<include>> 体检信息维护
健康信息管理 <<include>>
健康史信息维护

健康评估测验表管理 项目管理

<<include>>
任务管理
<<include>>
健康评估模型构建
<<include>>
模型管理
医护人员

健康评估 <<include>> 生理健康评估


<<include>>
<<include>> 精神健康评估
<<include>>
个人信息维护 <<include>>
生活行为能力评估

社会适应能力评估
生活行为习惯评估

图 2-4 医护人员服务需求用例图

医护人员存在如下功能服务需求:
1)健康信息管理:医护人员登陆系统的健康信息管理界面,可以对老年人
的病历、体检、健康史等信息进行添加、修改和删除操作。
2)健康评估测验表管理:医护人员可以根据不同的健康体检标准,有针对
性的设计健康评估测验表,并能够对评估测验表进行审核、修改和删除等操作。
3)健康评估模型构建:医护人员在健康评估模型构建页面可以新建一个工
作流项目,通过集成算子表达模型并拖拽可视化算子模型控件来搭建一个完整
的模型构建工作流程。运行工作流程并新建任务来管理工作流的运行过程,最
终完成健康评估模型的构建,并对生成的健康评估模型进行管理。
4)健康评估:医护人员根据老年人所完成的各项健康评估测验表的测试结
果,从生理健康、精神健康、生活行为能力、社会适应能力、生活行为习惯这
五个维度对老年人的各项健康状况进行综合评估并给出个性化的针对性建议。
5)个人信息维护:对个人的基本信息进行维护,同时可维护老年人的基本
信息,实现对老人基本信息的增加、删除和修改操作。

-21-
哈尔滨工业大学工程硕士学位论文

(3)系统管理员服务需求
系统管理员可以对用户、系统菜单、Spark 集群和集群文件进行维护,抽
象化健康评估模型构建所需的算子表达模型,并对模型构建过程中的项目和任
务进行管理。系统管理员服务需求用例图如图 2-5 所示。

信息管理

角色管理
<<include>>
<<include>> 权限管理
<<include>>
用户管理
集群管理
<<include>>

集群管理 <<include>>
文件管理

算子模块管理
<<include>>
系统管理员 模型管理
<<include>>
<<include>>
项目管理
<<include>>

<<include>>
菜单管理 任务管理
<<include>>

模型管理

可视化统计

图 2-5 系统管理员服务需求用例图

系统管理员存在如下功能服务需求:
1)用户管理:系统管理员可以对所有用户的个人信息进行添加、修改和删
除操作,并为不同的用户配置不同的系统角色和功能权限,以此实现系统基于
角色的访问控制策略。
2)集群管理:通过集群管理界面为系统管理员提供集群管理和集群文件管
理服务,使系统管理员根据需求实现对 Spark 集群的可视化维护。
3)模型管理:根据健康评估模型构建过程中的算子表达模型控件需求,系
统管理员可以实现对所需算子表达模型的上传、修改和删除操作。同时,对模
型构建过程中的项目和任务进行管理,实现对所构建老年健康评估模型的管理
和对任务状态、任务耗时、模块引用次数和模型应用次数的可视化统计。
4)菜单管理:系统管理员根据用户角色和权限的不同,对不同级别的用户
配置不同的菜单显示界面。通过对菜单功能进行添加、修改和删除操作,实现
系统良好的可扩展性。

-22-
哈尔滨工业大学工程硕士学位论文

2.2.2 老年健康评估系统非功能性需求

在完成系统的功能性需求描述后,需要对系统的非功能性需求做进一步的
分析。本节将从以下几个方面对系统的非功能性需求进行阐述:
(1)易操作性:从普通用户的角度进行系统界面的设计,实现界面的友好
性,便于用户理解和使用系统。当用户操作不当或操作失败时,系统进行异常
处理,并给出必要的提示。
(2)安全性:老年健康评估系统涉及到众多的个人隐私信息,为保障数据
的安全性,系统应具有严格的权限管理制度。本系统采用基于角色的访问控制
策略,为不同的用户分配不同的角色和权限,使各功能模块都有一定的访问权
限。系统每隔一段时间自动备份数据,防止因用户操作不当或其他原因所造成
的数据丢失或损坏。
(3)系统性能:随着用户数量及老年健康信息量的增多,需要保障系统运
行的稳定性,即不管用户进行何种操作请求,系统都能够快速、高效地给予用
户反馈,并将系统反应时间控制在 5 秒以内。同时,系统有一定的异常处理能
力,在遇到通信中断、无法连接集群服务器等异常情况时,可以及时监测到异
常并做出相应处理。
(4)可扩展性:当系统的模型构建工作流运行任务失败时,可以对失败原
因进行分析,并根据失败原因采取不同的处理操作。系统管理员也可根据用户
需求的变化,利用系统提供的接口,实现算子表达模型和系统功能模块的扩展,
完成系统的升级。

2.3 系统业务流程分析

构建老年健康评估模型主要由医护人员负责,该业务执行的前提条件是集
群正常运行、构建老年健康评估模型所需的算子表达模型全部实现、老年健康
信息录入完整,其具体的业务流程如图 2-6 所示。
系统管理员对 Spark 集群和算子表达模型进行维护,医护人员对老年健康
信息进行维护,这是老年健康评估模型构建业务可以正常执行的先决条件。医
护人员新建项目,在画布上通过拖拽可视化算子表达模型组件搭建完整的模型
构建工作流程,并进行参数配置。在工作流搭建完成后对工作流进行审核,若
审核通过则运行工作流、创建工作流执行任务,否则重新搭建模型构建工作流。
运行结束后查看工作流执行任务是否成功完成,若完成则老年健康评估模型构
建成功,业务活动结束,否则重新对工作流进行审核。

-23-
哈尔滨工业大学工程硕士学位论文

业务编号 Eva_OH_01 业务名称 构建健康评估模型流程示意图


业务简要流程描述 老年健康评估的模型构建过程
业务流程适用范围 集群管理、模块管理、项目管理、任务管理、模型管理等

系统管理员 医护人员

开始

集群维护

算子模型维护 健康信息维护

新建项目

构建工作流

参数配置

工作流审核


审核通过?

运行并创建任务


任务完成?


老年健康评估模型

结束

图 2-6 构建老年健康评估模型泳道图

评估老年人健康状况业务主要由医护人员负责,该业务执行的前提条件是
老年健康评估模型构建完成、健康信息维护完成、健康评估测验表维护完成,
其具体的业务流程如图 2-7 所示。
系统管理员对老年健康评估模型进行维护,医护人员对老年健康信息和健
康评估测验表进行维护,并对健康评估测验表进行审核,这是评估老年人健康
状况业务可以正常执行的前提条件。若健康评估测验表审核通过,则由用户在
前台门户网站完成各项健康评估测试,再由医护人员对这些项目的测试结果进
行综合评估,最终生成一份完整的老年健康评估报告,用户可以查看自己的健
康评估结果。

-24-
哈尔滨工业大学工程硕士学位论文

业务编号 Eva_OH_02 业务名称 评估老人健康状况流程示意图


业务简要流程描述 老年人健康评估报告生成的过程
业务流程适用范围 健康评估测验、评估结果查看、健康信息管理、健康评估等

系统管理员 医护人员 用户

开始

模型维护 健康信息维护
健康档案

健康评估测验表维护
健康评估测验表
否 是
审核通过? 健康评估测验

健康评估
健康评估报告

评估结果查看

结束

图 2-7 评估老人健康状况泳道图

2.4 本章小结

本章主要构建了一套完整的老年健康评估体系,明确了老年健康评估系统
的设计思路和开发目标。将系统的角色划分为三大类:用户、医护人员和系统
管理员。根据不同的角色详细描述了老年健康评估系统的功能性需求,确定了
老年健康评估系统的非功能性需求,并详细分析了评估老年人健康状况和构建
老年健康评估模型这两个核心业务流程。

-25-
哈尔滨工业大学工程硕士学位论文

第3章 老年慢性病评估的方法研究

本章将描述特征工程的相关内容,然后将机器学习的方法分为三类即集成
方法、提升方法以及其他方法。其中,集成方法以 Random Forest 为代表,提
升方法以 XGBoost 为代表,其他方法以 SVM 为代表,详细介绍它们构建老年
慢性病评估模型的流程。在实验部分,我们首先进行老年健康信息的预处理,
然后比较不同算法在慢性病疾病数据集上所构建评估模型的性能,并研究影响
模型性能的参数。

3.1 老年健康信息特征工程

老年健康信息的特征属性直接决定了所构建健康评估模型的好坏,为此我
们需要对老年健康信息进行一项特征工程活动,最大限度地从信息中提取特征
属性以供老年健康评估模型使用。通常,特征工程包含对特征的使用、获取、
处理和监控四个方面。在本节,我们只对核心部分——特征处理进行详细描述。
特征处理包括对老年健康信息的数据预处理、特征选择等操作。本节对我
们在老年健康信息的特征工程活动中所用到的一些特征处理功能进行介绍:
(1)老年健康信息数据预处理
老年健康信息种类繁多,包括病历信息、健康史信息、体检信息等,通过
对这些信息的采集,我们可以得到未经处理的老年健康原始数据集,此时数据
集的特征属性可能会存在如下问题:
1)信息冗余:对于老年健康数据集,存在一些特征属性对健康评估模型的
分类效果没有影响或者特征之间存在一定的关联性,这些都称为特征冗余。对
于一些定量的特征属性,需要将其包含的有效信息划分为区间。
2)存在缺失值:对于存在缺失值的老年健康数据,需要填充缺失值数据。
3)特征稀疏:老年健康数据集中的数据也许分布会很分散,或存在一些异
常的数据,这些都会影响模型的训练结果,可以标准化数据来解决这个问题。
4)特征无法直接使用:一些机器学习算法模型的输入只能是定量特征,为
此,我们可以用虚拟编码的方式将定性特征转换为定量特征。
5) 健康信息利用率低:机器学习算法种类繁多,其对健康信息的利用也不
相同。在线性模型中,可以通过对定性特征采用哑编码方式、将定量变量多项
式化或其他转换方式,达到非线性效果。
我们常用以下方法解决上述问题:

-26-
哈尔滨工业大学工程硕士学位论文

1)标准化
由于特征属性规格不同,无法将其放在一起进行比较,通过计算特征属性
的均值和标准差,将特征标准化来解决这一问题。计算公式见式(3-1):

𝑥−𝐴
𝑥′ = (3-1)
𝜎𝐴
其中,𝑥 ′ 表示标准化后的特征,𝑥表示原始特征,𝐴表示特征属性的均值,𝜎𝐴 表
示特征属性的标准差。
2)定量特征二值化
对于一些定量特征属性,我们可以设定一个阈值,将大于阈值的特征值转
化为 1,小于或等于阈值的特征值转化为 0,计算公式见式(3-2):

1, 𝑥 > 𝑦
𝑥′ = { (3-2)
0, 𝑥 ≤ 𝑦
其中,𝑥 ′ 表示定量特征二值化后的特征,𝑥表示原始特征,𝑦为设定的阈值。
3)缺失值处理
在我们的健康数据集里,我们使用特征属性值的中值进行缺失值的填充。
4)数据转换
构造新的特征属性可以提高所构建模型的性能。常见的数据转化方式有基
于多项式的、基于对数函数的、基于指数函数的,本文基于多项式进行数据转
换。假设存在 3 个特征属性,度为 2,则其多项式转换公式见式(3-3):

(𝑥1′ , 𝑥2′ , 𝑥3′ , 𝑥4′ , 𝑥5′ , 𝑥6′ , 𝑥7′ , 𝑥8′ , 𝑥9′ , 𝑥10
′ )

= (1, 𝑥1 , 𝑥2 , 𝑥3 , 𝑥12 , 𝑥1 ∗ 𝑥2 , 𝑥1 ∗ 𝑥3 , 𝑥22 , 𝑥2 ∗ 𝑥3 , 𝑥32 ) (3-3)

其中,𝑥𝑖′ 表示数据转换后的第 i 个特征,𝑥𝑖 表示第 i 个原始特征。


(2)老年健康信息特征选择
对老年健康信息进行数据预处理后,需要选择有意义的老年健康信息特征
属性进行健康评估模型的训练。一般从两个角度来进行特征选择:1)特征属性
是否发散:如果一个特征属性值的方差接近于 0,则此特征属性对于样本的区
分没有意义;2)特征属性与目标的相关性:应该优先选择与目标相关性高的健
康信息特征属性。
在我们的老年健康信息数据处理中,我们主要基于第二个角度进行特征属
性的选择。具体地,我们使用 Spearman 相关系数计算各个特征属性对目标值的
相关系数和相关系数的 P 值。设𝑥𝑖 ,𝑦𝑖 分别为随机特征变量𝑥和𝑦排行中的第 i
个值,𝑥和𝑦表示特征变量𝑥和𝑦的均值,Spearman 相关系数的计算公式见式(3-4):

-27-
哈尔滨工业大学工程硕士学位论文

∑𝑖(𝑥𝑖 − 𝑥)(𝑦𝑖 − 𝑦)
𝑝= (3-4)
√∑𝑖(𝑥𝑖 − 𝑥)2 ∑𝑖(𝑦𝑖 − 𝑦)2

3.2 老年健康评估方法

老年健康评估模型以老年健康信息的部分特征属性作为输入,评估老年人
未来可能患慢性病的种类,辅助医护人员进行医疗决策,以尽快进行疾病治疗。
本节将对基于 Random Forest、XGBoost 和 SVM 的老年健康评估模型进行描述。

3.2.1 基于 Random Forest 的老年健康评估模型

随机森林(Random Forest,RF)是一种分类机器学习方法,其所构建的分
类器含有多个决策树,并且利用投票机制将各个决策树的分类结果众数,作为
最终分类器的输出类别。随机森林有许多优点:(1)在数据缺失的情况下,它
仍可以维持较高的准确率;
(2)它能够处理高维数据,并且不需要做特征选择;
(3)模型训练速度快,在模型训练完成后,还能够给出哪些特征比较重要。使
用 Random Forest 方法构建老年健康评估模型的详细定义如下:
设老年健康数据集为D,|𝐷|表示数据集的大小。有K个类,𝐶𝑘 ,k = 1,2, … , K,
|𝐶𝑘 |为 类 k 的 样本个 数 。设老年 健康信息 特 征属性 A 有 n 个不 同的取值
{𝑎1 , 𝑎2 , … , 𝑎𝑛 },根据特征 A 的取值,将 D 划分为 n 个不同的子集{𝐷1 , 𝐷2 , … , 𝐷𝑛 },
|𝐷𝑖 |为 Di 的样本个数。有:∑𝑖 |𝐷𝑖 | = 𝐷。记子集 Di 中属于类 Ck 的样本的集合
为𝐷𝑖𝑘 ,|𝐷𝑖𝑘 |为𝐷𝑖𝑘 的样本个数。
老年健康信息数据集 D 的经验熵,其计算公式见式(3-5):
𝐾
|𝐶𝑘 | |𝐶𝑘 |
H(D) = − ∑ 𝑙𝑜𝑔 (3-5)
|𝐷| |𝐷|
𝑖=1

特征属性 A 对于老年健康数据集 D 的经验条件熵,其计算公式见式(3-6):


𝑛 𝐾
|𝐷𝑖 | |𝐷𝑖𝑘 | |𝐷𝑖𝑘 |
H(D|A) = − ∑ ∑ 𝑙𝑜𝑔 (3-6)
|𝐷| |𝐷𝑖 | |𝐷𝑖 |
𝑖=1 𝑘=1

特征属性 A 的信息增益gini(𝐷, 𝐴),其计算公式见式(3-7):


g(D) = H(D) − H(D|A) (3-7)

具体地,基于 Random Forest 算法的老年健康评估模型求解过程如下:\\\\


step1: 从老年健康信息训练数据集中用 Bootstrap 随机采样出 m(远小于
样本总数)个老年健康信息样本;

-28-
哈尔滨工业大学工程硕士学位论文

step2: 从所有老年健康信息训练数据集中的特征属性中随机选择出 P(小


于特征总数)个特征属性:
step2-1: 计算老年健康信息数据集 D 的经验熵;
step2-2: 遍历所有的 P 个老人健康特征属性,对于特征属性 A:
(1) 计算老年健康信息特征属性 A 对于老年健康数据集 D 的
经验条件熵H(𝐷|𝐴);
(2) 计算老年健康信息特征属性 A 的信息增益gini(𝐷, 𝐴);
(3) 选择信息增益最大的特征属性作为最佳的分裂节点;
step2-3: 重复 step2-1,及 step2-2,递归地构建一颗 CART 决策树;
step3: 重复 step1,step2 S 次,构建出 S 颗 CART 决策树;
step4: 在训练数据集上得到 S 颗 CART 决策树形成随机森林;
step5:通过投票表决结果,预测老年健康数据属于哪一类,计算随机森林
模型在老年健康测试数据集上对慢性病预测的准确率。

3.2.2 基于 XGBoost 的老年健康评估模型

XGBoost 是一种用于解决分类问题和回归问题的机器学习方法,它的每个
步骤都会产生一个弱决策树预测模型,将这些弱预测模型加权并进行累加,即
可得到最终的预测模型。梯度提升(Gradient Boosting)方法的每个步骤所生成
的弱预测模型均依据于损失函数的梯度方向。XGBoost 作为 GBDT 的改进算法,
有诸多优点,如可解释性强、可处理混合类型特征、具体伸缩不变性、有特征
组合的作用、可自然地处理缺失值、对异常点鲁棒、有特征选择作用、可扩展
性强和容易并行等。使用 XGBoost 方法构建老年健康评估模型的详细定义如下:
设老年健康信息数据集有 n 个样本{𝑥1 , 𝑥2 , … , 𝑥𝑛 },对应的真实类别标记为
{𝑦1 , 𝑦2 , … , 𝑦𝑛 }。在下面的推导中:𝑓𝑡 表示第 t 颗决策树,样本𝑥𝑖 落在第 t 颗决策
树的叶节点中,定义为:𝑓𝑡 (𝑥𝑖 ) = 𝑤𝑞(𝑥𝑖 ) ;C 为常量; 𝑦̂𝑖𝑡−1 表示前 t-1 颗决策树对
样本𝑥𝑖 的预测结果,则 XGBoost 的目标函数见式(3-8):

𝐽(𝑓𝑡 ) = ∑𝑛𝑖=1 𝐿 (𝑦𝑖 , 𝑦̂𝑖𝑡−1 + 𝑓𝑡 (𝑥𝑖 )) + Ω(𝑓𝑡 ) + C (3-8)

设𝑔𝑖 为损失函数 L 的一阶导,ℎ𝑖 为损失函数 L 的二阶导, I𝑗 为 j 号叶子节点上的


样本集合,定义式(3-9):
𝐺𝑗 ≝ ∑ 𝑔𝑖 , 𝐻𝑗 ≝ ∑ ℎ𝑖 (3-9)
𝑖∈𝐼𝑗 𝑖∈𝐼𝑗

由泰勒公式的二阶展开式,最终得到式(3-10):

-29-
哈尔滨工业大学工程硕士学位论文

1
𝐽(𝑓𝑡 ) = ∑𝑇𝑗=1 [𝐺𝑗 𝑤𝑗 + 2 (𝐻𝑗 + 𝜆)𝑤𝑗2 ] + γT + C (3-10)

对𝑤𝑗 求偏导得式(3-11):
𝜕𝐽(𝑓𝑡 ) 得 𝐺𝑗
= 0 ⇒ 𝑤𝑗∗ = − (3-11)
𝜕𝑤𝑗 𝐻𝑗 + 𝜆

代入目标函数得式(3-12):
1 𝐺𝑗2
𝐽∗ = − 2 ∑𝑇𝑗=1 𝐻 + γT (3-12)
𝑗 +𝜆

𝐺𝑗2 𝐺𝑗2
衡量了每个叶子节点对总体损失的贡献,损失越小越好,𝐻 的值越大
𝐻𝑗 +𝜆 𝑗 +𝜆

越好。因此,对一个叶子节点进行分裂,分裂前后的增益定义为式(3-13):
𝐺𝐿2 𝐺𝑅2 (𝐻𝑅 + 𝐻𝐿 )2
𝐺𝑎𝑖𝑛 = + + −γ (3-13)
𝐻𝐿 + 𝜆 𝐻𝑅 + 𝜆 𝐻𝑅 + 𝐻𝐿 + 𝜆

Gain 的值越大,分裂后 L 减小越多。


具体地,基于 XGBoost 算法的老年健康评估模型求解过程如下:
step1: 确定老年健康信息特征属性;
step2: 定义基分类器的损失函数 L,并求其一阶导与二阶导;
step3: 计算老年健康信息训练集上所有样本的𝑔𝑖 和 ℎ𝑖 ,初始值为均值;
step4:计算老年健康信息训练集上所有候选特征对应的 gain,选取 gain 最
大的进行分割,以此来递归的构造分类回归树;
step5:构造完成后,记录分类回归树在老年健康信息测试集上对慢性病预
测的准确率。

3.2.3 基于 SVM 的老年健康评估模型

支持向量机(Support Vector Machines,SVM)是一个分类模型,根据老年


健康信息的训练数据集是否线性可分情况,将其所构建模型由简到繁分为线性
可分、线性及非线性三种。支持向量机有很多优点:(1)在老年健康信息数据
集特征属性较多时,简化高维空间求解问题的复杂度,避免了维数灾难;(2)
基于小样本统计理论,在老年健康信息数据集样本数较少时,仍可获得高性能
机器学习模型;(3)最终结果由少数支持向量样本决定,算法简单且所构建模
型具有较好的鲁棒性。使用 SVM 方法构建老年健康评估模型的详细定义如下:
设老年健康信息的训练数据集A = {(𝑥1 , 𝑦1 ), (𝑥2 , 𝑦2 ), … , (𝑥n , 𝑦n )}是一个二维
的特征空间,其中 x i ∈ E,yi ∈ {+1, −1},i = {1,2,3, … , N} ;x i 为第 i 个样本实例,
若 n > 1,则 x i 为向量;yi 为 x i 的样本类别标记,即是否患有某种慢性病,当

-30-
哈尔滨工业大学工程硕士学位论文

yi =+1 时,称 x i 为正例,即不患病;当 yi=-1 时,称 x i 为负例,即患病;(x i, yi )


为样本点。SVM 的目标函数见式(3-14):
𝑛
1
min ||𝑤||2 + 𝐶 ∑ 𝜉𝑖 (3-14)
𝑤,𝑏,𝜉 2
𝑖=1
拉格朗日函数见式(3-15):

𝐿(𝑤, 𝑏, 𝜉, 𝛼, 𝜇) =
1 (3-15)
||𝑤||2 + 𝐶 ∑𝑛𝑖=1 𝜉𝑖 − ∑𝑛𝑖=1 𝛼𝑖 (𝑦𝑖 (𝑤𝑥𝑖 ) + 𝑏) − 1 + 𝜉𝑖 ) − ∑𝑛𝑖=1 𝜇𝑖 𝜉𝑖
2

对𝑤, 𝑏, 𝜉求偏导,带入 L 中得到式(3-16):


𝑛 𝑛 𝑛
1
min 𝐿(𝑤, 𝑏, 𝜉, 𝛼, 𝜇) = − ∑ ∑ 𝛼𝑖 𝛼𝑗 𝑦𝑖 𝑦𝑗 𝑥𝑖 𝑥𝑗 + ∑ 𝛼𝑖 (3-16)
𝑤,𝑏,𝜉 2
𝑖=1 𝑗=1 𝑗=1

构造并求解最优化约束问题,求得最优解𝛼 ∗ 。计算得式(3-17)和式(3-18):

𝑤 ∗ = ∑𝑛𝑖=1 𝛼𝑖∗ 𝑦𝑖 𝑥𝑖 (3-17)

max 𝑤 ∗ ⋅ 𝑥𝑖 + min 𝑤 ∗ ⋅ 𝑥𝑖
𝑖:𝑦𝑖 =−1 𝑖:𝑦𝑖 =1
𝑏∗ = (3-18)
2
求得分离超平面,见式(3-19):
𝑤 ∗𝑥 + 𝑏∗ = 0 (3-19)
求得决策函数,见式(3-20):

𝑓(𝑥) = 𝑠𝑖𝑔𝑛(𝑤 ∗ 𝑥 + 𝑏 ∗ ) (3-20)

具体地,基于 SVM 算法的老年健康评估模型求解过程如下:


step1: 确定老年健康信息特征属性;
step2: 在老年健康训练数据集上求解𝛼 ∗ , 𝑤 ∗ , 𝑏 ∗ ;
step3: 在老年健康训练数据集上求解决策函数𝑓(𝑥);
step4: 记录决策函数𝑓(𝑥)在老年健康数据测试集上对慢性病预测的准确率。

3.3 实验及分析

我们以慢性心脏病数据为例,利用平台评估老年人慢性病患病情况。数据
来源于 UCI 机器学习网站,具体网址为:http://archive.ics.uci.edu/ml/machine-
learning-databases/heart-disease/。该数据为美国某些区域关于心脏病的体检数据,
共 921 条数据,其中 299 条记录无缺失值,数据包含 age(年龄)、sex(性别)、
cp(胸痛类型)、trestbps(血压)、chol(胆固醇)、fbs(空腹血糖)、thalach
(最大心跳数)等 13 个特征属性。

-31-
哈尔滨工业大学工程硕士学位论文

3.3.1 老年慢性病数据特征处理

首先,我们对老年健康信息进行数据预处理。对于存在缺失值的心脏病数
据集,我们使用中值进行缺失值的填充。在处理完缺失值后,由于特征属性的
规格不同,无法放在一块比较,所以我们使用标准化来解决这一问题。此外,
我们尝试构造新的特征属性来提高预测准确率,具体地,使用多项式进行维度
的提升。
在完成数据预处理操作后,我们选择有意义的心脏病特征属性,通过将这
些特征属性输入机器学习算法来训练模型。慢性心脏病数据集中确诊为心脏病
的概率为数值属性,将该属性转化成二分类变量:num∈{0,1}。num≥0.5 表示
患有心脏病,num<0.5 表示未确诊为心脏病。
老人特征属性提取首先采用 Random Forest 方法计算特征属性的重要度,
以 num 属性为因变量,具体地:我们通过计算正样本经过的结点,并使用经过
结点的数目和 gini 系数等指标来确定特征属性的重要性,我们得到的归一化后
的特征重要度结果如图 3-1 所示。

图 3-1 归一化后的特征重要度

如图所示,根据权重因子的大小找出与确诊为心脏病的相关性较大的属性,
并将其定义为疾病特征属性。结果显示出 thalach(最大心跳数)特征重要度最
大,其次是 oldpeak(运动相对于休息的 ST depressio)、chol(胆固醇)、ca
(透视检查看到的血管数)、age(年龄)、fbs(空腹血糖)、trestbps(血压)、
cp(胸痛类型)、exang(运动时是否心绞痛)、slop(峰值运动 ST 段的斜率)、
sex(性别)、restecg(心电图结果)和 thal(缺陷种类)。
然后对这些特征两两做相关性分析,得到特征属性的 Spearman 相关度矩阵。
其中,颜色越浅,代表特征间的相关性越高,反之,代表特征相关性越低。特
征相关度矩阵如图 3-2 所示。

-32-
哈尔滨工业大学工程硕士学位论文

图 3-2 特征相关度矩阵

最后,我们通过赋予特征重要度与相关性不同的权重,来最终确定特征属
性。上文为了方便可视化描述,我们只选择了 14 个特征属性进行操作,在实际
的系统实现中,我们其实首先会对特征属性做多项式变换,使其维度扩展到 160
维,然后再使用上述方法选择出前 40 个最重要的特征属性,用于训练模型。

3.3.2 老年慢性病评估方法对比

常用的分类算法有 Logistic 回归、Decision Tree、Random Forest、支持向


量机、GBDT(Gradient Boosting Decision Tree)和 XGBoost,在本文中,我们
采用十折交叉验证的方法进行算法模型的训练与验证,评估了以上六种算法的
分类性能。老年健康评估算法模型构建、评估与选择的过程如图 3-3 所示。
验证数据

算法模型构建 算法评估
• 缺失值填充 • Random foreast
• 标准化 • SVC
• Accuracy
• 特征转换 • Logistic •
• ROC and AUC
• 特征筛选 • Decision tree
• 算法选择
数据预处理

训练数据 测试数据

图 3-3 老年健康评估算法模型构建、评估与选择的过程

-33-
哈尔滨工业大学工程硕士学位论文

首先,在心脏病训练数据集上对模型进行训练以确定算法模型参数,在验
证数据集上确定算法模型的最优超参数,最后在测试数据集上选择最优的算法
模型,算法的分类能力使用准确率和 AUC 值作为算法分类性能的评价指标,
他们的计算公式见式(3-21)和式(3-22):
𝑇𝑃 + 𝑇𝑁
Accuracy = (3-21)
𝑃+𝑁
𝑀 × (𝑀 + 1)
∑𝑖𝑛𝑠𝑖 ∈𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑒𝑐𝑙𝑎𝑠𝑠 𝑟𝑎𝑛𝑘𝑖𝑛𝑠𝑖 − (3-22)
AUC = 2
𝑀×𝑁
其中,AUC(Area under Curve)为 Roc 曲线下的面积,其数值介于 0.1~1 之
间。它的数值大小可以直观的评价算法的分类性能:AUC≈1.0 时是最理想的
分类算法,此时所构建的老年健康评估模型性能最佳;AUC=0.7~0.9 时,算法
的分类准确率较高;AUC≤0.5 时,所使用的算法几乎没有分类能力,即所构
建的老年健康评估模型性能最差。通常情况下,当 AUC 数值达到 0.9 以上时,
所构建的老年健康评估模型准确率很高,算法分类性能很好,符合我们的需求。
我们分析比较了 Logistic 回归、Decision Tree、Random Forest、支持向量
机、GBDT 和 XGBoost 这六种机器学习算法得到的算法模型分类准确率和 AUC
值。经过实验,得到的各算法模型的实验结果如表 3-1 和表 3-2 所示。

表 3-1 各算法模型的实验结果表(AUC 值)

机器学习算法 训练数据集 测试数据集


Logistic Regression 0.8467 0.9114
Decision Tree 1.0000 0.8829
Random Forest 1.0000 0.9116
SVM 0.8307 0.9257
GBDT 1.0000 0.8771
XGBoost 0.9394 0.8914

表 3-2 各算法模型的实验结果表(Accuracy 值)

机器学习算法 训练数据集 测试数据集


Logistic Regression 0.8494 0.9167
Decision Tree 1.0000 0.8833
Random Forest 0.9958 0.9000
SVM 0.8326 0.9333
GBDT 0.9629 0.8833
XGBoost 0.8323 0.8158

-34-
哈尔滨工业大学工程硕士学位论文

各算法模型的 ROC 和 AUC 值曲线图如图 3-4 所示。

(1) Logistic (2) Decision Tree (3) Random Forest

(4) SVC (5) Gradient Boosting (6) XGBoost


图 3-4 各分类算法模型的 ROC 和 AUC 值曲线图

从上图中,我们可以看出这六种分类算法中,最优的是随机森林和支持向
量机。为进一步验证随机森林和支持向量机的高性能,我们也对比了不同分类
算法所构建模型的准确率,其柱状图如图 3-5 所示。

图 3-5 各分类算法模型的准确率值

在实验中,我们选择 80%的数据作为训练集,20%的数据作为测试集。我
们可以注意到,图中 Logistic 和 SVM 分类模型在测试集上的准确率较高,出现
这种情况的主要原因可能是测试集和训练集的老年健康数据分布不一致,或测
试集中的样本数较少,且异常样本较少。

-35-
哈尔滨工业大学工程硕士学位论文

由于样本正例与反例的分布比较均匀,所以各分类算法模型的准确率值和
AUC 值的判别指标是一致的。此外,我们还对糖尿病、高血压等慢性病数据进
行了算法实验分析,通过对各种算法在不同疾病数据集上进行综合对比实验结
果,我们最终选择 SVM 与随机森林来实现老年慢性病评估模型。

3.3.3 模型参数研究

我们使用随机森林对心脏病数据集进行分类,首先设置一系列特征序列值。
我们设置随机森林中决策树的深度序列为:{1,2,3,4,5,6,7,8,9},随
机森林包含决策树的个数序列为:{100,300,500,700,900},随机森林随机
选择特征的个数序列为:{1,2,3,4,5,6,7,8,9,10,11,12,13},对
于参数选择,我们使用网格匹配 9 × 5 ×13 次作交叉验证,选择最优的匹配
值。部分参数对分类结果准确率的影响如表 3-3 至表 3-5 所示。
表 3-3 随机森林最大深度对分类结果的影响(Error rate 值)

Max Depth 1 2 3 4 5 6 7 8 9
train set 16.98 12.15 10.00 7.06 4.25 1.78 1.23 0.00 0.00
test set 11.80 11.75 15.00 13.27 20.00 15.00 13.17 20.00 11.70

表 3-4 随机森林决策树个数对分类结果的影响(Error rate 值)

Estimators 100 300 500 700 900


train set 3.74 4.20 3.32 3.40 3.40
test set 13.28 15.13 15.12 15.13 15.14

表 3-5 随机森林最大特征数对分类结果的影响(Error rate 值)

Max
1 2 3 4 5 6 7 8 9 10 11 12 13
Features
train set 5.16 5.31 4.58 5.00 3.01 3.56 3.80 3.80 3.15 3.12 3.40 3.37 3.10
test set 14.9 14.9 13.3 16.7 16.7 11.6 15.0 11.7 11.7 15.0 13.3 11.6 13.7

部分参数对分类结果的影响曲线图如图 3-6 所示。

(a) Max Depth (b) Estimators (c) Max Features


图 3-6 部分参数对分类结果的影响

-36-
哈尔滨工业大学工程硕士学位论文

图(a)显示了当随机森林随机采样的最大特征数为 7,决策树个数为 100


时,随机森林最大深度对分类结果的影响。图(b)显示了当随机森林随机采样
的最大特征数为 6,最大深度为 7 时,随机森林决策树个数对分类结果的影响。
图(c)显示了当随机森林最大深度为 7,决策树个数为 100 时,随机森林最大
特征数对分类结果的影响。
最终,我们设置决策树的最大深度为 7,决策树的个数为 100,随机森林中
随机选择的最大特征数为 6,对心脏病数据集进行建模。其中一颗决策树的分
类结果如图 3-7 所示。

图 3-7 决策树分类结果图

图中每个矩形包含分类特征,熵值,样本数等值,橙色代表未患病,蓝色
代表患病,颜色越深表示判定为该类的概率越大。
我们使用支持向量机构建老年健康评估模型并进行调参,调参的过程如图
3-8 所示。一般来说,对于任意一种核函数,C 值越大,软间隔越小,意味着使
用了很少的样本训练模型,容易过拟合。对于高斯核,γ值越大,分类曲线越
靠近样本数据,拟合能力越高,越容易过拟合。特别地,高斯核的γ足够大时
就是 KNN,γ足够小时,高斯核就退化成了线性核。从图中可以看出,对于我
们所使用的心脏病数据集,线性核比高斯核的分类效果要好。

-37-
哈尔滨工业大学工程硕士学位论文

图 3-8 SVM 调参过程图

3.4 本章小结

本章描述了特征工程的相关内容,并分别以 Random Forest、XGBoost、SVM


为代表从集成方法、提升方法、及其他方法三个角度对老年慢性病评估模型的
构建流程进行详细介绍。选用慢性病疾病数据集进行实验,使用了缺失值填充、
标准化、特征转换和特征选择等方法对数据进行特征处理,对比了不同算法在
慢性病疾病数据集上所构建老年健康评估模型的性能,最终选择拟合能力与泛
化能力都较好的 SVM 与 Random Forest 来实现老年健康评估模型,并研究了影
响这两种模型性能的参数。

-38-
哈尔滨工业大学工程硕士学位论文

第4章 老年健康评估模型的构建过程研究

本章将分析构建老年健康评估模型的具体工作流程,设计并抽象化算子表
达模型,利用工作流执行引擎将算子表达模型组合并顺序执行,研究工作流的
验证方法和工作流执行引擎的系统融合方法,为老年健康评估系统提供零编码
模型构建基础。最终,用户可在画布上通过拖拽可视化算子表达模型组件创建
老年健康评估模型构建的工作流实例。

4.1 模型构建的工作流搭建

在本节中,我们首先对构建老年健康评估模型的工作流进行分析,然后基
于模型构建工作流抽象化具体的算子表达模型,建立数据标准格式,使其满足
各算子表达模型间的数据传输,同时,对算子表达模型的生命周期进行描述。

4.1.1 工作流分析

模型构建的过程是一个机器学习的过程,构建老年健康评估模型的工作流
程如图 4-1 所示。
开始

导入老年健康信息

健康信息预处理

特征选择

机器学习方法选择

模型构建

健康评估模型

可视化展现

结束

图 4-1 构建老年健康评估模型工作流程图

-39-
哈尔滨工业大学工程硕士学位论文

首先整合多源老年健康数据,将集成后的健康数据作为原始数据集导入到
平台的底层文件系统中,并对健康信息进行数据预处理,将原始老年健康数据
集清洗、过滤并将老年健康数据规范化后保存。对预处理后的老年健康信息根
据专家意见,进行特征属性的选择,形成元数据集。然后选择合适的机器学习
方法配置参数,通过交叉验证构建健康评估模型,最终将构建好的老年健康评
估模型以图表或图像的形式展现。

4.1.2 抽象算子表达模型

本系统将构建老年健康评估模型工作流程的各阶段进行抽象,集成各种算
子表达模型,用户通过组合算子表达模型完成工作流的搭建。算子表达模型作
为模型构建工作流的核心部分,其划分粒度和集成度直接影响到模型构建的效
率,所以需要对算子表达模型进行设计并高度集成。为此,我们首先基于模型
构建的工作流程设计并抽象化具体的算子表达模型,使其可以构成完整的工作
流;其次,建立数据标准格式,使其满足各算子模型间的数据传输。
我们以老年心脏病数据作为原始数据集,选用随机森林作为构建老年心脏
病评估模型的机器学习方法,依据模型构建工作流,搭建老年心脏病评估模型
构建的工作流。构建老年心脏病评估模型的工作流如图 4-2 所示。
心脏病数据导入
(heart_wh)

数据预处理、元数据输出
(Datasource downloader)

特征属性定义
(Define X Y)

随机森林机器学习方法 图像可视化
(Random Forest) (CategorY Show)

交叉验证、参数调优 检验模型泛化能力
(Cross Validation) (Prediction)

csv文件可视化 图像可视化
(Prediction to csv) (CategorY Show)

图 4-2 构建老年心脏病评估模型工作流

-40-
哈尔滨工业大学工程硕士学位论文

算子主要实现两个功能:(1)集成丰富的基础数据处理算子模型,满足模
型构建工作流中数据清洗、建模等几个方面的需要;(2)抽象模型构建的逻辑
过程,保证算子模型的高度可扩展。根据构建老年心脏病评估模型工作流,我
们将算子模型分为了六大类,算子模型的具体说明如表 4-1 所示。

表 4-1 算子模型说明表

算子模型 算子模型实例 说明
数据库表算子 Heart_wh 负责从 Mysql 数据库读取源数据
元数据算子 DataSource downloader 数据预处理
输出数据到 Spark 集群中
特征选择算子 Define X Y 对元数据操作
设置数据标签、特征属性等
机器学习算子 Random Forest 根据输入的数据,建立数据挖掘模型
模型评估算子 Corss Validation 采用交叉验证对模型进行参数调优
Predict 测试集检验模型泛化能力
可视化结果算子 Prediction to csv 将预测结果可视化成 csv 文件格式
CategorY Show 将模型以图片的可视化形式展现

在具体的功能上,我们将算子表达模型进行高度抽象,使每个算子表达模
型拥有一个或多个数据输入端和输出端,并可以对数据进行处理。各算子表达
模型之间通过数据流进行交互,且相互之间具有依赖性,整个工作流程是一幅
有向无环图。除数据库表算子外,其他算子表达模型的输入数据均来源于上一
层的算子表达模型输出数据,为此,建立数据模型,使算子表达模型之间通过
数据流实现有效交互。所构建的数据模型要满足以下几点:
(1)满足海量老年健康信息的分布式存储需求;
(2)提供高效的并行式数据传输,保障传输效率;
(3)将算子表达模型之间交互所需的元数据进行良好的描述;
(4)满足 Web 界面远程操作 Spark 集群作业需求,实现灵活操作接口。

4.1.3 算子表达模型的执行

算子表达模型在执行的过程中随着任务状态的变化而变化,我们将算子模
型任务设置成功、失败、停止三个终止状态。算子的执行流程如图 4-3 所示。
当算子任务提交到 Spark 集群后,算子初始状态为就绪状态。随后对算子
进行有效性验证,若验证通过,则获取算子的 id 并执行算子,此时算子状态转
变为运行,否则算子状态转换为失败。系统为每个运行中的算子均创建监控线

-41-
哈尔滨工业大学工程硕士学位论文

执行算子
开始
(运行) 是 算子状态
执行成功?
(成功)

提交算子任务到集群
(就绪)

算子状态
停止执行?
(停止)

验证有效? 否

否 是 算子状态
获取算子id 运行完成? 结束
(失败)

图 4-3 算子执行流程图

程,以此监控算子的执行状态和用户的服务请求。若算子运行完成且执行成功,
则算子状态转换为成功,整个算子执行流程结束。在算子运行的过程中,系统
会不断监控用户是否发送服务请求,若收到停止执行任务操作请求,则将算子
状态转换为停止,结束算子的运行。若算子运行完成,但因为资源竞争、网络
延时、集群整修等原因导致算子运行失败,则算子状态转变为失败。

4.2 模型构建的工作流执行引擎

用户通过 web 交互界面将算子表达模型组合完成工作流的搭建,由工作流


执行引擎完成工作流的执行控制。工作流执行引擎接收并解析工作流的流程配
置文件和参数配置文件,并依据算子表达模型之间的执行顺序,将各算子表达
模型逐步提交到 Spark 集群中运行,监控其执行状态。主要解决三个问题:
(1)描述工作流,使工作流执行引擎与系统融合;
(2)算子组合执行,管理每个算子内部及算子间的数据;
(3)控制工作流的数据流向,避免多个用户及多种任务情况下的干扰。

4.2.1 工作流验证

工作流执行引擎在接收到关于工作流程的配置文件时,需要初步验证用户
所构建的工作流程,主要验证以下几点:
(1)确定工作流是否可以终止,检验是否存在环状的工作流程;
(2)算子表达模型的配置是否正确,如决策树设置的配置参数否有效;
(3)算子表达模型的输入数据模式是否符合标准;
(4)算子表达模型的前后顺序、依赖关系是否正确。

-42-
哈尔滨工业大学工程硕士学位论文

工作流执行引擎是系统的重要组成部分,主要控制算子表达模型间的数据
流向,完成算子表达模型的任务提交,并控制构建老年健康评估模型的整个生
命周期。工作流运行流程如图 4-4 所示。

开始

创建工作流 有待执行 有运行中


工作流停止?
否 算子? 否 算子? 否
是 是 是
工作流规范?

等待完成

创建线程池
算子停止运行 创建算子运行线程
(就绪)

执行成功?

算子等待? 是


工作流状态 工作流状态
等待唤醒 提交到线程池运行
(停止) (成功)
(挂起)

工作流状态
关闭线程池
(失败)

结束

图 4-4 工作流运行流程图

在开始时,先创建一个模型构建工作流项目,工作流执行引擎审核工作流
是否符合规范,如工作流是否可终止,算子先后顺序是否正确等。工作流作业
中的每个算子表达模型的运行均需要新建一个算子执行任务,所以创建一个线
程池,使多个算子表达模型任务可同时提交到 Spark 集群中并行执行。在创建
线程池后,工作流为就绪状态。
挂起状态用于工作流的断点运行,当算子表达模型处于等待唤醒状态时,
可运行其他算子表达模型,以充分利用计算机资源。为防止一些非瞬时性故障
所导致的工作流执行引擎永久挂起问题,采用超时机制,缩短算子等待唤醒的
时间。在工作流执行的过程中,系统监测用户是否发送服务请求以及时做出响
应,若收到停止执行工作流的操作请求,则等待算子停止运行后,将工作流状
态转换为停止,此时,关闭线程池,工作流执行引擎运行结束。在这里,通过
创建回调器来实现回调机制,从而对工作流执行过程进行控制。
工作流执行引擎可以根据算子表达模型之间的执行顺序和算子表达模型的
运行状态,分解模型构建工作流程。待完成工作流的流程配置和参数配置等文
件的解析后,创建工作流执行任务,并将任务提交到线程池运行。

-43-
哈尔滨工业大学工程硕士学位论文

4.2.2 工作流执行引擎的设计原则

工作流执行引擎主要为用户提供零编码的模型构建工作流程定义接口,并
解析工作流程定义以生成对应的工作流实例,通过本地调用接口服务以实现灵
活的任务调度。管理并实时跟踪工作流实例的运行状态,对不同的状态进行相
应的处理,实现流程控制机制。因此,工作流执行引擎的设计原则如下:
(1)易用性
用户通过 Web 图形化界面拖拽可视化算子表达模型组件和连线的方式搭
建模型构建工作流,使用工作流执行引擎来实现健康评估模型构建业务流程。
工作流执行引擎的易用性可以使用户简单、直观地定义并操作工作流程,提高
用户使用友好性和工作效率。
(2)可扩展性
当选取不同的老年健康数据集和机器学习方法时,系统会针对应用场景选
择不同的算子表达模型生成老年健康评估模型建模任务。此时,工作流执行引
擎需要高度的可扩展性将这些算子表达模型组件动态集成,以处理工作流任务。
(3)功能完整性
工作流执行引擎需要执行工作流的任务调度作业,完成算子表达模型控件
各节点间的数据流交互,管理并跟踪工作流实例的运行状态,实现模型构建工
作流的流程控制机制等。
工作流执行引擎通过多个动作节点和两个控制节点实现模型构建工作流的
运行和数据处理。其中,动作节点可以触发当前算子表达模型的数据计算处理
作业,通过实现其相关接口,可以开发并行的 ETL 算法和机器学习算法。控制
节点可以启动和停止工作流实例的运行,管理并监控工作流状态。
当工作流实例被创建后,各个算子表达模型的初始状态均为就绪状态,此
时算子表达模型已经在内存中定义。当工作流实例触发启动时,对应的算子表
达模型状态转变为运行,在算子表达模型执行成功后,算子表达模型转换为成
功状态。在算子模型执行的过程中,如果向工作流实例发起停止执行服务请求,
则算子表达模型转换为停止状态。另外,由于资源竞争、网络延时、集群整修
等原因也许会导致算子表达模型运行失败,根据失败的原因和当前的资源状态,
将算子表达模型标识为挂起或失败状态。当被标识为挂起状态时,根据任务挂
起时间的长短及当前资源状态,算子模型可以自动恢复执行或直接停止执行。
工作流实例在运行的过程中,节点会随着任务状态的变化而转换,工作流
节点的状态转换图如图 4-5 所示。

-44-
哈尔滨工业大学工程硕士学位论文

开始节点
结束节点
工作流实例创建完成

就绪

工作流实例触发启动

瞬时性错误
挂起 运行
挂起时间短、当前资源闲置

挂起时间长、
成功执行
当前资源紧张

停止 成功 失败

图 4-5 工作流节点状态转换图

需要注意的是,一个完整的工作流实例只能包含一个开始节点和一个结束
节点,当任务被触发时,对应的算子表达模型开始执行,工作流自动转到开始
节点;当任务执行结束时,无论工作流是否成功运行都将跳转到结束节点。

4.2.3 工作流执行引擎的服务架构

OSGI(Open Service Gateway Initiative)面向服务架构实现了 Java 系统完


整的、动态的模块应用开发,通过 Java 系统的类加载机制,搭建了插件加载框
架,可以完成对算子表达模型的细粒度控制,降低了算子表达模型间的耦合度。
OSGI 整体架构如图 4-6 所示。

OSGI 标准组件接口
服务层 XML

安 Bundles
Http服务器
全 生命周期层

日志
模块层

配置
Java执行环境

...
操作系统

图 4-6 OSGI 整体架构图

-45-
哈尔滨工业大学工程硕士学位论文

OSGI 框架依赖 Java 执行环境运行,由安全层、模块层、生命周期层及服


务层构成,其核心为 Bundles,提供 XML、Http 服务器、日志、配置等多种标
准组件接口及模型,用户可以通过进一步开发 Bundles 来满足特定的功能需求。
OSGI 服务框架的核心层具有如下作用:
(1)Bundles:以 jar 包的形式存在,可以通过 import、export 方式与 OSGI
容器中的其他 Bundle 共享自己的包,可以被工作流执行引擎所调用和管理。
(2)安全层:基于 Java2 安全体系,连通整个 OSGI 平台,可以管理并控
制 OSGI 框架中的 Bundle 应用。
(3)模块层:定义并解析了 Bundles 间的依赖关系,并为每个 Bundles 应
用生成一个独立的 ClassLoader,满足系统的模块化需求。
(4)生命周期层:通过一组 API 动态地对 Bundles 执行启动、停止、更新
和删除等操作,以此控制 Bundles 运行时的生命周期。
(5)服务层:定义了一个动态协作模型,使得 Bundles 应用间动态地进行
交互和通信,Bundles 应用还可以注册、发布服务并接收事件消息。
在本系统中,将工作流执行引擎集成在 OSGI 容器中,使用 Eclipse 6.5 进
行系统的开发。由于 Eclipse 本身包含 OSGI 的核心框架——Equinox,且可以
集成 Felix 来满足 OSGI 规范的基础和扩展服务,为此,只需在 Eclipse IDE 里
运行 Felix 即可。为使系统更好地支持 Web 开发,在 Spring 框架中集成 OSGI
框架,使得开发人员可以简单便捷地使用框架进行 Web 应用程序的开发。

4.2.4 工作流执行引擎的系统融合

Oozie 是一款面向分布式云计算平台的开源工作流执行引擎,可以管理并
协同调度 Hadoop 的 Map Reduce 任务及 HiveQL 脚本等。Oozie 的调度机制可
以满足工作流任务的参数配置,同时还可以触发任务作业和时间,简化了模型
构建工作流任务,提高了用户的工作效率。
本系统基于 OSGI 规范实现了工作流执行引擎,并使用 Oozie 动态地与
Spark 集群进行交互,最终实现了一个面向模型构建的工作流执行引擎,工作
流执行引擎的整体架构如图 4-7 所示。
将工作流执行引擎与 OSGI 容器进行融合,并使用 MySQL 关系型数据库
作为数据的持久化存储层,主要存储模型构建任务定义的元数据信息和工作流
的运行状态。用户在进行本地或者远程工作流的调用时,首先需要通过调用接
口传递工作流执行引擎调用请求,然后由工作流定义解析器来解析模型构建工
作流的定义,由核心调度器完成对应的调度工作,当工作流运行失败时,容错
管理器根据出现错误的原因进行相应的处理,并重新运行失败任务。

-46-
哈尔滨工业大学工程硕士学位论文

OSGI容器
本地/远程工作流执行引擎调用

调用接口

工作流定义解析器

核心调度器

元数据 容错管理器
数据库

Spark集群

HDFS Hive Pig Hbase ...

图 4-7 工作流执行引擎架构图

(1)调用接口
用户通过调用接口来进行工作流执行引擎的调用,以此传递工作流执行引
擎操作请求。为方便开发和部署 Web 应用程序,本文将 Tomcat 与 OSGI 容器
的核心框架 Equinox 进行集成。当用户发出调用工作流执行引擎的服务请求时,
Tomcat 调用 OSGI 容器中的工作流执行引擎调用接口,序列化调用方法和参数,
使其转换成固定格式的对象并存储在文件中。工作流执行引擎从文件中将这些
对象反序列化后进行解析,最终调用相应的方法处理用户的调用请求。
(2)工作流定义解析器
用户在平台的 Web 界面根据实际的业务需求进行健康评估模型构建,选择
相应的算子表达模型组建并进行连接,最终抽象为模型构建工作流实例。一个
完整的工作流实例是一个 DAG 图,包括多个动作节点和两个控制节点,本文
基于 XML 语言进行模型构建工作流实例的描述,主要描述算子表达模型节点
的配置信息和节点间的依赖关系、顺序关系等。当用户在 Web 端搭建一个完整
的模型构建工作流实例,向工作流执行引擎提交操作请求时,前端自动生成工
作流定义 XML 文件并提交给工作流执行引擎,此时,引擎将调用工作流定义
解析器读取并解析这些 XML 描述文件,将其转换为模型构建工作流实例保存
在内存中并进行相应的操作。
(3)核心调度器
工作流执行引擎服务于 Spark 集群,不执行具体的数据计算处理,只是将
计算任务提交到云计算平台中执行。作为工作流执行引擎的核心组件,核心调
度器的主要任务是管理并监控模型构建工作流实例的执行状况,并根据用户的

-47-
哈尔滨工业大学工程硕士学位论文

请求调用相应的服务,最终利用 URL 回调机制返回结果。为提高核心调度器的


高并发处理能力,本文使用线程池技术尽可能地减少资源的开销。在启动工作
流执行引擎时,初始化核心调度器,包括队列的数量、一次性并发处理请求的
数量、线程池处理任务的线程数等。
(4)容错管理器
为保证工作流执行引擎的高可靠性和高可用性,系统搭建一个容错管理器,
在前驱节点成功运行而当前节点运行失败时,工作流执行引擎可以重新提交当
前节点的计算任务并执行。例如,当模型构建工作流程的某一节点出现网络连
接失败等瞬时错误时,当前节点可以自动恢复;在遇到系统宕机等非瞬时错误
时,系统可以自动保存当前任务作业的状态到数据库中并挂起工作流任务,待
系统恢复正常后再自动重启失败的工作流。
本系统使用 XML 语言来描述工作流的定义,用 JavaScript 语言在前端构
建 XML 文件,对工作流各阶段的参数配置、运算结果数据、依赖关系等进行
管理。用 Oozie 来远程调度 Spark 集群的 Hive QL 脚本、Pig 作业等,以此完成
计算任务。当任务完成时,采用 URL 回调机制提醒任务的完成,此时,Oozie
调度后继节点的计算任务。

4.3 本章小结

本章分析了构建老年健康评估模型的工作流运行具体流程,设计并抽象化
算子表达模型,详细描述了算子表达模型的生命周期。在抽象化算子表达模型
的基础上,对搭建的模型构建工作流进行验证,根据工作流执行引擎的设计原
则,设计工作流执行引擎的服务架构。研究了工作流执行引擎的系统融合方法,
提出基于 XML 语言描述算子模型的配置信息和工作流定义,并将工作流执行
引擎 Oozie 集成于 OSGI 容器的系统融合方案。

-48-
哈尔滨工业大学工程硕士学位论文

第5章 老年健康评估系统设计

通过对老年健康评估系统需求及关键的问题进行研究分析,本章将设计系
统的总体结构及软件架构,并对系统的整体功能结构进行设计,对模型构建模
块和老年健康评估模块进行详细设计,最后设计系统的数据库。

5.1 系统总体结构设计

通过分析老年健康评估系统的功能性需求和对关键技术的研究,设计了系
统的总体结构。老年健康评估系统总体结构如图 5-1 所示。

老年健康评估系统
健康评估规范
老年人健康档案管理 健康评估模型构建
老年人病历档案 养老机构老年健康
老年人健康状况评估
评估规范
老年人体检档案 生活 社会 生活 DB11/T 305-2014
生理 精神
行为 适应 行为
健康 健康
能力 能力 习惯
老年人健康史档案 评估 评估
评估 评估 评估 信息支撑系统

技术支撑 健康档案管理系统

健康评估体系 软件技术 系统集成 实施应用 医院HIS、CIS系统


老年健康评估 云计算技术 工作流执行 健康评估模型
内容分析 引擎集成 构建 集群云平台
工作流技术
老年健康评估 健康档案管理 评估老年健康
体系构建 WebService 系统集成 状况

图 5-1 老年健康评估系统总体架构

老年健康评估系统的总体结构主要由三个部分组成:
(1)老年健康评估系统:根据系统功能性需求,将老年健康评估系统划分
为老人健康档案管理、健康评估模型构建、老人健康状况评估三个模块。老人
健康档案管理模块负责对老人的病历、体检、健康史档案进行维护,为评估老
人健康状态提供数据支撑;健康评估模型构建模块负责为医护人员提供零编码
的模型构建服务,使医护人员根据模型的预测结果,评估老年人可能患慢性病
的种类;老人健康状况评估模块负责从生理健康、精神健康、生活行为能力、
社会适应能力、生活行为习惯这五个方面实现对老人健康状况的综合评估。

-49-
哈尔滨工业大学工程硕士学位论文

(2)技术支撑:从健康评估体系、软件技术、系统集成、实施应用等方面
对系统所需的支撑技术进行阐述。通过分析老年健康评估的内容,构建老年健
康评估体系;体系构建完成后,利用云计算技术和工作流技术实现对老年健康
评估模型的构建,采用 WebService 技术实现对外交互,完成工作流执行引擎的
集成和健康档案管理系统的集成;通过一系列的技术支撑,最终实现老年健康
评估模型的构建和老年人健康状况的评估。
(3)对外交互:依据《养老机构老年健康评估规范》对老年健康评估体系
进行完善。老年健康评估和模型构建的过程需要老年健康信息和云计算环境等
一系列支持,为此,系统需要与医院 HIS 和 CIS 系统、健康档案管理系统、集
群云平台等外部信息系统进行交互,以获得完整的业务流程。
老年健康评估系统整体采用 RESTful webservices 框架,主要划分为数据采
集层、业务处理层、应用层、表示层和用户层。系统软件架构如图 5-2 所示。

外部交互
用户层 老年健康评估系统



表示层 健康档案维护 健康评估模型构建 健康状况评估 台

健康信息维护 健康评估测验 模型构建 健康评估 健


应用层 康

基本信息维护 集群管理 用户管理 菜单管理 模型管理 案



构建老年健康评估体系 管理老人健康档案 统
业务处理层
构建老年健康评估模型 评估老人健康状况
HIS CIS

数据采集层 病历档案数据 体检档案数据 健康史档案数据 健康评估测试数据 系


图 5-2 老年健康评估系统软件架构

系统从 HIS、CIS 系统进行数据采集,在基于 Spark 集群的云平台中进行业


务处理,最终实现 HIAP(The Elderly Healthcare Information Assessment Platform)
系统进行老年健康评估模型的构建和应用。老年健康评估系统各模块分析如下:
(1)数据采集层:数据采集层主要负责对老年健康信息进行数据的导入和
导出,包括老年人病历档案数据、老年人体检档案数据、老年人健康史档案数
据和老人健康评估测试数据,此处部分数据通过与外部系统进行交互来获取。

-50-
哈尔滨工业大学工程硕士学位论文

(2)业务处理层:业务处理层主要包括构建老年健康评估体系、管理老人
健康档案、构建老年健康评估模型、评估老人健康状况这四大业务。在基于 Spark
集群的云平台中进行业务处理,可以满足海量数据的需求,提高工作效率。
(3)应用层:应用层主要包含系统的各个功能模块,包括健康信息维护模
块、健康评估测验模块、模型构建模块、健康评估模块、基本信息维护模块、
集群管理模块、用户管理模块、菜单管理模块和模型管理模块等。
(4)表示层:表示层主要有三部分,对老人健康档案进行维护、对老年健
康评估模型进行构建、对老人健康状况进行评估。此处维护老人健康档案业务
主要由外部的健康档案管理系统来完成。
(5)用户层:老年健康状况的评估包括对老年健康信息进行维护、构建老
年健康评估模型、对各项目进行健康评估测试、生成健康评估报告等阶段,老
年健康评估系统将这一系列阶段连接起来,形成完整的老年健康评估业务。
(6)外部交互:与医院 HIS 和 CIS 系统、健康档案管理系统及 Spark 集群
云平台等进行交互,通过 WebService 接口获取老年健康信息和云服务。

5.2 系统功能模块设计

通过分析老年健康评估系统的功能性需求,本节将基于系统的总体结构对
系统的整体功能模块进行设计,并详细设计系统主要的两个功能模块,即构建
老年健康评估模型功能模块和评估老年人健康状况功能模块。

5.2.1 系统整体功能结构设计

老年健康评估系统主要包括老人健康信息维护、构建老年健康评估模型、
评估老年人健康状况这三大功能,系统整体功能结构如图 5-3 所示。

老年健康评估系统

共享门户网站 后台业务维护 模型构建 评估健康状况

评 生 社 生
注 个 健 健 健 评 算 可 生 精 活 会 活
人 康 康 康 估 修 用 集 菜 子 项 任 模 估 理 神 行 适 行
册 信 信 档 评 结 模 视 测 健 健
和 改 户 群 单 目 务 型 化 验 为 应 为
息 息 案 估 果 密 维 维 维 块 管 管 管 康 康 能 能 习
登 码 护 护 护 理 理 理 统 表 力 力 惯
陆 维 维 查 测 查 管 计 维 评 评
护 护 看 验 看 理 估 估 评 评 评

估 估 估

图 5-3 老年健康评估系统整体功能模块图

-51-
哈尔滨工业大学工程硕士学位论文

系统整体功能分为共享门户网站、后台业务维护、模型构建、评估健康状
况这四大模块。其中,评估健康状况模块对应老年健康状况评估服务,模型构
建模块对应构建健康评估模型服务。
(1)共享门户网站模块:为用户提供信息访问服务、信息维护服务和健康
评估测试服务,主要包括注册和登陆、个人信息维护、健康信息维护、健康档
案查看、健康评估测验、评估结果查看、修改密码等功能模块。用户可在前台
门户网站完成各项健康评估测试,并查看最终的健康评估结果。系统通过该模
块进行信息的共享,通过对用户的角色和权限进行管理,实现信息的访问控制。
(2)后台业务维护模块:主要包括用户维护、集群维护和菜单维护等功能。
用户维护功能模块主要对用户的基本信息进行管理维护,包括对用户的用户名、
密码、个人基本信息、角色和权限等信息的管理,通过对不同的用户分配不同
的角色和权限,实现老年健康评估系统的访问控制机制。集群管理功能模块是
由管理员通过 Web 界面对 Spark 集群的云平台进行管理,包括对集群的添加、
停止、启动、重启、删除、编辑和查看等操作和对集群文件的新建、上传和删
除操作,以此满足海量数据的服务需求,提高系统工作效率。菜单维护功能模
块主要实现菜单的分级管理,为系统不同的用户配置不同的菜单选项,还支持
对菜单的添加、修改和删除等操作。
(3)模型构建模块:为医护人员提供零编码的老年健康评估模型构建服务,
使医护人员可以构建老年健康评估模型,并应用构建的老年健康评估模型进行
老年慢性病患病情况的分析,主要包括算子模块管理、项目管理、任务管理、
模型管理、可视化统计等功能。算子模块管理主要负责对工作流搭建所需算子
表达模型进行管理,系统管理员可以将已通过测试的算子表达模型程序 jar 包
进行上传,提供给用户使用,同时也可对已存在的算子模型模块进行删除或编
辑操作。在项目管理功能模块可以新建一个项目,此时可以在画布上根据需求
拖拽算子表达模型组件并将其进行组合,构建一个完整的工作流实例。调用工
作流执行引擎运行工作流实例,同时自动新建相应的任务,并对工作流运行过
程中的任务进行管理,查看任务执行情况。模型管理可以对用户所构建的老年
健康评估模型进行管理,对其进行发布或删除等操作。提供可视化统计功能模
块服务,该部分负责向用户展示任务执行状态、任务耗时、模块引用次数及模
型应用次数等,实现用户对任务及模型的可视化统计。
(4)评估健康状况模块:主要包括健康评估测验表维护、生理健康评估、
精神健康评估、生活行为能力评估、社会适应能力评估和生活行为习惯评估功
能模块。医护人员对各项健康评估测验表进行审核、上传、编辑和删除等操作,
健康评估测验表通过审核并上传后,由用户在前台门户网站对各项健康评估测

-52-
哈尔滨工业大学工程硕士学位论文

验表进行填写,再由医护人员根据评估测验表的填写结果对老年人的各项健康
状况进行评估,最终对评估结果进行汇总,给出个性化的健康指导意见和建议。

5.2.2 健康评估模型构建模块设计

健康评估模型构建模块是老年健康评估系统的核心模块之一,主要提供算
子表达模型管理和工作流管理等功能。本系统提供功能丰富的各类算子表达模
型:数据源算子可以将从后台导入 hive 数据仓库中的数据作为模型构建工作流
程的数据源;ETL 算子可以定义不同的数据抽取方式,筛选有意义的特征属性
为模型构建提供可用性高的元数据;机器学习算子主要集成了随机森林和支持
向量机两种适用于健康评估的机器学习算法;可视化算子提供多种可视化方法,
将任务、模型等相关信息直观地展示给用户。算子模块维护类图如图 5-4 所示。

<<Interface>>
Operator DataSourceIOput
-initialization()
-readCSV()
-run()
-readHive()
-stop()
-writeCSV()
-cleanUp()
-saveHive()
-···
-···

Preprocess
HiveOperator
-setType()
-BeanFactory -normalize()
-check* -replace()
-get* -filter()
-···

Visualization EvaluationModel MLModeling

-predictionToCSV() -accuracy() -randomForest()


-CategorShow() -ROCValue() -SVM()

图 5-4 算子模块维护类图

Operator 类为算子表达模型的顶层接口,满足算子模型的初始化、执行、
终止及清理等功能需求。由于使用 Hive 作为数据模型,故 Hive Operator 类提
供对 Hive 进行检查和操作的方法,所有的算子模型继承于 Hive Operator 类。
Preprocess 类主要进行老年健康数据的预处理操作,包括对数据的归一化、格
式转换、替换及过滤等。MLModeling 类主要进行老年健康评估模型的建模操作,
集成了随机森林和支持向量机这两种机器学习算法。Evaluation Model 类主要进
行老年健康评估模型的评估操作,将构建的老年健康评估模型的准确率和 AUC

-53-
哈尔滨工业大学工程硕士学位论文

值作为模型评估标准。Visualization 类主要进行老年健康评估模型的可视化展
现操作。predictionToCSV()方法主要以 CSV 格式的文件方式展现老年健康数据
及其老年健康评估模型。CategorShow()方法主要以 png 格式的图形展现所构建
的老年健康评估模型。
模型构建模块的另一个核心功能是工作流管理,该功能通过将不同的算子
表达模型进行组合,搭建出一个完整的模型构建工作流程。工作流创建后,系
统会对该工作流程的完整性和合理性进行审核:若审核未通过,则系统会以弹
窗的形式给出工作流程所存在的问题及修改意见;若验证通过,则运行工作流
程。工作流每次运行都会创建一个任务,任务将完整记录该工作流的执行情况,
当任务执行成功后,所构建的健康评估模型将被保存,使医护人员可以利用该
模型评估老年人慢性病的患病情况。工作流管理模块类图如图 5-5 所示。

EHAOperator
EHATasks
- oid:String
- oname:String EHAProject - tid:String
- ocontent:String - tname:String
- pid:String
- oinput:[String] - tcontent:Date
- pname:String
- ooutput:[String] - tbeginDate:Date
- pcreateTime:Date
- ocreateTime:Date - tendDate:Date
- tid:list<EHAOperator>
- oupstream:String - texception:Date
- pStartDate:Date
- odownstream:String - tstate:String
- pEndDate:Date
- oisend:boolean - tStart()
- checkState()
- getUpStream(String oid) - tCheckState()
- outPutData() - tEnd()
- checkState()

EHAModel
<<Interface>>
- mid:String
EAHVisualization - mname:String
- mcontent:String
- displayBar(String content)
- mdescribe:String
- displayPie(String content)
- tid:String
- displayPolyline(String content)
- modeCheck()
- modeExtend()

图 5-5 工作流管理模块类图

EHAOperator 实体类对应数据库的算子模块表,负责管理算子 ID、算子名


称、算子功能等属性,创建算子时根据所指定的算子的上下游接口信息,系统
会对算子自动做一次测试以确保该算子能够正常使用。EHAProject 实体类对应
数据库的项目信息表,即模型构建工作流信息表,每个项目由若干个算子表达
模型组成,不同的算子组合方法和执行顺序丰富了模型构建工作流的类别。每
个工作流运行后会创建一个任务,EHATasks 实体类对应数据库的任务信息表,
包含工作流的详细参数、算子输入输出的参数及算子的详细执行顺序及算子状
态等。每个工作流任务执行成功后均会生成一个健康评估模型,EHAModel 实

-54-
哈尔滨工业大学工程硕士学位论文

体类对应数据库的健康评估模型表,该类主要完成对健康评估模型的管理,方
便医护人员利用该模型评估老年人慢性病的患病情况。此外,EHAOperator 、
EHATasks 和 EHAModel 实体类均实现了可视化的接口,EAHVisualization 接口
类实现了对任务执行情况、模块引用情况及模型应用情况的可视化监控。
创建模型构建工作流时序图如图 5-6 所示。

user:User :UserLogin :EHAProjecDAO :BaseDAO :EHATasksDAO :EHAOperatorDAO

login()
success
createProject()
findProject()
detal info

buildClassifie()
taskIds

requestTask()
createOperateor()
operatorIds

checkProject()
save(project)
save sucess requestTask()
createTask()
taskId
saveDefineClass()
save sucess

图 5-6 创建模型构建工作流时序图

医护人员登录系统后,由 EHAProjectDAO 类调用 BaseDAO 类的 findProject()


方法查询系统是否已经创建了可用的模型构建工作流项目,医护人员可以通过
返回的结果查看工作流的详细信息,确定其是否满足需求,若不满足则自定义
创建模型构建工作流项目。医护人员将所需可视化算子表达控件拖拽到画布中,
然后将算子组合并连接起来搭建成模型构建工作流程。模型构建工作流所需的
算子信息和算子执行顺序将保存在 EHAProject 表中,随后由医护人员填写项目
名程、项目内容等描述信息,EHAProjectDAO 调用 checkProject()检查项目工作
流是否满足运行条件,若不满足则将异常信息和修改意见以弹窗的形式反馈给
医护人员,若满足运行条件,则通过调用 BaseDAO 的 save()方法将模型构建项
目保存在数据库中,完成模型构建工作流项目创建。
模型构建工作流搭建完成后,在执行工作流前,系统会对待执行工作流进
行有效性验证。工作流有效性验证类图如图 5-7 所示。

-55-
哈尔滨工业大学工程硕士学位论文

Examination ExaminationLoop

+examine() +examine()
+loop()

ExaminationNormal Decorator

- Examination
+examine() +examine()

图 5-7 工作流有效性验证类图

本验证可以根据具体的业务情况动态增加验证规则。调用 ExaminationLoop
类的 examine()方法验证工作流的完整性,再调用 loop()方法验证模型构建工作
流的有效性,如果工作流审核有异常,则根据实际情况给出修改意见。工作流
有效性验证时序图如图 5-8 所示。

ExaminationDAO ExaminationLoop ExaminationNormal XMLModel

examineDAO()
examine()

result

loop()
result

图 5-8 工作流有效性验证时序图

5.2.3 老年健康评估模块设计

老年健康评估模块通过由医护人员完成评估测验表维护,从生理健康评估、
精神健康评估、生活行为能力评估、社会适应能力评估、生活行为习惯评估五
个维度的评测完成对老年健康状况的评估。
针对不同的特定类型的老年人及各项评估指标可以个性化健康评估测验表,
医护人员可自定义上传评估方法表或根据具体需求调整评估项。本系统预设了
老年健康评估领域内常用的评估指标并通过五个维度实现评估方法的层级管理,
系统将这些评估指标按照分级目录的形式展示在页面中,医护人员上传各个评

-56-
哈尔滨工业大学工程硕士学位论文

估指标所需的评估方法表或评估项。老年健康评估模块为老年人提供了生理健
康、精神健康等五个维度的健康评估指标,每项健康评估指标都有评估等级。
通过各项健康评估指标的评估结果所处等级,决定老人的健康状况是否良好,
评估的结果辅助医护人员发现老人潜在的疾病危险因素,从而快速采取干预和
治疗措施。老年健康评估模块类图如图 5-9 所示。

EHAPhysical

- pid:String
- pchronic:String
- pvision:String
- phearing:[String]
- pnutriture:[String]
- pbodypain:Int
- askMan()
- eyeTest()
- voiceTest()
EHAActive - mnaSf()
- nrs()
- aid:String
- adaliylife:String
- agait:String
- apoise:String EHAResult
<<Interface>> - getBarthel(String id) EHAadaptation - pid:String
- getTinetti() - mid:String
EAHBaseTestMethod - aadaid:String
- aid:String
- asocietysupport:String
- baseBodyTest(String content) - aadaid:String
- ahospitalization:Int
- baseActivityTest(String content) - hid:String
EHAMental - getHospitalizationCost()
- baseSocialTest(String content) - save()
- sSRS()
- mid:String - checkState()
- mcognizance:String - getAllResults()
- msleepquality:String
- mdepressed:String
- manxiety:String
- cDTorMMSE(String id)
EHAHabit
- sleepTest()
- gDS() - hid:String
- zungSAS() - hpexamination:String
- hsmoking:String
- hdrink:String
- hsup:String
- ispexamination()
- issmoking()
- isdrink()
- ishsup()

图 5-9 老年健康评估模块类图

EHAPhysical 实体类对应生理健康数据库表,管理包括慢性病患病情况、
视力、听力、营养状况等健康属性,生理健康主要通过调用 askMan()方法收集
评估对象的主观感受及客观存在的与健康相关的信息,eyeTest()和 voiceTest()
可以通过对接外部系统直接获取视力测试和听力测试结果。EHAMental 实体类
对应精神健康数据库表,维护老年人认知能力和睡眠质量等相关属性,通过
CDTroMMSE()方法对待评估老年人完成认知能力相关测试,并记录在数据库中。
EHAActive 实体类维护日常生活能力相关属性,通过 getBarthel()方法可以获得
待评估老人的日常生活能力。EHAadaptation 实体类维护社会支持等相关属性,
通过 sSRS()方法可以获得老年人社会支持等评定情况。EHAHabit 实体类对应生
活 行 为 习 惯 数 据 库 表 , 该 表 会 记 录 老 年 人 各 个 方 面 的 生 活 行 为 习 惯 , 通过
ispexamination()方法可以获取老年人定期体检情况。EHAResult 实体类将汇总
生理健康、精神健康、生活行为能力、社会适应能力和生活行为习惯这五个维
度的数据,从而综合评估老年人健康状况。

-57-
哈尔滨工业大学工程硕士学位论文

老年健康评估时序图如图 5-10 所示。

EHAResult EHAMental EHAActive EHAadaptation EHAHabit EAHBaseTest Interface:EAHBase


user:User
DAO DAO DAO DAO DAO MethodDAO TestMethod

getHealthAssessment()
baseActivityTest() baseActivityTest()
<<return>>
activityInfo

sleepTest()
sleepTest()
<<return>>
sleepInfo

getBarthel()
getBarthel()
<<return>>
barthelInfo
getHospitalizationCost() getHospitalizationCost()
hospitalizationCostInfo <<return>>

ispexamination() ispexamination()
pexaminationInfo <<return>>
healthAssessmentInfo

图 5-10 老年健康评估时序图

医护人员登录系统后,通过调用 EHAResultDAO 的 getHealthAssessment()


方法获取老年健康评估信息,EHAResultDAO 收到请求后,异步向 EHAMental、
EHAActive、EHAadaptation、EHAHabit 和 EAHBaseTestMethod 类请求健康评估
所需的信息,获取所需信息汇总为完整的健康评估结果,将 healthAssessmentInfo
消息返回给医护人员。

5.3 数据库设计

根据老年健康评估系统的数据模型,设计系统的数据库。
(1)对模型构建模块的数据库表进行设计,如表 5-1 所示。

表 5-1 模型构建模块数据库表

表名 描述
EHADatasource 数据源表
EHAModel 模型表
EHAOperator 算子模块表
EHAProject 项目信息表
EHATasks 任务表

数据源表中存储构建老年健康评估模型所需的老年健康信息,该表主要作
为模型构建和模型验证的数据源;算子模块表存储算子的 ID、算子名称和算子
功能描述等数据,同时该表也维护着算子的上下游接口信息,即算子的输入和

-58-
哈尔滨工业大学工程硕士学位论文

输出;项目信息表存储组成工作流的算子及算子的执行顺序,通过维护该表可
以创建完整的工作流;任务表存储工作流每次运行的详细参数及执行情况,通
过维护该表可以运行多个任务检验工作流的准确性;模型表存储成功运行工作
流任务后所生成的老年健康评估模型,通过维护该表可以实现对模型的管理,
并方便统计模型的应用情况。模型构建模块数据库表之间的关系如图 5-11 所示。

EHAProject

EHAOperator PK pid:varchar

PK oid:varchar oids:text
EHATasks
oname:varchar pname:varchar
PK tid:varchar
ocontent:varchar pcreateTime:Date
tname:varchar
oinput:text pStartDate:Date
tcontent:Date
ooutput:text pEndDate:Date
pid:varchar
ocreateTime:Date
EHAModel tbeginDate:Date
oupstream:varchar
PK
tendDate:Date
mid:varchar
odownstream:varchar
texception:Date
tid:varchar
oisend:boolean
tstate:varchar
mname:varchar

mcontent:varchar

mdescribe:varchar

图 5-11 模型构建模块数据库表关系图

(2)设计老年健康评估模块的数据库表,如表 5-2 所示。

表 5-2 老年健康评估模块数据库表

表名 描述
EHAPhysical 生理健康评估表
EHAMental 精神健康评估表
EHAActive 生活行为能力评估表
EHAadaptation 社会适应能力评估表
EHAHabit 生活行为习惯评估表
EHAResult 综合评估结果表

生理健康评估表中存储老年人的慢性病患病情况、视力、听力等生理健康
指标,通过对该表的维护可以获取老年人生理健康的相关信息;精神健康评估
表存储老年人的认知能力、睡眠质量和抑郁情况等精神健康指标,通过维护该
表可以评估老年人精神健康状况;生活行为能力评估表中存储老年人 Barthel

-59-
哈尔滨工业大学工程硕士学位论文

指数和 Tinetti 量表等相关指标,通过这些指标能够准确评估老年人的生活行为


能力;社会适应能力评估表存储着社会支持相关评估指标,本表数据均使用肖
水源社会支持评定量表完对老年人社会适应能力评估;生活行为习惯评估表通
过对老年人定期体检、抽烟、喝酒和饮食情况等指标的评估,获取老年人生活
行为习惯的评估结果。通过对五大维度表的评估结果进行汇总,生成最终的老
年健康评估报告。老年健康评估模块数据库表之间的关系如图 5-12 所示。

EHAResult
EHAadaptation EHAActive
PK rid:varchar
PK aadaid:varchar PK aid:varchar
mid:varchar
asocietysupport:varchar adaliylife:varchar
aid:varchar
ahospitalization:Int agait:varchar
aadaid:varchar
apoise:varchar
hid:varchar

EHAPhysical pid:varchar

PK pid:varchar EHAHabit

pchronic:varchar EHAMental PK hid:varchar

pvision:varchar PK mid:varchar hpexamination:varchar

phearing:varchar mcognizance:varchar hsmoking:varchar

pnutriture:varchar msleepquality:varchar hdrink:varchar

pbodypain:Int mdepressed:varchar hsup:varchar

manxiety:varchar

图 5-12 老年健康评估模块数据库表关系图

5.4 本章小结

本章设计了老年健康评估系统的总体结构和软件架构。分析了系统整体功
能模块,详细设计了模型构建模块和老年健康评估模块的类图和时序图,并根
据老年健康评估系统的需求进行了系统数据库设计。

-60-
哈尔滨工业大学工程硕士学位论文

第6章 老年健康评估系统实现与测试

本章对老年健康评估系统进行实现和测试。展示了实现界面、部分代码和
业务处理流程,并对构建老年健康评估模型、评估老人健康状况的主要功能模
块的实现进行阐述。最后,对老年健康评估系统进行单元测试与系统测试。

6.1 构建老年健康评估模型功能实现

本节将通过展示功能模块的实现界面及其部分主要代码,阐述构建老年健
康评估模型功能模块的实现,该模块包括算子模块管理、项目管理、任务管理、
模型管理和可视化统计五个功能。

6.1.1 算子模块管理功能实现

算子模块管理的功能模块主要维护构建老年健康评估模型所需要的算子表
达模型,包括算子表达模型的新建、删除和对算子模块的名称、描述、类型、
状态等基本信息的编辑。其界面如图 6-1 所示。

图 6-1 算子模块管理界面

算子表达模型有基本算子表达模型(Basic)、数据预处理算子表达模型
(ETL)、机器学习算子表达模型(Machine Learning)、可视化结果算子表达
模型(Show)四种类型,包含完成、已删除两种状态。

-61-
哈尔滨工业大学工程硕士学位论文

6.1.2 构建工作流实例功能实现

基于构建老年健康评估模型的工作流分析和算子表达模型功能模块的设计,
实现构建工作流实例功能。当需要创建一个工作流实例时,新建一个项目,在
项目编辑界面中,通过在画布上拖拽可视化算子模型完成工作流实例的构建。
项目管理功能界面如图 6-2 所示。

图 6-2 项目管理界面

所创建的项目有创建中、完成、异常、已删除四种状态。创建中表示只保
存了所构建的工作流程,未运行工作流实例;完成表示运行所构建的工作流程,
且最终工作流成功运行;异常表示工作流实例在运行的过程中出现错误,导致
不能正常运行;已删除表示该项目已被删除,所构建的模型也被级联删除。单
击新建项目后,可进行工作流实例的构建,工作流实例构建页面如图 6-3 所示。

图 6-3 工作流实例构建页面

-62-
哈尔滨工业大学工程硕士学位论文

在工作流实例构建页面,可在画布上通过拖拽左侧页面的算子表达模型搭
建老年健康评估模型构建的工作流实例,并通过右侧页面进行参数配置。完成
工作流实例的构建后,点击运行会自动创建一个工作流任务,对工作流进行审
核,通过审核后系统自动运行工作流实例;若暂时不需要运行工作流实例,可
单击保存,下次可继续该工作流实例的构建。工作流审核的部分代码如下:
工作流实例构建模块的处理流程如图 6-4 所示。

开始 参数配置 新建任务

新建项目
工作流
否 审核通过?
拖拽算子控件 是 否
任务完成?

构建工作流
老年健康评估模型

否 是 运行工作流 结束
构建完成?

图 6-4 工作流实例构建模块处理流程

6.1.3 任务管理功能实现

创建老年健康评估模型构建的工作流实例,并点击运行后,系统会自动新
建一个工作流任务,用户可对模型构建工作流任务进行管理。工作流任务管理
界面如图 6-5 所示。

图 6-5 任务管理界面

-63-
哈尔滨工业大学工程硕士学位论文

在任务管理界面,可以查看任务的名称、描述、创建人、任务创建时间、
任务运行结束时间、任务耗时、任务状态信息,并对任务进行删除操作。单击
任务,可详细查看任务的运行状态。任务查看界面如图 6-6 所示。

图 6-6 任务查看界面

根据模块颜色,可查看算子表达模型的执行情况。绿色代表完成,黄色代
表等待,蓝色代表运行,红色代表异常。算子模型状态转换的主要代码如下:

6.1.4 模型管理功能实现

完成工作流实例构建并成功运行后,需要对所构建的老年健康评估模型进
行管理,模型管理界面如图 6-7 所示。

图 6-7 模型管理界面

该界面可查看健康评估模型的名称、发布者、发布时间、状态和应用次数。
并可对健康评估模型进行发布和删除操作。

-64-
哈尔滨工业大学工程硕士学位论文

6.1.5 可视化统计功能实现

管理员通过可视化界面查看任务状态、任务耗时、模块引用次数、模型应
用次数的统计信息,实时了解集群的运行状况。可视化统计界面如图 6-8 所示。

图 6-8 可视化统计界面

6.2 评估老年人健康状况功能实现

基于老年健康评估体系和老年健康评估模型的构建,实现评估老年人健康
状况功能。医护人员对健康评估测验表进行管理,完成健康评估测验表的新建、
审核、编辑和删除操作,其界面如图 6-9 所示。

图 6-9 健康评估测验表管理界面

老人在前台门户网站进行健康评估测验,完成老年健康评估测验表的填写。
老年健康评估测验界面如图 6-10 所示。

-65-
哈尔滨工业大学工程硕士学位论文

图 6-10 老年健康评估测验界面

当老人完成健康评估测验表的填写后,由医护人员对老年人的各项健康状
况进行评估,最终生成完整的老年健康评估报告。
老年健康评估报告内容包含老年人的基本信息及生理健康、精神健康、生
活行为能力、社会适应能力、生活行为习惯这五个维度的健康状况评测结果,
并最终给出综合的评估结果。老年健康评估报告界面如图 6-11 和图 6-12 所示。

图 6-11 老年健康评估报告界面(1)

-66-
哈尔滨工业大学工程硕士学位论文

图 6-12 老年健康评估报告界面(2)

6.3 老年健康评估系统测试

软件测试是检验老年健康评估系统是否满足预定目标需求的过程。本节对
老年健康评估系统分别进行单元测试和系统测试,通过白盒测试和黑盒测试两
种方式进行软件测试,设计并实现测试用例。老年健康评估系统测试环境的搭
建如表 6-1 所示。

表 6-1 系统测试环境

项目 内容
64-bit Windows10,MySQL5.5
Jre7,jdk1.7.0,apache-tomcat-7,Eclipse Java EE IDE for Web
系统运行软件环境
Developers
Chrome 浏览器,IE 浏览器,Edge 浏览器,火狐浏览器
系统运行硬件环境 Intel Core i7-7500U @2.70GHz,可用 RAM 7.68GB
网络环境 百兆带宽,校园网
数据真实性 老年健康数据来自威海布谷夼社区和经区天弘社区老年人日
间照料中心
大数据平台 使用 docker 创建 spark 单节点环境、hadoop 单节点环境

6.3.1 单元测试

单元测试采用白盒测试对系统的各个功能模块的实现代码进行测试,通过
白盒测试可以验证每个功能模块的代码是否按照设计逻辑实现功能。本节采用

-67-
哈尔滨工业大学工程硕士学位论文

Eclipse 作为系统的集成开发环境,使用 JUnit 单元测试框架进行测试,从而方


便快捷地完成对代码的自动化测试。
本节以老年健康评估模块的 EHAPhysicalDAO 类为例来进行测试用例的设
计,以此来介绍单元测试方法。将该测试类命名为 EHAPhysicalDAOTest,由 Junit
为类中的每个方法均新建一个空的测试用例,为区分测试方法,用@Test 标注
每个测试用例。针对被测试方法的输入参数,从正确输入和异常输入这两个方
面来进行测试,检测实际的输出结果是否与预期输出结果一致。具体的测试用
例如表 6-2 所示。

表 6-2 EHAPhysicalDAOTest 测试用例

被测试方法 输入参数 预期输出 实际输出 结果

testaskMan () 无 返回健康信息 显示健康信息 正确

testeyeTest() 无 返回视力测试情况 显示视力测试情况 正确

testSaveInfo info=null 保存失败 提示保存失败 正确


(List<String> info)
info!=null 保存成功 提示保存成功 正确

testDeleteInfo pid 在表中存在 删除成功 提示删除成功 正确


(String pid)
pid 在表中不存在 删除失败 提示删除失败 正确

testQueryAllAssesss() 无 返回所有评估结果 显示所有评估结果 正确

testQueryAllAssessBy uid 在表中存在 返回某人的评估结果 显示某人的评估结果 正确


ID(String uid)
uid 在表中不存在 未查询到此人的评估结果 提示没有此人评估结果 正确

由系统测试结果可得,老年健康评估模块的测试结果与预期要求一致。对
于系统的其它功能模块,采用同样的方法进行单元测试,结果表明老年健康评
估系统的各功能模块的测试结果与预期要求一致。

6.3.2 系统测试

本节采用黑盒测试方法对老年健康评估系统进行功能性和非功能性测试。
功能性测试是对老年健康评估系统的主要功能模块进行验证,非功能性测试主
要包括系统的安全性测试、兼容性测试、可扩展性测试、用户界面测试和系统
的稳定性测试。
(1)功能性测试
首先以老年健康评估模型构建过程中的项目管理功能模块为例,对项目管
理功能模块进行验证,设计项目管理测试用例,结果如表 6-3 所示。

-68-
哈尔滨工业大学工程硕士学位论文

表 6-3 项目管理测试用例

项目 内容

测试用例编号 HAMCon_01
测试项目 构建老年健康评估模型的项目管理功能模块
功能描述 医护人员模型构建项目的增、删、改、查操作
输入 新建:添加构建老年健康评估模型的新项目
编辑:修改创建中或已完成的项目
查看:查看项目详细情况
操作步骤 (1)新建:点击新建按钮,在新增的项目窗口中输入项目的名
称和描述等信息,点击下一步后进入项目编辑页面,在画
布上通过拖拽可视化算子模型组件,配置参数并将算子模
型组件进行连接,完成老年健康评估模型构建的工作流
程,点击保存后返回到项目管理页面
(2)删除:选择一个或多个项目,点击删除按钮
(3)编辑:选择一个项目,点击编辑按钮,进入该项目的项目
编辑页面,修改老年健康评估模型构建的工作流程,点击
保存后返回到项目管理页面
(4)输入项目名称,点击搜索按钮
预期结果 (1)新建:页面提示保存成功,列表显示新建的项目
(2)删除:页面提示删除成功
(3)编辑:页面提示修改成功,列表显示修改后的项目
(4)列表中显示筛选后的项目信息
测试结果 正确
测试日期 2018 年 4 月 12 日

上述测试结果表明,项目管理功能模块达到了系统预期的要求。构建老年
健康评估模型和评估老人健康状况的其他功能模块,其测试用例的设计如上表
所示。对其他功能模块的测试结果表明,老年健康评估系统的各个功能模块均
符合预期要求。
(2)非功能性测试
对老年健康评估系统的非功能性测试包含:
1)安全性测试:分别以普通用户、医护人员、系统管理员的身份登录系统,
结果表明,用户只能访问到角色权限内的信息,并只能进行权限范围内的操作。

-69-
哈尔滨工业大学工程硕士学位论文

系统自动为成功登录的用户设置 Session 时间,待达到临界时间,用户继续进


行操作时,则要求用户重新进行登陆。
2)兼容性测试:老年健康评估系统在 IE、360、Chrome、Firefox 等主流
浏览器上都可以正常运行。
3)用户界面测试:用户可以便捷地在 Web 界面查看信息并进行相应操作。
当用户操作不当或操作失败时,系统会给出友好性提示,并对异常做出处理。
4)稳定性测试:不管用户进行何种操作请求,系统都能在 3 秒内给出用户
反馈。在遇到断网或无法连接集群服务器时,系统可以自行将运行任务挂起,
待恢复后再由用户重新进行操作。
采用专业的测试工具——LoadRunner,通过录制/回放的方法,首先录制通
过 Chrome 浏览器进行系统登录和退出操作,然后使用多线程方式来模拟大量
客户端,由客户端向服务器方发送业务请求,达到测试系统稳定性的目的。测
试说明如表 6-4 所示。

表 6-4 测试说明表

项目 内容
测试功能 系统登录、系统退出
测试目的 进行系统登录和退出操作,评估服务器的性能
打开登录界面,输入用户名和密码进行登录;
操作
进入系统首页,点击退出登录按钮,确认退出
通过压力测试工具——HP LoadRunner11.00,导入录制的脚本,
并设置测试 1 台服务器、2 台笔记本来模拟客户端向服务器发送
业务请求,设置参数如下:
参数设置 Start vusers:20Vusers every 00:00:15
Duration:Run 5 minute
Stop vusers:5Vusers every 00:00:30
All user:200

经过测试,得到的平均事务响应时间如表 6-5 和 6-6 所示。

表 6-5 平均事务响应时间表(一)

时间 00:00 00:15 00:30 00:45 01:00 01:15 01:30 01:45 02:00 02:15 02:30

登录 0.55 0.51 0.55 0.51 0.55 0.51 0.55 0.61 0.55 0.52 0.55

退出 0.03 0.04 0.02 0.04 0.03 0.04 0.02 0.05 0.03 0.04 0.02

-70-
哈尔滨工业大学工程硕士学位论文

表 6-6 平均事务响应时间表(二)

时间 02:45 03:00 03:15 03:30 03:45 04:00 04:15 04:30 04:45 05:00 平均

登录 0.53 0.55 0.53 0.55 0.52 0.53 0.52 0.53 0.51 0.55 0.5371

退出 0.04 0.03 0.04 0.02 0.04 0.03 0.04 0.02 0.04 0.03 0.0329

从上表可以看出,当最大并发用户数为 200 时,登录操作的最大响应时间


为 0.61s,平均响应时间为 0.54s;退出操作的最大响应时间为 0.05s,平均响应
时间为 0.03s。平均事务响应时间的曲线图如图 6-13 所示。

0.7
登录 退出
平均事务响应时间(秒)

0.6

0.5

0.4

0.3

0.2

0.1

运行场景时间(mm:ss)

图 6-13 平均事务响应时间曲线图

通过上述表格和曲线图,得到详细的平均事务响应时间信息。从图中可以
看出,平均事务响应时间的整体趋势比较平稳。在用户登录事务中,90%的用
户在进行系统登录时,服务器的响应都维持在 0.54s 左右,响应速度较好。
经过测试,得到的每秒点击数与每秒吞吐量数据如表 6-7 至 6-9 所示。

表 6-7 每秒点击数与每秒吞吐量数据表(一)

时间 00:00 00:15 00:30 00:45 01:00 01:15 01:30 01:45

点击数 0 112 182 284 306 349 350 351

吞吐量 0 4450.67 810022 1263990 1361905 1553284 1557734 1562185

表 6-8 每秒点击数与每秒吞吐量数据表(二)

时间 02:00 02:15 02:30 02:45 03:00 03:15 03:30

点击数 352 492 486 498 485 499 578

吞吐量 1566636 2189729 2163025 2216433 2158575 2220884 2572487

-71-
哈尔滨工业大学工程硕士学位论文

表 6-9 每秒点击数与每秒吞吐量数据表(三)

时间 03:45 04:00 04:15 04:30 04:45 05:00 平均

点击数 638 646 669 644 667 678 441

吞吐量 2839527 2875133 2977498 2866231 2968597 3017554 1940280

从上表可以看出,当最大并发用户数为 200 时,每秒最大点击率为 678,


平均点击率为 441。每秒点击数与每秒吞吐量的复合曲线图如图 6-14 所示。

3500000 800
吞吐量 点击数
3000000 700

2500000 600

点击数/秒
字节/秒

500
2000000
400
1500000
300
1000000 200
500000 100
0 0

运行场景时间(mm:ss)

图 6-14 每秒点击数与每秒吞吐量复合图

通过上述表格和复合曲线图,得到每秒点击数与每秒吞吐量的详细信息。
其中,每秒点击数可以反映客户端每秒向服务器提交的请求数量。从图中可以
看出,点击数与吞吐量这两条曲线基本一致且正常,表明服务器可以及时地接
收客户端请求,并做出响应。

6.4 本章小结

本章详细描述了算子模块管理、构建工作流实例、工作流任务管理、模型
管理、可视化统计、评估老人健康状况等主要功能模块的实现界面、部分代码
及部分处理流程。对老年健康评估系统进行测试,采用白盒测试方法进行单元
测试,采用黑盒测试方法测试系统的功能和性能,结果显示老年健康评估系统
符合预期要求,可以实现对老年健康评估模型的构建并根据老年健康信息评估
老年健康状况。

-72-
哈尔滨工业大学工程硕士学位论文

结 论

本文以老年健康评估为背景,通过深入分析老年健康评估的评估内容和项
目需求,完善老年健康评估体系,完成老年健康评估系统的设计和实现工作。
该系统提供综合评估老人健康状况的功能,并支持零编码构建老年健康评估模
型,提高了医护人员的工作效率和医疗养老服务质量。本文主要研究成果如下:
(1)完善老年健康评估体系。针对现有老年健康评估体系构建不完善的问
题,完善老年健康评估体系。通过分析老年健康评估的评估内容和对健康评估
指标及其指标权重的调研,构建一套完整的老年健康评估体系,该体系是综合
评估老人健康状况的前提。
(2)研究老年慢性病评估的适用方法。根据特征工程的相关内容和常用的
机器学习方法,利用真实数据集构建老年健康评估模型。评估不同机器学习算
法 在 慢 性 病 疾 病 数 据 集 上 所 构 建 老 年 健 康 评 估 模 型 性 能 , 实 验 结 果 表 明,
Random Forest 和 SVM 机器学习算法更适合老年健康状况的评估。
(3)研究实现老年健康评估模型的构建过程方案。通过分析构建老年健康
评估模型的具体工作流程,设计并抽象化面向老年健康评估的算子表达模型,
利用工作流执行引擎将算子表达模型组合并顺序执行。提出基于 XML 语言描
述算子模型的配置信息和工作流定义,并将工作流执行引擎 Oozie 集成于 OSGI
容器的系统融合方案,实现零编码的健康评估模型构建。
(4)设计并实现老年健康评估系统。该系统一方面支持用户通过 Web 界
面实现零编码的老年健康评估模型构建,使系统更加智能,提高用户构建模型
的效率,降低用户的学习和使用成本;另一方面使用户便捷地利用构建好的模
型对老年健康状况进行综合评估,辅助医护人员发现潜在疾病危险因素,从而
快速采取干预和治疗措施。
随着软件环境和项目需求的变更,需要对系统进行一定的扩展,老年健康
评估系统的研究与开发存在如下不足:
(1)算子表达模型还需要不断完善。算子表达模型作为模型构建的最小单
元,直接决定了所构建模型的性能。目前只实现了基础的算子表达模型抽象,
随着项目的后续开发,系统需要进一步细化工作流粒度,扩展算子表达模型库。
(2)目前系统只支持.csv 格式的健康信息处理和评估,不支持医学影像的
健康评估,后续可针对此方面的不足,进行进一步深入研究和系统升级。

-73-
哈尔滨工业大学工程硕士学位论文

参考文献

[1] 范依宁, 丁伟, 罗盛,等. 老年护理健康评估项目实施的系统评价[J]. 中国


老年学杂志, 2016, 36(17):4309-4311.
[2] 杨靓. 社区老年人健康管理效果评价研究——基于老年人健康相关指标评
价体系的构建[D]. 东南大学, 2016.
[3] 姚纬纬. 老年住院患者综合健康护理评估指标体系构建[J]. 内蒙古医学杂
志, 2017, 49(11):1408-1409.
[4] 顾媛媛. 老年住院患者综合健康护理评估指标体系研究[D]. 南京中医药大
学, 2015.
[5] 张宏雁, 董军, 吴海云,等. 军队干部保健对象综合健康评估指标体系构建
[J]. 中华医院管理杂志, 2010, 26(6):466-469.
[6] 王志刚, 陈鑫, 王茜,等. FlexDB:在线个人健康评估系统[J]. 医学信息学杂
志, 2012, (2):18-21.
[7] 张国义. 基于 Web 的健康评估系统的设计与实现[D]. 大连理工大学, 2006.
[8] 于鹏飞. 基于时间感知的个人健康评估系统设计与实现[D]. 大连海事大学,
2016.
[9] Brandolim N B, Martins R, Jesus S N, et al. Sleep health assessment: A scale
validation[J]. Psychiatry Res, 2017, 259:51-55.
[10] Wang S A, Chiu R K, Jian S J. The implementation of an intelligent cloud
service system for disease risk assessment - chronic kidney disease as an
example[C]. International Conference on Machine Learning and Cybernetics.
IEEE, 2012:1441-1446.
[11] La H J, Kim M K, Kim S D. A Personal Healthcare System with Inference-as-
a-Service[C]. IEEE International Conference on Services Computing. IEEE
Computer Society, 2015:249-255.
[12] Melillo P, Orri A, Scala P, et al. Cloud-Based Smart Health Monitoring System
for Automatic Cardiovascular and Fall Risk Assessment in Hypertensive
Patients[J]. Journal of Medical Systems, 2015, 39(10):1-7.
[13] Mohindra A, Dias D M, Lei H. Health Cloud: An Enabler for Healthcare
Transformation[C]. IEEE International Conference on Services Computing.
IEEE Computer Society, 2016:451-458.

-74-
哈尔滨工业大学工程硕士学位论文

[14] Wong B, Ho G T S, Tsui E. Development of an intelligent e-Healthcare system


for the domestic care industry[J]. Industrial Management & Data Systems,
2017, 117(17): 1426-1445.
[15] Tang V, Cheng S W Y, Choy K L, et al. An intelligent medical Replenishment
System for managing the medical resources in the healthcare industry[C] .
IEEE International Conference on Fuzzy Systems. IEEE, 2016:154-161.
[16] Ali F, Khan P, Kwak D, et al. Type-2 Fuzzy Ontology–aided Recommendation
Systems for IoT–based Healthcare[J]. Computer Communications, 2018, 119:
138-155.
[17] Nazari S, Fallah M, Kazemipoor H, et al. A Fuzzy Inference-Fuzzy Analytic
Hierarchy Process-Based Clinical Decision Support System for Diagnosis of
Heart Diseases[J]. Expert Systems with Applications, 2017:261-271.
[18] Malmir B, Amini M, Chang S I. A medical decision support system for disease
diagnosis under uncertainty[J]. Expert Systems with Applications, 2017,
88:95-108.
[19] Sabahi,F, Bimodal Fuzzy Analytic Hierarchy Process (BFAHP) For Coronary
Heart Disease Risk Assessment[J]. Journal of Biomedical Informatics, 2018,
62:654-662.
[20] Kim S, Yeom S, Kwon O J, et al. Ubiquitous Healthcare System for Analysis
of Chronic Patients’ Biological and Lifelog Data[J]. IEEE Access, 2018,
PP(99):12-19.
[21] 王巡, 杜方辉. 基于 Hadoop 的 C4.5 决策树算法在心脏病诊断中的应用[J].
信息技术与信息化, 2017(1-2):36-40.
[22] Zhang P, Hu S, He J, et al. Building Cloud-Based Healthcare Data Mining
Services[C]. IEEE International Conference on Services Computing. IEEE,
2016:459-466.
[23] 朱悦. SVM 在冠心病分类预测中的应用研究[D]. 华南理工大学, 2013.
[24] Santham T, Padma M S. Application of K-Means and Genetic Algorithms for
Dimension Reduction by Integrating SVM for Diabetes Diagnosis[J]. Procedia
Computer Science, 2015, 47:76-83.
[25] Polat H, Danaei M H, Cetin A. Diagnosis of Chronic Kidney Disease Based on
Support Vector Machine by Feature Selection Methods[J]. Journal of Medical
Systems, 2017, 41(4):55-58.
[26] Davari D A, Khadem S E, Asl B M. Automated diagnosis of coronary artery

-75-
哈尔滨工业大学工程硕士学位论文

disease (CAD) patients using optimized SVM[J]. Computer Methods Programs


Biomed, 2017, 138:117-126.
[27] Reddy G T, Khare N. An Efficient System for Heart Disease Prediction Using
Hybrid OFBAT with Rule-Based Fuzzy Logic Model[J]. Journal of Circuits
Systems & Computers, 2016, 26(04):1793-6454.
[28] Bashir S, Qamar U, Khan F H. A Multicriteria Weighted Vote-Based Classifier
Ensemble for Heart Disease Prediction[M]. Blackwell Publishers, Inc. 2016.
[29] Liu X, Wang X, Su Q, et al. A Hybrid Classification System for Heart Disease
Diagnosis Based on the RFRS Method[J]. Computational and Mathematical
Methods in Medicine, 2017, 2017(3):827-835.
[30] Soni J, Ansari U, Sharma D, et al. Predictive Data Mining for Medical
Diagnosis: An Overview of Heart Disease Prediction[J]. International Journal
of Computer Applications, 2011, 17(8):43-48.
[31] 马莉雅. 基于决策树、逻辑回归和改进神经网络的几种慢性病的危险因素
分析研究(英文)[J]. 软件, 2014(12):58-65.
[32] Xiao T, Shi Y. Medical health data analysis based on Spark Mllib[C].
International Conference on Artificial Intelligence and Engineering
Applications. 2016:116-119.
[33] Nilashi M, Ibrahim O B, Ahmadi H, et al. An analytical method for diseases
prediction using machine learning techniques[J]. Computers & Chemical
Engineering, 2017, 106:212-223.
[34] 李现文, 李春玉, Miyong Kim,等. 决策树与 Logistic 回归在高血压患者健
康素养预测中的应用[J]. 护士进修杂志, 2012, 27(13):1157-1159.
[35] Colak C, Karaman E, Turtay M G. Application of knowledge discovery process
on the prediction of stroke[J]. Computer Methods and Programs in
Biomedicine, 2015, 119(3):181-185.
[36] Arslan A K, Colak C, Sarihan M E. Different medical data mining approaches
based prediction of ischemic stroke[J]. Computer Methods & Programs in
Biomedicine, 2016, 130:87-92.
[37] 赵志明. 产品数据管理系统中产品结构管理的研究与实现[D]. 吉林大学,
2014.
[38] 黄斌, 许舒人, 蒲卫. 基于 MapReduce 的数据挖掘平台设计与实现[J]. 计
算机工程与设计, 2013, 34(2):495-501.
[39] 黄佳. 并行 ETL 工具可扩展技术的研究和开发[D]. 北京邮电大学, 2014.

-76-
哈尔滨工业大学工程硕士学位论文

[40] 袁野. 基于 Hadoop 的在线数据挖掘系统的设计与实现[D]. 电子科技大学,


2016.
[41] 卜尧, 吴斌, 陈玉峰,等. BDAP—一个基于 Spark 的数据挖掘工具平台[J].
中国科学技术大学学报, 2017, 47(4):358-368.
[42] 何清, 庄福振, 曾立,等. PDMiner:基于云计算的并行分布式数据挖掘工具
平台[J]. 中国科学:信息科学, 2014, 44(7):871-885.
[43] 王 靖 夫 . Zmining 数 据 挖 掘 系 统 中 构 件 库 的 设 计 与 实 现 [D]. 郑 州 大 学 ,
2014.
[44] 苏晓旭. Zmining 数据挖掘系统中数据结构的设计与实现[D]. 郑州大学,
2014.
[45] 陈广智, 潘嵘, 李磊. 工作流建模技术综述及其研究趋势[J]. 计算机科学,
2014, 41(s1):11-17.
[46] 袁华, 刘鹏, 欧阳宁,等. 可视化工作流建模工具 WorkFlowEditor 设计与实
现[J]. 微型机与应用, 2016, 35(6):15-18.
[47] Qi L. Workflow management system based on WEB technology [J]. Cluster
Computing, 2017:1-7.
[48] Schur M, Roth A, Zeller A. Mining Workflow Models from Web
Applications[J]. IEEE Transactions on Software Engineering, 2015,
41(12):1184-1201.
[49] Bendou S. Multi-agent Approach for Managing Workflows in an Inter-Cloud
Environment[M]. Service-Oriented Computing – ICSOC 2013 Workshops.
Springer International Publishing, 2013:535-542.
[50] Kranjc J, Orač R, Podpečan V, et al. ClowdFlows: Online workflows for
distributed big data mining[J]. Future Generation Computer Systems, 2016,
68:38-58.
[51] Smith G, Whitehead J, Mateas M. Tanagra:a mixed-initiative level design
tool[C]. International Conference on Foundations of Digital Games. ACM,
2010:209-216.
[52] Holmes G, Donkin A, Witten I H. WEKA: a machine learning workbench[C].
Intelligent Information Systems,1994. Proceedings of the 1994 Second
Australian and New Zealand Conference on. IEEE, 2002:357-361.
[53] Demšar J, Curk T, Erjavec A, et al. Orange: Data Mining Toolbox in Python[J].
Journal of Machine Learning Research, 2013, 14(1):2349-2353.

-77-
哈尔滨工业大学工程硕士学位论文

攻读硕士学位期间发表的论文及其它成果

(一) 发表的学术论文

[1] Rongzhen Yan, Chunshan Li, Dianhui Chu. The Design and Implementation of
the Elderly Healthcare Information Mining Platform [C]. IEEE International
Conference on Bioinformatics and Biomedicine (BIBM 2017), Kansas City,
MO, USA, 2017.

-78-
哈尔滨工业大学工程硕士学位论文

哈尔滨工业大学学位论文原创性声明和使用权限

学位论文原创性声明

本人郑重声明:此处所提交的学位论文《老年健康评估系统的设计与实现》,
是本人在导师指导下,在哈尔滨工业大学攻读学位期间独立进行研究工作所取
得的成果,且学位论文中除已标注引用文献的部分外不包含他人完成或已发表
的研究成果。对本学位论文的研究工作做出重要贡献的个人和集体,均已在文
中以明确方式注明。

作者签名: 日期:2018 年 6 月 28 日

学位论文使用权限

学位论文是研究生在哈尔滨工业大学攻读学位期间完成的成果,知识产权
归属哈尔滨工业大学。学位论文的使用权限如下:
(1)学校可以采用影印、缩印或其他复制手段保存研究生上交的学位论文,
并向国家图书馆报送学位论文;(2)学校可以将学位论文部分或全部内容编入
有关数据库进行检索和提供相应阅览服务;(3)研究生毕业后发表与此学位论
文研究成果相关的学术论文和其他成果时,应征得导师同意,且第一署名单位
为哈尔滨工业大学。
保密论文在保密期内遵守有关保密规定,解密后适用于此使用权限规定。
本人知悉学位论文的使用权限,并将遵守有关规定。

作者签名: 日期:2018 年 6 月 28 日

导师签名: 日期:2018 年 6 月 28 日

-79-
哈尔滨工业大学工程硕士学位论文

致 谢

转眼间,两年的硕士生生活就要接近尾声,回顾过去两年间忙碌却充实的
日子,我收获颇多,不仅增强了对知识的认知能力,更收获了强大的精神财富。
衷心地感谢我的导师徐晓飞教授,徐老师有很高的学术造诣,勤于思考,
治学严谨,为我们讲解企业与服务智能计算未来的发展方向和他的一些创新性
的想法,对我们的课题研究方向起一定的导航作用,并进一步开阔了我们的思
维,也为我的毕业论文提出了一些宝贵的意见和建议。
由衷地感谢初佃辉教授,初老师是我研究生学习生涯中最重要的一位老师,
给予了我莫大的关心和支持,一直关注我的研究进展,并对我论文的选题和研
究思路提出很多重要性的指导。除此之外,还给我们提供了很多接触前沿知识
的机会,不仅开阔了我们的眼界,还提高了我们的思辩能力,使我们收获良多。
诚挚地感谢郑宏珍教授,郑老师是我最崇敬的一位老师,在教学过程中往
往能够贴合生活中的实例,使我们了解到问题的本质,带领我们从另一个角度
看问题,开阔了我们的思维。在我的毕业设计论文整体思路和表达方式等问题
上,指出了我很多容易疏忽的问题,并提出了宝贵的意见。
深深地感谢孟凡超副教授。孟老师是一位勤奋刻苦、言传身教的老师,对
我们每位学生都认真负责,给我们提供了很多实践机会,提高了我们的实践动
手能力和专业理论知识。同时,花费时间对我的论文研究内容进行思考,并提
出很多重要的修改建议,为我指明了研究方向,是一位尽职尽责的好老师。
真诚地感谢李春山老师,李老师平易近人,工作认真负责,是良师亦是益
友,每周都要开组会询问我们的课题研究进展和存在的困难,和我们一起讨论,
并给出指导性建议。在我毕业论文和小论文遇到问题时,不厌其烦的帮助我一
起克服困难、解决问题,给予我很大的支持和鼓励。
非常感谢 ICES 中心的张小东老师、张华老师、周学权老师在生活和学习
上对我的关心和帮助,正是因为 ICES 中心全体老师的真诚友好和共同努力,
才让我在这里体会到了家的温暖,才让 ICES 中心一直向更好的方向发展。
同样感谢实验室的小伙伴,大家一起讨论问题,解决了一个又一个难题,
共同营造了一个轻松愉快的学习和生活氛围。还要感谢我可爱的同学们,对我
一直以来的陪伴和支持,带给我很多欢声笑语,遇到你们很幸运。
最后,感谢我挚爱的家人和老友,你们是我最坚强的后盾,一直鼓励并支
撑着我,永远不离不弃,让我感到很踏实。有你们在,真好!

-80-

You might also like