中国卫生部《健康中国2020战略研究报告》明确指出: 加强基层医疗体系建设, 建设基于网络体系的全民电子健康系统、推进预防慢性病及重大疾病, 大力发展民族健康产业, 投入资金总规模将达4000亿. 云健康监测综合运用传感器网络、云计算和大数据处理等技术, 可以实现多生理参数实时采集、海量数据存储和大数据智能分析与处理, 是下一代家庭健康监测的主要发展方向.
目前国内外学术界围绕健康监测领域展开很多积极的探索, 主要工作包括: 美国田纳西大学设计一种实时监测人体生理ECG数据云Cloud-ECG[1], 保证云端数据存取的ECG数据质量. 西班牙格拉纳达大学采用可穿戴式胸带传感器监测人体的心电、心率、呼吸频率、皮肤温度, 生理监测数据存放在个人微云(Cloudlet); 心电数据采用马拉松算法处理并以红、绿、黄颜色警示患者身体健康状况[2]. 台湾国立台中科技大学基于体感网WBANs(Wireless Body Area Networks)采集人体的血压、心率和体温等生理数据; 采用VMware搭建的微云存储数据; 采用融合粗糙集的等级评定算法[3]协同推荐信息到相关医疗群体[4]. 飞利浦保健算法研究中心提出一种ECG波形实时质量评估算法—ST段心肌梗死评估算法[5,6]. 东南大学采用织物电极采集ECG数据[7]、北京工业大学提出采用可穿戴式多参数心脏活动监测设备采集心音、心电和心冲击图数据, 在线监测心脏活动[8]; 中科院提出“低成本健康海云工程”, 采用无缝接入的智能医疗终端监测患者生理健康状况; 利用云计算技术实现海量电子病历和电子健康档案存储[9], 但未给出生理监测数据的处理算法.
云健康监测可以有效解决现有家庭健康监测系统(终端)在数据存储容量方面的局限性, 但生理监测数据仍缺乏高效、实用的智能分析算法, 特别是传统的分类算法(例如SVM, KNN, 决策树等)很难直接应用, 难以满足居民慢性病变智能预警和突发状况救治需要. 其主要原因是: 生理监测数据具有时间连续性、非精确性、模糊性等特性, 实际应用存在数据遗漏或缺失. 例如, 体温数据相对恒定, 但24小时略有波动; 动态ECG信号需采用小波分析算法对QRS复合波实时检测和有效筛选, 24小时内波动较大[10].
针对上述问题, 本文提出一种基于粗糙集的慢性病变分级方法, 帮助个体全面认识慢性病变风险, 该方法包括以下步骤: 首先, 采用融合相关度和Chi-merge统计量对连续属性离散化, 提高聚类能力; 然后, 基于相容矩阵的属性约简算法去除数据冗余属性, 降低原始数据集维数; 最后, 基于批量和增量相结合的分类规则挖掘, 确定最优分类规则集合, 并基于MapReduce框架运用上述规则实现慢性病变智能分级. 结合厦门市集美区病例数据验证算法, 基于自主研制的联接厦门市“健康医疗云”的云健康监测系统Cloud-Health[11]平台展开上述方法的有效性验证.
1 方法原理 1.1 融合相关度和Chi-merge统计量的属性离散化离散化本质上是利用选取的断点来对条件属性构成的空间进行划分, 即将
定义1[12]. 决策表
$\begin{aligned}{V_{{c_i}}} =&\{ [v_{{c_i}}^{\min ({x_1})},v_{{c_i}}^{\max ({x_1})}],[v_{{c_i}}^{\min ({x_2})},v_{{c_i}}^{\max ({x_2})}],\cdots,\\&[v_{{c_i}}^{\min ({x_n})}\!,\!v_{{c_i}}^{\max ({x_n})}\!]\!\} \end{aligned}$ | (1) |
上式中,
定义2. 设
$g(a,b) = \left\{ {\begin{array}{*{20}{l}}0 & {{b^{\max }} \le {a^{\min }},{a^{\max }} \le {b^{\min }}}\\{({a^{\max }} - {b^{\min }})/L} & {{a^{\min }} < {b^{\min }} \le {a^{\max }} \le {b^{\max }}}\\1 & {{a^{\min }} < {b^{\min }} \le {b^{\max }} \le {a^{\max }}}\\{({b^{\max }} - {a^{\min }})/L} & {{b^{\min }} < {a^{\min }} \le {b^{\max }} < {a^{\max }}}\\1 & {{b^{\min }} \le {a^{\min }} < {a^{\max }} \le {b^{\max }}}\end{array}} \right.$ | (2) |
定义3. Chi-square是一种度量离散化数值型数据的统计量
${\chi ^2} = \sum\limits_{i = 1}^2 {\sum\limits_{j = 1}^p {\frac{{{{({A_{ij}} - {E_{ij}})}^2}}}{{{E_{ij}}}}} } $ | (3) |
其中,
为克服相似区间长度不固定且区间长度相差较大问题, 基于相关度离散化区间属性; 本文采用Chi-square度量条件属性和目标属性之间关联程度, 即两相邻区如果存在相似目标属性频率分布则合并为同一区间, 即计算相邻区间
算法1. 融合相关度和Chi-square统计量的属性离散化算法
① 根据对象
新段落大小), 定义
② 对象
③ 遍历
若
若
若
④ 按遍历取断点从小到大排序实现连续数据离散化; 选取显著性水平并结合自由度(
⑤ 计算连续数据离散化相邻区间
⑥ 按⑤循环迭代合并直至满足: 相邻区间
由于生理监测数据涉及较多属性, 且容易存在部分条件属性(如心率、血氧)取值有遗漏或缺失, 需要降低原始数据集维数, 同时避免组合爆炸和提高属性约简效率. 在保证一定的正确分类率
定义4. 对于决策表
${\beta _c} = \frac{{\left| {\mathop \cup \limits_{{Y_j} \in U/D} {C_\alpha }{Y_j}} \right|}}{{\left| U \right|}}$ | (4) |
其中,
定义5. 条件属性
$\begin{array}{l}{M_c} = {({r_{ij}})_{\left| U \right| \times \left| U \right|}} = \\\left\{ {\begin{array}{*{20}{l}}\begin{array}{l}0\;\;\;\;\;\exists c \in C,f({x_i},c) \ne f({x_j},c) \wedge f({x_i},c) \ne \\\;\;\;\;\;\;\;* \wedge f({x_j},c) \ne *,f({x_i},D) \ne f({x_j},D)\end{array}\\{1\;\;\;\;\;\;\;{{\text{其他}}}}\end{array}} \right.\\1 \le i,j \le \left| U \right|\end{array}$ | (5) |
其中, 若条件属性的取值有遗漏或缺失, *记为遗漏属性值.
定义6. 对于决策表
${M_P} \cap {M_Q} = {({r_{ij}})_{\left| U \right| \times \left| U \right|}} \cap {({r_{ij}})_{\left| U \right| \times \left| U \right|}} = {(\min ({r_{ij}},{r_{ij}}))_{\left| U \right| \times \left| U \right|}}. $ |
下面给出基于相容矩阵的属性约简算法: 首先, 采用间接处理方法将不完备数据转化成完备数据; 其次, 将决策表中条件属性的所有组合形式用二进制编码表示, 即“1”表示属性出现, “0”表示属性不出现; 然后, 比较二进制表示的组合属性集与条件属性的分类质量, 如果相等则该组合属性作为候选集合一行; 最后, 根据准则删除那些子集已经是约简的行以及全为零的行.
算法2. 基于相容矩阵的属性约简算法
输入: 决策表
输出: 最小约简属性集
① 采用相容矩阵并基于启发式算法[13]将不完备决策表
② 将条件属性
③ 计算编码j= 1, 2,
$\scriptstyle {\beta _{{C_j}}} = \frac{{\left| {\mathop \cup \limits_{{Y_j} \in U/D} {C_\alpha }{Y_j}} \right|}}{{\left| U \right|}}$ | (6) |
④ 如果
⑤ 删除冗余及全为零的行, 形成最小约简属性集
生理监测数据具有典型增量数据特点, 分类规则可以对未知数据预测, 由于分类规则强调准确性、速度、健壮性和伸缩性, 因此确定最优分类规则集合至关重要. 按照定义1, 决策表
$C({x_1}),C({x_2}),\cdots,C({x_n}) \to {D_1}({x_1}),{D_2}({x_2}),\cdots,{D_{r(d)}}({x_n}),$ |
记为
定义7. 决策规则
$str(C,D) = \frac{{\left| {{C_U} \cap {D_U}} \right|}}{{\left| U \right|}}$ | (7) |
$cer(C,D) = \frac{{\left| {{C_U} \cap {D_U}} \right|}}{{\left| {{C_U}} \right|}}$ | (8) |
$\operatorname{cov} (C,D) = \frac{{\left| {{C_U} \cap {D_U}} \right|}}{{\left| {{D_U}} \right|}}$ | (9) |
其中,
算法3. 基于批量和增量相结合的分类规则挖掘算法
① 根据生理监测数据确定对象的条件属性
② 对
③ 调用基于粗糙集分类算法[14]得到一组最优的分类规则集并保存在分类规则库中;
④ 读取增量数据集并进行预处理(融合相关度和Chi-merge统计量的属性离散化), 得到
⑤ 用当前分类规则库中的规则对
⑥ 输出当前分类规则集.
算法3采用顺序覆盖策略, 每学习一个规则可删除该规则覆盖数据; 对其它数据重复该过程直到终止条件, 即没有训练样本/返回的规则的分类质量低于预期效果(规则强度、确定度和覆盖度).
为提高慢性病变智能分级的准确性, 特别是针对大规模生理监测数据, 需要发挥云端并行化处理优势. MapReduce并行化框架通过对数据集的大规模操作分发给网络上的每个节点; 每个节点会周期性返回所完成的工作和最新状态. 用户只需编写Map函数和Reduce函数, 即可实现大规模数据并行处理. 慢性疾病智能分类及预测的完整过程: 实时监测获取生理数据; 经过融合相关度和Chi-merge统计量对连续属性离散、基于相容矩阵的属性约简算法降低原始数据集维数以及基于批量和增量相结合的分类规则挖掘; 在线生理监测数据利用上述分类规则聚类, 确定病例智能分级.
2 实验厦门理工学院自主研制云健康监测系统Cloud-Health, 该系统基于Android 4.1.2, jdk1.7, 基于Bluetooth协议连接人体生理参数采集终端, 并支持2G、3G、4G、WIFI等连接云平台. Cloud-Health实现心电、心率、血压、血氧饱和度和血糖在线监测, 并根据慢性疾病智能分类及预测的结果, 进行膳食推荐、运动推荐和就医服务推荐. Cloud-Health支持联接厦门市“健康医疗云”, 该医疗云支持与各类健康管理终端对接, 已实现体重、体温、血压、血糖、心电、血氧、血脂等14项生理指标的收集, 已建立个人健康档案330余万份, 占90%常住人口), 最终满足居民慢性病变智能预警和突发状况救治的需要. 图1展示云健康监测系统的主界面及心电监护界面.
实验数据取自厦门市集美区110198条健康监测数据. 每条数据包括个人资料(年龄、性别、民族、婚姻、学历)、生活偏好(抽烟、喝酒、锻炼、睡眠时间等)、常规体检数据(身高、体重、腰围、臀围)和监测数据(心电、心率、血压、血氧饱和度和血糖), 样本平均年龄64.9岁. 糖尿病(Diabetes)数据共40个条件属性、高血压(Hypertensive disease)数据共35个条件属性、冠心病(Coronary heart disease)数据共35个条件属性; 健康风险就是决策属性(H高等风险、M中等风险和L低等风险).
以糖尿病数据为例, 运用基于粗糙集的慢性病变分级方法, 融合关联度和Chi-merge统计量对数据连续区间离散化, 得到初始属性40个、初始断点数123; 基于相容矩阵的属性约简(正确分类率
表2展示部分糖尿病数据分级预测结果. 采用批量与增量相结合的分类规则挖掘, 得到12条规则; 基于MapReduce框架运用规则库实现分级预测. 记年龄(
$\begin{array}{l}{R_1}:f(x,{c_1}) \ge 57 \wedge f(x,{c_2}) \ge 26.4 \wedge f(x,{c_4}) \ge 0\\ \wedge f(x,{c_5}) = 1 \wedge f(x,{c_6}) \ge 0.89 \wedge f(x,{c_7}) \ge (60,90]\\ \wedge f(x,{c_8}) = (6.98,9.16] \wedge f(x,{c_9}) \ge (115,148] \to\\ f(x,d) = H\end{array}$ |
$\begin{array}{l}{R_2}:f(x,{c_1}) \ge 57 \wedge f(x,{c_2}) \ge 26.4 \wedge f(x,{c_3}) \ge 0.83\\ \wedge f(x,{c_4}) \ge 1 \wedge f(x,{c_5}) = 1 \wedge f(x,{c_6}) \ge 0.89\\ \wedge f(x,{c_7}) \ge (60,90] \wedge f(x,{c_8}) = (6.98,9.16]\\ \wedge f(x,{c_9}) \ge (115,148] \to f(x,d) = H\end{array}$ |
$\begin{array}{l}{R_3}:f(x,{c_1}) \ge 54 \wedge f(x,{c_2}) \ge 23.6 \wedge f(x,{c_4}) = 0\\ \wedge f(x,{c_5}) = 1 \wedge f(x,{c_6}) \ge 0.91 \wedge f(x,{c_7}) \ge (60,94]\\ \wedge f(x,{c_8}) = (6.65,7.12] \wedge f(x,{c_9}) \ge (127,164] \to\\ f(x,d) = L\end{array}$ |
对
需要说明的是, 虽然对于常见的慢性疾病(高血压、糖尿病和冠心病), 使用基于粗糙集的慢性病变分级方法虽可以得到较好的预测结果. 但限于数据等条件, 该方法目前尚未完全发挥云计算技术在大数据分析和挖掘中的优势. 如果在云端平台采用多种数据挖掘方法对生理监测数据进行协同分析, 可以提高慢性病变分级和诊断的精确度.
3 结论与展望目前传感器网络、云计算和大数据技术正逐步应用到智慧医疗领域. 云健康监测利用附着人体的智能生理参数传感器获取人体生理数据, 并上传到健康医疗云端, 是智慧医疗领域未来发展方向之一. 为满足居民慢性病变智能预警和突发状况救治需要, 根据生理监测数据的时间连续性、非精确性和模糊性等特点, 本文提出一种基于粗糙集的慢性病变分级方法, 即首先采用融合相关度和Chi-merge统计量离散化生理监测数据; 然后, 基于相容矩阵的属性约简算法去除数据冗余属性; 最后, 基于批量与增量相结合挖掘分类规则, 基于分布计算框架MapReduce运用规则实现慢性病变智能分级. 该方法有利于帮助个体全面认识健康状况和病变风险, 有助于“健康医疗云”走入家庭慢性疾病监护领域, 有利于缓解目前医疗资源紧缺现状.
下一步工作包括: 提高云健康监测中慢性病变分级的识别率, 包括: 提高生理监测数质量, 充分考虑降低数据的缺失值比率; 完善云健康监测系统的功能, 展开示范性应用和推广.
[1] |
Xia HN, Asif I, Zhao XP. Cloud-ECG for real time ECG monitoring and analysis. Computer Methods and Programs in Biomedicine, 2013, 110(3): 253-259. DOI:10.1016/j.cmpb.2012.11.008 |
[2] |
Banos O, Villalonga C, Damas M, et al. PhysioDroid: Combining wearable health sensors and mobile devices for a ubiquitous, continuous, and personal monitoring. The Scientific World Journal, 2014, 2014: 490824. |
[3] |
Wang SL, Chen YL, Kuo AMH, et al. Design and evaluation of a cloud-based mobile health information recommendation system on wireless sensor networks. Computers & Electrical Engineering, 2016, 49: 221-235. |
[4] |
Su JH, Wang BW, Hsiao YC, et al. Personalized rough-set-based recommendation by integrating multiple contents and collaborative information. Information Sciences, 2010, 180(1): 113-131. DOI:10.1016/j.ins.2009.08.005 |
[5] |
Firoozabadi R, Gregg RE, Babaeizadeh S. Intelligent use of advanced capabilities of diagnostic ECG algorithms in a monitoring environment. Journal of Electrocardiology, 2017, 50(5): 615-619. DOI:10.1016/j.jelectrocard.2017.04.013 |
[6] |
Zhou P, Li ZC, Wang F, et al. Portable wireless ECG monitor with fabric electrodes. Chinese Journal of Biomedical Engineering, 2016, 25(4): 172-178. |
[7] |
张翼, 宾光宇, 吴水才. 一种可穿戴式多参数心脏活动监测设备的设计. 中国医疗设备, 2018, 33(3): 18-21. DOI:10.3969/j.issn.1674-1633.2018.03.005 |
[8] |
Majumder S, Mondal T, Deen MJ. Wearable sensors for remote health monitoring. Sensors, 2017, 17(1): 130. DOI:10.3390/s17010130 |
[9] |
樊建平, 张元亭, 王磊. 实施海云工程 实现低成本健康. 集成技术, 2012, 1(2): 4-9. |
[10] |
邹娜. 基于Android手机的泛在人体健康监护系统数据挖掘程序的研究与设计[硕士学位论文]. 武汉: 华中科技大学, 2012.
|
[11] |
胡建强. 一种联接" 健康云”的家庭健康监护系统设计. 厦门大学学报(自然科学版), 2016, 55(1): 114-120. |
[12] |
谢宏, 程浩忠, 牛东晓. 基于信息熵的粗糙集连续属性离散化算法. 计算机学报, 2005, 28(9): 1570-1574. DOI:10.3321/j.issn:0254-4164.2005.09.021 |
[13] |
陈昊, 杨俊安, 庄镇泉. 变精度粗糙集的属性核和最小属性约简算法. 计算机学报, 2012, 35(5): 1011-1017. |
[14] |
Margret AS, Clara MLJ, Jeevitha P, et al. Design of a diabetic diagnosis system using rough sets. Cybernetics and Information Technologies, 2013, 13(3): 124-139. DOI:10.2478/cait-2013-0030 |