浙江大学学报(工学版), 2021, 55(7): 1253-1260 doi: 10.3785/j.issn.1008-973X.2021.07.004

计算机与控制工程

基于数据融合的ABC-SVM社区疾病预测方法

庞维庆,, 何宁,, 罗燕华, 郁晞

1. 桂林电子科技大学 信息与通信学院,广西 桂林 541004

2. 南宁市第一人民医院,广西 南宁 530000

3. 上海市青浦区疾病预防控制中心,上海 201799

ABC-SVM disease prediction method based on data fusion in community health care

PANG Wei-qing,, HE Ning,, LUO Yan-hua, YU Xi

1. School of Information and Communication, Guilin University of Electronic Technology, Guilin 541004, China

2. The First People's Hospital of Nanning, Nanning 530000, China

3. Qingpu District Center for Disease Control and Prevention, Shanghai 201799, China

通讯作者: 何宁,男,教授,硕导. orcid.org/0000-0002-0632-8766. E-mail: eicnhe@guet.edu.cn

收稿日期: 2020-05-18  

基金资助: 国家自然科学基金资助项目(61661016);广西无线宽带通信与信号处理重点实验室主任基金资助项目(GXKL06180101);桂林电子科技大学研究生教育创新资助项目(2018YJCX23)

Received: 2020-05-18  

Fund supported: 国家自然科学基金资助项目(61661016);广西无线宽带通信与信号处理重点实验室主任基金资助项目(GXKL06180101);桂林电子科技大学研究生教育创新资助项目(2018YJCX23)

作者简介 About authors

庞维庆(1994—),男,硕士生,从事物联网数据融合、疾病预测研究.orcid.org/0000-0002-6632-0336.E-mail:williampong@126.com , E-mail:williampong@126.com

摘要

针对现有社区医疗服务中的疾病预测方法存在数据利用率低、疾病分析类型单一、自动化程度差、疾病预测效果不理想等不足,提出在物联网大数据环境下可用于社区医疗的健康数据融合及疾病预测方法. 通过主成分分析(PCA)和聚类分析对社区中居民的生理指标数据进行特征提取;结合人工蜂群(ABC)算法构造支持向量机(SVM)非线性分类器对数据进行特征级融合分析并预测潜在疾病. 实验结果表明,所提方法的疾病识别准确率达到93.10%,相较于传统SVM方法和BP神经网络方法分别提高17.24% 和72.41%. 该方法能够在提高数据利用率、降低计算资源消耗的前提下有效识别多种潜在疾病,可实现疾病早发现、早预防、早治疗;可广泛应用于社区健康管理、老年社区监护甚至临床医疗.

关键词: 社区医疗 ; 疾病预测 ; 支持向量机(SVM) ; 人工蜂群(ABC) ; 聚类分析

Abstract

Existing disease prediction methods in community health service stilled have some defects such as low data utilization, single type disease, poor automation and unsatisfactory disease prediction effect. A health data fusion and disease prediction approach used in community healthcare in big data and Internet of Things (IoT) environment was proposed to solve these problems. Principal component analysis (PCA) and cluster analysis were used to extract features from the physiological data of residents in communities. The artificial bee colony (ABC) algorithm was used to construct a support vector machine (SVM) non-linear classifier to fuse the features data to predict many potential diseases. Experimental results show that the disease diagnostic accuracy of the proposed method is 93.10%, which is 17.24% higher than traditional SVM method and 72.41% higher than BP neural network. This method can effectively identify potential diseases under the premise of improving data utilization and reducing computing resource consumption, which makes early detection, prevention and treatment of diseases possible. It can be widely applied in community healthcare, elderly monitoring, clinical medicine in hospital.

Keywords: community health care ; disease prediction ; support vector machine(SVM) ; artificial bee colony(ABC) ; cluster analysis

PDF (1661KB) 元数据 多维度评价 相关文章 导出 EndNote| Ris| Bibtex  收藏本文

本文引用格式

庞维庆, 何宁, 罗燕华, 郁晞. 基于数据融合的ABC-SVM社区疾病预测方法. 浙江大学学报(工学版)[J], 2021, 55(7): 1253-1260 doi:10.3785/j.issn.1008-973X.2021.07.004

PANG Wei-qing, HE Ning, LUO Yan-hua, YU Xi. ABC-SVM disease prediction method based on data fusion in community health care. Journal of Zhejiang University(Engineering Science)[J], 2021, 55(7): 1253-1260 doi:10.3785/j.issn.1008-973X.2021.07.004

随着全球经济的飞速发展及生活节奏的加快,越来越多的人长期处于亚健康状态,易患慢性疾病. 一些致命性疾病隐蔽性强、前期病理特征不明显[1],往往到中晚期才出现明显症状,而此时已错过最佳治疗期. 随着人口老龄化进程的加速,健康问题日益突出,因此完善社区健康基础设施对提高全民整体健康素质具有重要的现实意义.

如何提高社区医疗健康管理系统的疾病预测能力以提高人们的生活、健康水平是一个非常值得研究的课题[2]. 近年来,国内外诸多学者在该领域展开了深入的研究,取得了丰富的成果. 王磊等[3]通过对脉搏信号分析实现对房颤和冠心病的自动识别.Kaur等[4]基于物联网技术构建健康管理系统,使用多种机器学习技术分析多种疾病数据集,发现随机森林对多种疾病的预测效果较好,准确率在 $55.73\% \sim 97.26\% $,但算法的鲁棒性较差. 刘灿等[5]建立了类似的统一管理平台,运用BP神经网络(BP-NN)根据老年人的生理健康数据对慢性疾病(如心脏病、糖尿病)的患病情况进行分析,准确率较高,能做到疾病早发现、早治疗. 上述健康管理系统虽然功能较为完善,但其中涉及数据处理和疾病预测的模型较为简单,且针对疾病种类单一,无法根据多项生理指标全面地预测潜在的疾病,需要在实际应用中改进. 王哲等[6]使用机器学习方法( $k$-最近相邻法、SVM)对慢性阻塞性疾病分期进行预测,准确度高达 $85.26\% $,具有一定的临床意义. 但该研究没有真正将理论融入实际的健康基础设施中,应用场景较为狭窄. Mohan等[7]将复合机器学习算法结合物联网技术应用于心脏病预测中,把预测精度提高到 $88.7\% $,预测效果显著. Chen等[8]将机器学习和大数据技术用于医疗保健社区,预测精度提高到 $94.8\% $。可见充分利用大数据分析技术能够从海量数据中分析潜在的疾病发展规律,进而对疾病做出准确预测[9].

针对该领域现存的一些问题,在现有研究成果的基础上,通过对物联网环境下的数据采集[10]与管理的关键技术研究,结合数据融合与挖掘技术将支持向量机(support vector machine, SVM)引入社区健康管理的疾病预测中,经人工蜂群(artificial bee colony, ABC)算法进行参数寻优之后能够有效提高预测精度. 得益于SVM的自学习能力,随着知识库的增大,疾病预测能力也会随之增强,有利于促进社区医疗网格化建设和居民健康管理,充分发挥社区医疗的优势.

1. 疾病预测理论分析

1.1. 社区疾病预测模型

图1所示,传感器采集的生理数据经过特征级数据融合方法提取出关键信息,输入经优化的SVM模型进行疾病分析预测,最终处理结果可反馈至社区健康管理系统.

图 1

图 1   社区疾病预测模型

Fig.1   Disease prediction model in community


1.2. 数据特征提取

由于社区物联网终端采集的数据量较大、维数较高,加之可能存在的偶然误差、噪声干扰等不利因素,须在数据分析之前对生理数据进行降维压缩,去掉冗余信息以减少干扰,提高系统性能. 主成分分析(principal component analysis, PCA)是常用于数据挖掘中的降维算法[11],它能够通过降维技术用少数几个线性无关的主成分反映原始变量的绝大部分信息[12].

$n$个不同类型的人体生理传感器节点采集到的 $m$组维度为 $n$的检测样本可以表示为

${\boldsymbol{X}} = \left( {{{\boldsymbol{x}}_1},{{\boldsymbol{x}}_2},{{\boldsymbol{x}}_3}, \cdots ,{{\boldsymbol{x}}_n}} \right).$

式中: ${{\boldsymbol{x}}_n}$$m$行列向量. 为了将样本中不同特征维度的量纲统一表示,需要先将样本 ${\boldsymbol{X}}$中心化

$\left. {\begin{array}{*{20}{l}} {\tilde {\boldsymbol{X}} = \left( {{{\boldsymbol{x}}_1}{\rm{ - }}{{\boldsymbol{\mu}} _1},{{\boldsymbol{x}}_2}{\rm{ - }}{{\boldsymbol{\mu}} _2}, \cdots ,{{\boldsymbol{x}}_n}{\rm{ - }}{{\boldsymbol{\mu}} _n}} \right),} \\ {{{\boldsymbol{\mu}} _i} = \dfrac{1}{m}\displaystyle\sum\limits_{j = 1}^m {{\boldsymbol{x}}_i^j{{\left[ {1,1, \cdots ,1} \right]}^{\rm{T}}};i=1,2,\cdots,n.} } \end{array}} \right\}$

式中: ${{\boldsymbol{\mu}} _i}$为第 $i$个维度生理数据的均值向量,在任意维度 $i$上,样本方差为

${\rm{var}}\left( {{{\boldsymbol{x}}_i}} \right) = \frac{1}{m}{\sum\limits_{j = 1}^m {\left( {\tilde {\boldsymbol{x}}_i^j} \right)} ^2};i = 1,2, \cdots ,n.$

当传感器数量 $n \geqslant 2$时,维度 $a$和维度 $b$的协方差为

${\rm{cov}}\left( {{{\boldsymbol{x}}_a},{{\boldsymbol{x}}_b}} \right) = \frac{1}{m}\sum\limits_{i = 1}^m {\tilde {\boldsymbol{x}}_a^i\tilde {\boldsymbol{x}}_b^i} .$

令矩阵 ${\boldsymbol{C}} = \dfrac{1}{m}{\tilde {\boldsymbol{X}}^{\rm{T}}}\tilde {\boldsymbol{X}}$

${\boldsymbol{C}} = \left[ {\begin{array}{*{20}{c}} {\dfrac{1}{m}\displaystyle\sum\limits_{i = 1}^m {\tilde {\boldsymbol{x}}_1^i\tilde {\boldsymbol{x}}_1^i} }& \cdots &{\dfrac{1}{m}\displaystyle\sum\limits_{i = 1}^m {\tilde {\boldsymbol{x}}_1^i\tilde {\boldsymbol{x}}_n^i} } \\ \vdots & & \vdots \\ {\dfrac{1}{m}\displaystyle\sum\limits_{i = 1}^m {\tilde {\boldsymbol{x}}_n^i\tilde{\boldsymbol{ x}}_1^i} }& \cdots &{\dfrac{1}{m}\displaystyle\sum\limits_{i = 1}^m {\tilde {\boldsymbol{x}}_n^i\tilde {\boldsymbol{x}}_n^i} } \end{array}} \right].$

${\boldsymbol{C}}$对角线的元素为样本方差,非对角线的元素为协方差. 降维优化的目标是将 $n$维数据降至 $k\left( {0 < k < n} \right)$维,方法是选择 $k$个单位正交基,使得数据在这组单位正交基的线性表示下两两协方差为 $0$,方差为最大值,即 ${\boldsymbol{C}}$为对称矩阵. 也就是找到能够使 ${\boldsymbol{X}}$相似对角化的过渡矩阵 ${\boldsymbol{P}}$,使得 ${\boldsymbol{X}}$进行基变换之后的矩阵 ${\boldsymbol{Y}} = {\boldsymbol{PX}}$满足 ${\boldsymbol{D}} = {\boldsymbol{Y}}{{\boldsymbol{Y}}^{\rm{T}}}/m$也是对角阵,这样 ${\boldsymbol{P}}$的前 $k$行就是所选取的正交基. 由于 ${\boldsymbol{C}}$为实对称矩阵,其不同特征值对应的特征向量相互正交,则有

$\begin{array}{*{20}{l}} {{{\boldsymbol{P}}^{\rm{T}}}{\boldsymbol{CP}} = {{\boldsymbol{P}}^{\rm{T}}}\dfrac{1}{m}{{\tilde {\boldsymbol{X}}}^{\rm{T}}}\tilde {\boldsymbol{X}}{\boldsymbol{P}} = \dfrac{1}{m}\left( {{{\boldsymbol{Y}}^{\rm{T}}}{\boldsymbol{Y}}} \right) = } \\ \quad\quad\quad {{\boldsymbol{\varLambda}} = \left[ {\begin{array}{*{20}{c}} {{\lambda _1}}& \cdots &0 \\ \vdots & & \vdots \\ 0& \cdots &{{\lambda _n}} \end{array}} \right].} \end{array}$

综上,所求的正交基为 ${\boldsymbol{P}}$,降维之后得到的数据为 ${\boldsymbol{Y}}$.

PCA问题可以归结为实对称矩阵的相似对角化问题,便于计算机实现. PCA降维之后,数据维度降低,在维度上去掉了横向冗余数据. 而纵向冗余数据体现在冗余样本中,如何去掉冗余样本,也是一个需要优化的方向. 采用聚类分析法[13]寻找样本数据的重心,提取具有代表性的关键样本,具体步骤如下。1)随机选取 $j$个样本作为聚类质心

${{\boldsymbol{g}}_1},{{\boldsymbol{g}}_2}, \cdots ,{{\boldsymbol{g}}_j} \in {\boldsymbol{X}}.$

2)对于每个样例,聚类中心 ${{\boldsymbol{c}}^{\left( i \right)}}$的计算准则为

${{\boldsymbol{c}}^{\left( i \right)}} = \arg \mathop {\min }\limits_j {\left\| {{{\boldsymbol{x}}^{\left( i \right)}} - {{\boldsymbol{g}}_j}} \right\|^2}.$

3)重新计算质心

${{\boldsymbol{g}}_j} = \dfrac{{\displaystyle\sum\nolimits_{i = 1}^n {\left\{ {{{\boldsymbol{c}}^{\left( i \right)}} = j} \right\}} {{\boldsymbol{x}}^{\left( i \right)}}}}{{\displaystyle\sum\nolimits_{i = 1}^n {1\left\{ {{{\boldsymbol{c}}^{\left( i \right)}} = j} \right\}} }}.$

重复上述3个步骤根据数据的分布特征将样本分为类间距离L不同的聚类,再依据一定的准则选取距离聚类中心 ${{\boldsymbol{c}}^{\left( i \right)}}$较近的样本,舍去聚类边缘的一些冗余样本点. 数据经过上述预处理之后,维度和样本数量减少,系统开销和运算复杂度降低,后续工作的处理效率提高.

1.3. SVM疾病分类模型

SVM是按照有监督学习的方式对传感器数据进行多元分类的广义分类器,可支持线性和非线性分类,其决策边界是对学习样本求解最大边距超平面(maximum-margin hyperplane)[14]. 与遵循经验风险最小化原则的人工神经网络等传统机器学习方法不同,SVM避免了过拟合、局部优化能力差、收敛慢等问题[15-16],其主要思想是用最大边距超平面将隐含不同疾病信息的生理数据按照疾病类型特征正确分类,达到疾病预测的效果. 假设样本空间中仅存在2种不同的疾病类型,传感器特征数据可以表示为

${{T}} = \left\{ {\left( {{{\boldsymbol{x}}_1},{y_1}} \right),\left( {{{\boldsymbol{x}}_2},{y_2}} \right), \cdots ,\left( {{{\boldsymbol{x}}_n},{y_n}} \right)} \right\},{{\boldsymbol{x}}_n} \in {\boldsymbol{X}}.$

式中: ${y_n} \in \left\{ { + 1, - 1} \right\}$是疾病类型标签,令 ${{\boldsymbol{w}}^{\rm{T}}}$为法向量, $b$为截距,则这2类隐含不同疾病信息的样本可由超平面

${{\boldsymbol{w}}^{\rm{T}}}{\boldsymbol{x}} + {{b}} = 0.$

一分为二,求出任意样本点到该超平面的距离

$d = \frac{{\left| {{{\boldsymbol{w}}^{\rm{T}}}{\boldsymbol{x}} + {{b}}} \right|}}{{\left\| {\boldsymbol{w}} \right\|}}.$

令超平面以上的点对应疾病标签为 ${y_n} = 1$,以下的点则对应 ${y_n} = - 1$. 定义函数间隔为

$\hat r = \frac{{{y_i}\left( {{{\boldsymbol{w}}^{\rm{T}}}{\boldsymbol{x}} + {{b}}} \right)}}{{\left\| {\boldsymbol{w}} \right\|}} = \frac{r}{{\left\| {\boldsymbol{w}} \right\|}};i = 1,2, \cdots ,n.$

SVM优化问题:需要找到由 ${\boldsymbol{w}},{{b}}$确定的超平面,使得最近的支持向量离此超平面的距离尽量大,即

$\left. {\begin{array}{*{20}{l}} \!\!\!\!{{\mathop {\max }\limits_{{\boldsymbol{w}}, {{b}}} \left( r \right);}} \\ \!\!\!\!\! {{\rm{s}}{\rm{.t}}.\;\hat r \geqslant r.} \end{array}{\rm{ }}} \!\!\!\right\} \Rightarrow \left. {\begin{array}{*{20}{l}} \!\!\!\!\! {\mathop {\max }\limits_{{\boldsymbol{w}}, {{b}}} \left( {\dfrac{r}{{\left\| {\boldsymbol{w}} \right\|}}} \right);} \\ {{\rm{s}}.{\rm{t}}.\;{y_i}\left( {{\boldsymbol{w}}{{\boldsymbol{x}}_i} + {{b}}} \right) \geqslant r;i = 1,2, \cdots ,n.} \end{array}}\!\!\!\!\!\! \right\}\\[-25pt] $

为了最大化间隔,只需要最大化 ${\left\| {\boldsymbol{w}} \right\|^{ - 1}}$,而这等价于最小化 ${\left\| {\boldsymbol{w}} \right\|^2}$,令 ${\boldsymbol{w}} = {{\boldsymbol{w}}_0}{{r}},{{b}} = {{{b}}_0}{{r}}$,式(14)等价于

$\left. {\begin{array}{*{20}{l}} {\mathop {\min }\limits_{{\boldsymbol{w}}, {{b}}} \left( {\dfrac{1}{2}{{\left\| {{{\boldsymbol{w}}_0}} \right\|}^2}} \right);} \\ {{\rm{s}}.{\rm{t}}.\;{y_i}\left( {{{\boldsymbol{w}}_0}{{\boldsymbol{x}}_i} + {{{b}}_0}} \right) \geqslant 1;i = 1,2, \cdots ,n.} \end{array}{\rm{ }}} \right\}$

根据拉格朗日乘子法变换得到式(15)的对偶问题

$\left. {\begin{array}{*{20}{l}} {\mathop {\min }\limits_\alpha \displaystyle\sum\limits_{i = 1}^m {{\alpha _i} - \dfrac{1}{2}} \displaystyle\sum\limits_{i = 1}^m {\displaystyle\sum\limits_{j = 1}^m {{\alpha _i}{\alpha _j}{y_i}{y_j}{\boldsymbol{x}}_i^{\rm{T}}{{\boldsymbol{x}}_j};} } } \\ {{\rm{s}}.{\rm{t}}.{\rm{ }}\displaystyle\sum\limits_{i = 1}^m {{\alpha _i}{y_i} = 0} ;{\alpha _i} \geqslant 0,i = 1,2, \cdots ,n.} \end{array}{\rm{ }}} \right\}$

解出 ${\alpha _i}$之后再求出 ${{{b}}_0}$即可得到最优超平面

$f\left( {\boldsymbol{x}} \right) = {{\boldsymbol{w}}_0}^{\rm{T}}{\boldsymbol{x}} + {b_0} = \sum\limits_{i = 1}^m {{\alpha _i}{y_i}{\boldsymbol{x}}_i^{\rm{T}}{\boldsymbol{x}} + {{{b}}_0}} .$

式(16)、(17)成立的前提是满足KKT(Karush-Kuhn-Tucker)条件.

以上就是SVM疾病预测模型的线性求解过程. 在实际情况下,多传感器采集的生理数据一般是非线性分布的,且样本中可能存在多种疾病类型,对于此类非线性样本,须使用核函数(kernel function)将样本空间映射到核空间中进行求解[15],即用 $k\left( {{{\boldsymbol{x}}_i},{{\boldsymbol{x}}_j}} \right)$代替式(16)中的 ${\boldsymbol{x}}_i^{\rm{T}}{{\boldsymbol{x}}_j}$部分.

1.4. 疾病预测模型的参数寻优

影响SVM分类器预测效果的关键在于根据生理数据的特征选择合适的核函数模型及其相应的参数. 高斯核函数(RBF)是机器学习领域比较流行的核函数,其性能主要取决于 $c,g$参数[17]. 其中 $c$为惩罚系数,该参数取值过高容易出现过拟合,反之容易出现欠拟合,造成数据泛化能力变差; $g$为RBF的 $\gamma $参数,RBF形式为

${k_{{\rm{RBF}}}}\left( {{{\boldsymbol{x}}_i},{{\boldsymbol{x}}_j}} \right) = \exp \; \left[ { - \frac{{{\rm{d}}{{\left( {{{\boldsymbol{x}}_i},{{\boldsymbol{x}}_j}} \right)}^2}}}{{2{\sigma ^2}}}} \right] = \exp \left[ { - \gamma {\rm{d}}{{\left( {{{\boldsymbol{x}}_i},{{\boldsymbol{x}}_j}} \right)}^2}} \right].$

$g$参数决定原始数据映射到新的特征空间后的分布情况,其与支持向量个数成负相关,而支持向量个数直接影响算法的速度. 为了找到最优的 $c,g$参数,可以使用ABC算法进行参数寻优[18]. 该算法是Karaboga于2005年为了解决多变量参数优化问题提出的参数寻优算法[19],目前已广泛应用于包括图像处理、数值优化在内的多个领域[17, 20],该算法在多维数据处理中性能优于如粒子群优化 (particle swarm optimization, PSO)算法和遗传算法(genetic algorithm, GA)的其他启发式算法[17]. ABC-SVM疾病预测流程如图2所示. 首先,根据生理数据的特征,在一定范围内对 $c,g$进行取值;然后验证在取定的 $c$$g$组合下的疾病预测准确率;重复以上过程,直至最终获得准确率最高的 $c$$g$组合,确保模型在最优化参数的条件下工作以提高疾病分类预测的准确率.

图 2

图 2   SVM疾病预测模型的参数寻优流程图

Fig.2   Flow chart for parameter optimization of SVM disease prediction model


2. 实验分析

为了验证本文方法的有效性和准确性,实验数据使用2017年上海市某社区5061例覆盖从16~90岁各个年龄段居民的体检监测数据. 部分实验数据如表1所示. 为便于讨论,实验选择肾功能损伤、血脂异常、代谢综合征、糖尿病肾病4种常见疾病作为研究对象,对诊断预测模型进行有效性验证,表1中列出了8种与上述疾病密切相关的生理指标.

表 1   实验中用到的生理数据集(部分样本)

Tab.1  Physiological data set used in experiment (partial samples)

序号 性别 年龄/岁 CREA/
(μmol·L−1)
UA/
(μmol·L−1)
APOA/
(g·L−1)
APOB/
(g·L−1)
GLU/
(mmol·L−1)
LDL/
(mmol·L−1)
UREA/
(mmol·L−1)
CH/
(mmol·L−1)
注:肌酐(CREA),尿酸(UA),尿素(UREA),血糖(GLU),低密度脂蛋白胆固醇(LDL),载脂蛋白A1(APOA),载脂蛋白B(APOB),总胆固醇(CH).
1 65 66 261 1.34 0.79 4.9 2.92 5.7 4.81
2 61 45 282 1.25 0.76 4.7 3.18 5.4 4.77
3 59 63 419 1.37 0.97 4.6 3.04 4.9 4.82
4 53 60 274 1.46 1.04 10.7 2.21 4.6 3.93
5 63 89 294 1.38 0.90 4.7 1.48 6.2 4.79
6 76 69 401 1.57 0.66 5.0 2.47 5.8 4.38
$\vdots $ $\vdots $ $\vdots $ $\vdots $ $\vdots $ $\vdots $ $\vdots $ $\vdots $ $\vdots $ $\vdots $ $\vdots $

新窗口打开| 下载CSV


2.1. 样本编码

样本编码要求既可以方便地表示疾病类型,又能够很好地根据编码值确定样本所患疾病种类及其严重程度. 考虑到同一个样本中可能存在多种不同的疾病,为了方便计算机处理,先对疾病类型使用4位(bit)二进制进行编码(B1~B4分别代表糖尿病肾病、代谢综合征、血脂异常、肾功能损伤). 对于正常样本的编码值设为0x0,上述编码最多能够表示 ${2^4}{\rm{ = 16}}$种患病可能(即16进制0x0~0xF),5种代表性疾病组合的样本编码如表2所示.

表 2   5种代表性疾病组合的样本编码

Tab.2  Encoding of five representative diseases combinations in samples

样本编码 疾病类型
B4 B3 B2 B1
注:1表示样本患有该种疾病,0表示不患有该种疾病.
0x0 0 0 0 0
0x1 0 0 0 1
0x2 0 0 1 0
0x4 0 1 0 0
0x8 1 0 0 0

新窗口打开| 下载CSV


原始数据经过剔除异常点(关键数据缺失视为异常点)之后,使用t-SNE降维工具箱将8维的原始数据映射到2维空间可视化如图3所示. 图中,一共有10种颜色,分别代表10种不同的疾病组合D,蓝色代表正常样本(即编码值为0x0),红色代表该样本中同时患有表2中的4种疾病(即编码值为0xF). 色条从上到下颜色由蓝色到红色的渐变过程对应样本所患疾病种类逐渐增多,也可以直观地理解为颜色越暖则样本的健康状况就越差.

图 3

图 3   样本数据患病情况可视化

Fig.3   Visualization of illness in sample data


2.2. 数据特征提取

表1中从CREA~CH共8维数据作为 ${\boldsymbol{X}}$,并根据式(2)进行标准化,接着根据式(3)~(6)进行PCA处理,得到生理指标的各个特征主成分N及其贡献率如图4所示. 曲线表示前k个主成分的累计贡献率 $Q = \displaystyle\sum\nolimits_{k = 1}^n {{q_k}} ,\left( {k = 1,2, \cdots, n} \right)$${q_k}$为第 $k$个主成分的贡献率. 当前 $k$个主成分的累计贡献率 $Q$大于设定值时,可以认为,前k个主成分所包含的信息足以代表整组数据. 经计算可知前面6个主成分贡献率达到97.2%,因此,选择主成分1至主成分6基本能够包含样本的绝大部分信息.

图 4

图 4   生理指标中的主成分及其贡献率

Fig.4   Principal components and their contribution rate of physiological index


经过PCA处理后,数据维度降至6维,接着经聚类分析筛选出关键样本,可进一步提高抗干扰能力. 样本S的聚类分析树状图如图5所示. 为了更加直观地表达样本数据的分布规律,这里仅显示30个叶子节点(1个叶子节点可能对应多个样本点). 在树状图中可以清楚地观察到根据样本数据分布的特点,一共可以细分为5个聚类.

图 5

图 5   样本的聚类分析树状图

Fig.5   Cluster dendrogram generated from samples


聚类结果经过t-SNE降维可视化之后如图6所示,图中不同符号代表具有不同特征的聚类. 可以取定一个距离聚类中心 ${{\boldsymbol{c}}_i}\left( {i = 1,2, \cdots, 5} \right)$${r_i}( i = {1,2, \cdots, 5} )$的聚类半径,选取位于该半径内的样本点作为后续的实验数据,不在聚类半径内的点则视为冗余点舍去,最终共选取1598组生理数据.

图 6

图 6   样本的聚类结果可视化

Fig.6   Visualization of cluster analysis result from samples


在以上5类样本中,每类样本分别随机选取98%的数据作为训练样本S1,剩余2% 的数据作为测试样本S2,对模型进行检验,最终S1=1 569组,S2=29组.

2.3. 疾病诊断结果分析

为了更加直观地体现SVM在疾病分析方面的优越性,使用BP-NN预测作为对比,结果如图78所示. 在图7中,3种曲线分别表示BP-NN预测效果、SVM模型预测效果以及实际数据. 对比可以看出,SVM模型的预测效果最佳,准确率可以达到 ${\rm{75}}{\rm{.86\% (22/29)}}$,BP-NN的疾病预测效果较差,准确率仅为 $20.69\% {\rm{ }}\left( {6/29} \right)$. 图8分别展示了2种预测算法前 $n$个预测值的均方根误差(root mean square error, RMSE)

图 7

图 7   3种诊断模型预测效果对比

Fig.7   Comparison results of predictive effects among three diagnostic models


图 8

图 8   不同诊断模型的RMSE曲线

Fig.8   RMSE curves of different diagnostic models


式中: $\hat y$$y$分别为预测值和实际值. 由图8可以看出,在前面的样本中,SVM模型的eRMSE=0,由于后续出现的误检测中模型输出的疾病类型编码与实际的疾病类型编码差异较大导致了较高的RMSE,但这种情况在后面样本中的表现与BP-NN差别不大,这也从侧面反映了SVM参数寻优的重要性. 由于BP-NN映射的模糊性,导致网络输出的值域范围是连续的,无法准确输出具体样本编码,不适合应用于疾病的诊断分析中,而SVM可以输出离散且确定的值域,能够准确输出具体样本编码.

不同的 $c,g$参数对SVM疾病预测模型的影响如图9所示. 由图可以看出,对于同一个 $g$参数,预测结果的准确率η$c$参数的取值几乎没有关联,从整个区间来看,对于同一个 $c$参数,准确率随着 $g$参数的增大呈上升趋势,且曲线可能存在多个极值点,因此如何找到全局最优的极值点是模型优化的关键.

图 9

图 9   $c,g$参数对ABC-SVM预测准确率的影响

Fig.9   Influence of parameter $c,g$ on ABC-SVM prediction accuracy


经不同寻优算法优化后SVM疾病预测模型的预测效果如图10所示. 由图可以看出, PSO算法优化模型(PSO optimization, PSO-OPT)的疾病预测效果最差,综合准确率仅为 $13.79\% $,GA算法优化模型(GA optimization, GA-OPT)效果稍好,准确率为 $79.31\% $,ABC算法(ABC optimization, ABC-OPT)的优化效果最好,准确率为 $93.10\% {\rm{ }}$,基本能够对样本的疾病类型做出准确预测,且耗时t最短,效率最高. 最终结果如表3所示.

图 10

图 10   3种优化算法的寻优效果对比

Fig.10   Comparison of optimization effects among three optimization algorithms


表 3   不同参数寻优算法的优化效果

Tab.3  Optimization effects of different parameter optimization algorithms

寻优算法 $c$ $g$ t/s η
GA-OPT $89.72$ $12.36$ $555.70\;$ $79.31\% {\rm{ }}$( $23/29$)
PSO-OPT $40.69$ $16.77$ $872.06\;$ $13.79\% {\rm{ }}$( $4/29$)
ABC-OPT $89.76$ $91.77$ $138.10\;$ $93.10\% {\rm{ }}$( $27/29$)

新窗口打开| 下载CSV


不同疾病预测方法的RMSE比较如图11所示. 由图可以看出,经过优化之后的SVM模型eRMSE最低,优势较为明显.

图 11

图 11   不同疾病预测方法的RMSE比较

Fig.11   RMSE comparison among different disease prediction method


从疾病预测的精度 ${P}$、召回率 ${R}$、和F度量 ${F}$3个方面对比不同优化算法对不同疾病组合的预测效果,如表4所示. 表中

表 4   不同优化算法的疾病预测结果

Tab.4  Disease prediction results with different optimization algorithms

样本编码 ${P}$ ${R}$ ${F}$
ABC-SVM PSO-SVM GA-SVM ABC-SVM PSO-SVM GA-SVM ABC-SVM PSO-SVM GA-SVM
0x0 1 0 1 1 0 1 1 0 1
0x4 0.91 0 0.77 1 0 0.83 0.96 0 0.83
0x6 1 0 0.33 0.5 0 0.4 0.67 0 0.4
0xB 1 0 1 1 0 1 1 0 1
0xC 0 0 0 0 0 0 0 0 0
0xE 0.89 0 0.86 1 0 0.8 0.94 0 0.8
0xF 1 0.14 1 1 1 0.86 1 0.24 0.86

新窗口打开| 下载CSV


${P} = {C_{\rm{r}}}/\left( {{C_{\rm{r}}} + {C_{\rm{e}}}} \right).$

${R} = {C_{\rm{r}}}/{C_{\rm{t}}}.$

${F} = 2{P}{R}/\left( {{P} + {R}} \right).$

令DP表示测试样本中疾病预测结果的集合,DR则表示测试样本中实际的患病情况, ${C_{\rm{r}}}$${\rm{DP}} \cap {\rm{DR}}$中的样本编码数量, $C_{\rm{t}} $为DR中的元素数, ${C_{\rm{e}}}$为集合A( ${\rm{A}} \subset {\rm{DP}}$${\rm{A}} \not\subset {\rm{DR}}$)中的样本编码数量. 如表4所示,0x6代表同时患有血脂异常和代谢综合征的样本,针对该种疾病组合,ABC-SVM的 ${P}$${R}$${F}$分别为1、0.5、0.67,均优于其他算法,其余编码依此类推. 从 ${P}$${R}$${F}$这3个指标来看,ABC-SVM模型对应值均高于其他算法,可见该算法能较好地预测存在多种疾病组合的复杂情况.

3. 结 语

大多数疾病的产生、发展都遵循着其特有的演变规律,在这个过程中往往伴随着人体各项生理指标的变化. 通过理论建模,提出可应用于社区健康服务中的疾病预测方法,从日常生活的健康指标数据入手,自动分析潜在的健康问题,有利于及时了解人体健康状态并采取相应措施. 实验结果表明,SVM模型在疾病预测方面具有突出优势,且从准确率、耗时等方面来看,ABC算法在SVM疾病预测模型中的参数优化效果最为理想. 实验中,该方法对多种疾病识别的准确率达到93.10%,相较于传统SVM模型和BP-NN方法分别提高17.24%和72.41%,且能够减小RMSE,改善精度、召回率、F度量等评价指标,充分证明了该方法的有效性和准确性.

该方法可用严谨的数学模型描述,执行速度快,效率高,便于计算机实现,在提高人们生活质量和健康水平以及疾病预防方面具有广泛的应用前景和推广价值. 受限于目前经济发展水平、传感器技术、新材料及其制备工艺等客观因素,加上实际应用中疾病种类多样,致病机理复杂,使该方法的推广使用仍然存在一定困难. 计划开展的研究工作将围绕:1)改进传感器技术,降低生产成本让某些医疗检测仪器真正实现可穿戴化、价格平民化;2)提高疾病预测模型的预测精度和泛化能力.

参考文献

JIA M, YU W, ZHAI X, et al

Modeling and analysis of first aid command and dispatching system of cloud medical system

[J]. IEEE Access, 2019, 7: 168752- 168758

DOI:10.1109/ACCESS.2019.2954451      [本文引用: 1]

AHMADI H, ARJI G, SHAHMORADI L, et al

The application of internet of things in healthcare: a systematic literature review and classification

[J]. Universal Access in the Information Society, 2019, 18 (4): 837- 869

DOI:10.1007/s10209-018-0618-4      [本文引用: 1]

王磊, 孟濬

基于wavelet的一类脉搏信号疾病特征量化分析

[J]. 浙江大学学报: 工学版, 2012, 46 (10): 1866- 1871

URL     [本文引用: 1]

WANG Lei, MENG Jun

Quantitative analysis of disease features of a class of pulse signals based on wavelet

[J]. Journal of Zhejiang University: Engineering Science, 2012, 46 (10): 1866- 1871

URL     [本文引用: 1]

KAUR P, KUMAR R, KUMAR M

A healthcare monitoring system using random forest and internet of things (IoT)

[J]. Multimedia Tools and Applications, 2019, 78 (14): 19905- 19916

DOI:10.1007/s11042-019-7327-8      [本文引用: 1]

刘灿, 黄俊, 胡丹, 等

基于慢性病预测的老年人健康监护软件设计与实现

[J]. 信息通信, 2019, (2): 93- 96

URL     [本文引用: 1]

LIU Can, HUANG Jun, HU Dan, et al

Elderly health monitoring software based on chronic disease prediction design and implementation

[J]. Information and Communications, 2019, (2): 93- 96

URL     [本文引用: 1]

王哲, 李琳, 李丞, 等

基于机器学习方法的慢性阻塞性肺疾病分期预测

[J]. 中国数字医学, 2019, 14 (3): 38- 40

URL     [本文引用: 1]

WANG Zhe, LI Lin, LI Cheng, et al

Stage prediction of chronic obstructive pneumonia based on machine learning

[J]. China Digital Medicine, 2019, 14 (3): 38- 40

URL     [本文引用: 1]

MOHAN S, THIRUMALAI C, SRIVASTAVA G

Effective heart disease prediction using hybrid machine learning techniques

[J]. IEEE Access, 2019, 7: 81542- 81554

DOI:10.1109/ACCESS.2019.2923707      [本文引用: 1]

CHEN M, HAO Y, HWANG K, et al

Disease prediction by machine learning over big data from healthcare communities

[J]. IEEE Access, 2017, 5: 8869- 8879

DOI:10.1109/ACCESS.2017.2694446      [本文引用: 1]

莫太平, 王彦丽

基于脉象分析的亚健康状态识别

[J]. 桂林电子科技大学学报, 2017, 37 (6): 442- 446

DOI:10.3969/j.issn.1673-808X.2017.06.003      [本文引用: 1]

MO Tai-ping, WANG Yan-li

Sub-health identification based on pulse analysis

[J]. Journal of Guilin University of Electronic Technology, 2017, 37 (6): 442- 446

DOI:10.3969/j.issn.1673-808X.2017.06.003      [本文引用: 1]

LAPLANTE P A, LAPLANTE N

The internet of things in healthcare potential applications and challenges

[J]. IT Professional, 2016, 18 (3): 2- 4

DOI:10.1109/MITP.2016.42      [本文引用: 1]

TADIĆ L, BONACCI O, BRLEKOVIĆ T

An example of principal component analysis application on climate change assessment

[J]. Theoretical and Applied Climatology, 2019, 138 (1-2): 1049- 1062

DOI:10.1007/s00704-019-02887-9      [本文引用: 1]

HESAMIAN G, AKBARI M G

Principal component analysis based on intuitionistic fuzzy random variables

[J]. Computational and Applied Mathematics, 2019, 38 (4): 1- 14

DOI:10.1007/s40314-019-0939-9      [本文引用: 1]

YU Z, CHEN H, YOU J, et al

Adaptive fuzzy consensus clustering framework for clustering analysis of cancer data

[J]. IEEE/ACM Transactions on Computational Biology and Bioinformatics, 2015, 12 (4): 887- 901

DOI:10.1109/TCBB.2014.2359433      [本文引用: 1]

KANDUKURI S T, SENANYAKA J S L, HUYNH V K, et al

A two-stage fault detection and classification scheme for electrical pitch drives in offshore wind farms using support vector machine

[J]. IEEE Transactions on Industry Applications, 2019, 55 (5): 5109- 5118

DOI:10.1109/TIA.2019.2924866      [本文引用: 1]

GARCÍA NIETO P J, COMBARRO E F, DEL COZ DÍAZ J J, et al

A SVM-based regression model to study the air quality at local scale in Oviedo urban area (Northern Spain): a case study

[J]. Applied Mathematics and Computation, 2013, 219 (17): 8923- 8937

DOI:10.1016/j.amc.2013.03.018      [本文引用: 2]

LU W, WANG W

Potential assessment of the "support vector machine" method in forecasting ambient air pollutant trends

[J]. Chemosphere, 2005, 59 (5): 693- 701

DOI:10.1016/j.chemosphere.2004.10.032      [本文引用: 1]

WANG Y, NI Y, LU S, et al

Remaining useful life prediction of lithium-ion batteries using support vector regression optimized by artificial bee colony

[J]. IEEE Transactions on Vehicular Technology, 2019, 68 (10): 9543- 9553

DOI:10.1109/TVT.2019.2932605      [本文引用: 3]

YANG D, LIU Y, LI S, et al

Gear fault diagnosis based on support vector machine optimized by artificial bee colony algorithm

[J]. Mechanism and Machine Theory, 2015, 90: 219- 229

DOI:10.1016/j.mechmachtheory.2015.03.013      [本文引用: 1]

WANG X, XU X, SHENG Q Z, et al

Novel artificial bee colony algorithms for QoS-aware service selection

[J]. IEEE Transactions on Services Computing, 2019, 12 (2): 247- 261

DOI:10.1109/TSC.2016.2612663      [本文引用: 1]

MA L, WANG X, HUANG M, et al

Two-level master–slave RFID networks planning via hybrid multiobjective artificial bee colony optimizer

[J]. IEEE Transactions on Systems, Man, and Cybernetics: Systems, 2019, 49 (5): 861- 880

DOI:10.1109/TSMC.2017.2723483      [本文引用: 1]

/