方克邦 张云华
摘要:为避免诊断结果受医生潜意识和自身知识不全面等因素干扰而造成误判,提高医生诊断准确性,基于PCA-C4.5算法设计一款高血压预诊系统。采用PCA算法把可能具有相关性的高维变量变成线性无关的低维变量;对数据属性缺失问题通过决策树处理属性值缺失样本,对预处理后的数据特征值进行训练和学习生成决策树。实验结果表明,基于PCA-C4.5算法的分类准确率平均达到了85.46%,相较传统C4.5算法提高了约1.27%。该系统不仅能够辅助医护人员进行高血压诊断,还可为用户自诊提供支持。
关键词:PCA算法;高血压诊断;决策树;预诊系统
DOI: 10. 11907/rjdk.191744
开放科学(资源服务)标识码(OSID):
中图分类号:TP319
文献标识码:A
文章编号:1672-7800(2020)004-0164-05
Hypertension Pre-diagnosis System Based on PCA-C4.5 Algorithm
FANG Ke-bang, ZHANG Yun-hua
(School 0f Information , Zhejiang kSci- Tech Univer.sity , Hangzhou 310018.Ch.ina )Abstract: In order to avoid the misjudgment caused by the doctors ' subconscious and incomplete kno,,-ledge, and improve the accura-cy of doctor' s diagnosis, a pre-diagnosis sy stem for hypertension was designed based on PCA-C4.5 algorithm. This sy stem uses thePCA algorithiu to turn the high-dimensional variables that would be related into linear-independent low-dimensional variahles. For theproblem of missing data attributes. the missing samples of the attribute values were processed by the decision tree. and the characteris-tics of' the preprocessed data were processed. Values are trained and learned to generate decision trees. The experimental results showthat the average classification accuracy rate based on PCA-C4.5 algorithm reached 85.46c7e . u-hich u-as ahout l.27% higher than thetraditional C4.5 algorithm. The pre-diagnosis system based on this design can not only assist medical staff' in the diagnosis of hyperten-sion . but also provide effective self-diagnosis f'or users.Key Words : PCA algorithm ; hy pertension ; decision tree ; pre-diagnosis system
O 引言
高血壓是世界上最常见的心血管疾病,也是最大的流行病之一,我国有大量的高血压患者…。高血压常引起心、脑、肾等脏器并发症,严重危害人类健康。提高对高血压病的认识,对早期预防、及时治疗有极其重要意义。根据2017年统计,我国高血压患病人口已超过2.7亿,而且每年还有大量新增患者[2]。现代医疗数据呈现爆炸式增长,而数据多以分散、不连续的形式出现[3],人工阅读根本无法满足需求。若能应用现代计算机技术及相关专业知识构建一套系统供医生和患者使用,无疑会带来很大便利,提高诊断效率和准确率。
数据处理需要建立在完备的数据上,但在数据整理收集过程中很难避免缺失和维数较高等问题[4-5],所以在进行分析之前,必须对高维数据进行降维处理。以前对数据处理时一般存在数据丢失严重或降维不彻底等缺陷,导致分类结果不准确[5]。通过PCA算法,可以把高维数据降成低维数据,而且新的低维数据集会尽可能保留原始数据的变量[4],这使得后面的分析更准确。将预处理后的数据进行决策树构建,达到分类预测目的。基于此,设计一款高血压预诊分析系统,以有效辅助医疗诊断。
1 数据降维处理
I.1 PCA算法原理
主成分分析( Principal Component Analvsi,PCA)是Pear-son[5]在1901年提出、后来自Hotelling在1933年加以发展的一种多变量统计方法[6],是一种探索高维数据结构的技术,也是一种较常用的降维技术。PCA的主要思想是将n维特征映射到k维上,k维全新的正交特征也称为主成分,是在原有n维特征基础上重新构造出来的k维特征。在PCA中,数据从原来的坐标系转换到新的坐标系,新的坐标系选择与数据本身密切相关[7]。第一个新坐标轴选择原始数据中方差最大的方向,第二个新坐标轴选择和第一个坐标轴正交且具有最大方差的方向[8]。该过程一直重复,重复次数为原始数据中的特征数目。大部分方差都包含在最前面的几个新坐标轴中。因此,可以忽略包含方差几乎为0的特征维度,由此实现对数据的降维[9],见图1。
主成分分析(PCA)算法是经典的线性降维技术,算法简单,具有无线性误差、无参数限制等优点[10]。
1.2 PCA算法步骤
假定有n个病人样本,每个样本共有p个影响因素,构成一个nXp阶的疾病数据矩阵:
由于电子病历或其它收集到的高血压病人高危致病因素P较多,所以在P维空间中考察问题比较复杂,为克服这一困难就需要进行降维处理,即用较少的几个综合指标代替原来较多的变量指标。如将年龄阶段离散化,分为青年、中年、老年3个阶段;熬夜程度分为轻度和重度,这样可以用较少的综合指标尽量多地反映信息。
读人如式(1)的X矩阵。根据式(2):
计算出各个病人样本与样本均值差的平方和均值,即方差:
根据式(3)度量两个变量线性相关性程度,即协方差。选取协方差和方差较好的样本数据,再计算特征值和特征向量。将计算得到的结果按值大小排序,保留需要的样本个数用于决策树。PCA算法流程如图2所示。
2 决策树C4.5算法
分类技术是数据挖掘领域一种非常重要的研究方法[11]。决策树技术是数据挖掘的重要分支,由于其具有简单直观、易于理解、分类效率高等特点[12]而被广泛应用。C4.5算法构造决策树时选择分支节点属性的依据是信息增益率[13]。ID3算法中节点属性的选择标准是信息增益大小。因为有较多取值的属性具有较大的信息增益特点,ID3算法节点属性的选择侧重于取值较多的属性[14]。C4.5算法以信息增益率为属性节点的选择依据,克服了ID3算法倾向选择取值较多属性的不足[15]。
2.1 C4.5算法处理过程
由于预处理后得到的数据集中属性值不大,所以本文采用一个阈值,当缺失值超过样本属性总属性值的2/3时则舍弃,剩下的缺失数据根据已经存在的属性值列出方程,根据已知求出未知。
数据降维时对维数有一定要求,降低的维数越少,原始数据就保留得越好,所以本文结合决策树算法使分类效果达到最优。预处理得到的数据不仅具有离散值还具有连续值。具有连续型属性[16]的数据需要离散化处理。进行离散化数据预处理后进行根节点属性选择。计算数据集中所有属性的信息增益率,选择其中的最大值属性作为根节点属性。
算法相关概念定义如下:
定义1:信息熵。设S是含有n个训练样本的数据集。信息熵计算公式为:
其中m为类别数,P,是类别i 出现的概率。信息熵越大,不确定性就越大。
定义2:信息增益。对于数据集S中A的信息增益为:
其中A的取值为a.,a:,a,…,信息增益可以衡量信息的混乱度和复杂度。
定义3:信息增益率。
信息增益率使用“分裂信息”值将信息增益规范化[17-18]。
在以上基本概念的基础上构建决策树基本步骤:①根据基本定义分别计算出训练数据集的信息熵、信息增益以及信息增益率。通过对这些值进行比较后进入下一步操作;②数据集中的数据不仅有连续数据还有离散数据,由步骤①计算出来的信息增益确定节点属性,然后根据节点属性的不同建立分支,对于分支中的子数据集同样根据这样的规则建立新的分支,由此构建决策树;③获取决策规则进行分类预测。根据各分支上属性的取值获取决策规则,新数据集根据决策规则进行分类预测。
通过PCA降维得到的数据是降序排序的[19],这样在C4.5算法中可以省略计算信息增益时的多次顺序查找,提高效率,节省时间。
根据上述模型进行实验数据分析。表l是统计出来的简要信息示例,用表中的年龄、是否运动、熬夜程度、体重等数据属性分析是否患病。
由以上简要数据属性表构建決策树实例,步骤如下:
(1)根据公式(4)计算训练实例所选属性的信息熵:
I=一(8/14)log(8/14)-(6/14)log(6/14) =0.76hit
(2)按照公式(5)求属性的信息增益:Entmpy(青年)=一(3/4 )log( 3/4)一(1/4)log(1/4)=0.19hit同理求出Entropy(中年)=0.2lbit、Entropy(老年)=0.09 Gain(年龄)=1-(4/14)* Entropy(青年)-( 5/14)* Entropy
(中年)-(5/14)* Entropy(老年)=0.146bit
(3)根据公式(6)计算属性增益率:
I(年龄)=一(4/14)log( 4/14)-(5/14)log(5/14)-
(5/14)log( 5/14=1.577hit
计算出年龄的信息增益率为:gainratio(年龄)=0.146/1.577=0.667。同理,其它属性的信息增益率为gainratio(运动)=0.436、gainratio(熬夜)=0.376、gainratio(体重)=0.154。
根据计算出的各属性信息增益率,选取最大的年龄信息增益率作为根节点,再根据不同节点属性建立分支。对于各分支内的数据集,采用递归方式计算每个分支内属性的信息增益率。根据计算的信息增益率选择属性20‘,构建决策树,如图3所示。
通过处理得到的数据在构建决策树时省去了很多无意义的属性数据,提高了决策树的构建效率。
2.2算法分析与对比
实验环境为:CPU Intel(R)Core(TM) i5-2450M CPU@2.50GHz.8G内存,120G SSD固态硬盘,Windowsl0专业版操作系统。选取UCI标准数据库中的医疗相关数据集。表2是所选数据集的基本信息。在相同实验环境下进行对比试验。为了方便,将改进的算法记为C4.5PCA,对比算法名称不作修改。表3分别列出了实验的分类准确率和分类时间对比结果。为了避免过度拟合,实验采用10折交叉验证方法,其中的训练数据集从每个数据集中随机选取80%的样本,剩下的20%用于测试算法的分类性能。
通过表3的实验结果分析可知,本文提出的新算法模型分类准确率比传统C4.5算法得到了提高,算法性能得到了提升。
3高血压预诊系统设计
3.1 系统总体设计
本系统以Java语言为主编写,以vue-element为前端框架,后台在业务处理上使用微服务框架Spring Boot、MvSQL关系型数据库以及作为缓存的Redis等[21]。
从高血压数据集选取年龄、是否运动、熬夜程度、遗传、体重等因素,将以上因素根据数据类型分别进行布尔值标记或数字化标记。将这些数据整理后加人事务数据库,便于后续挖掘。
登陆系统时首先进行身份权限认证,通过后进人系统。如果是医生,只需输入病人症状就可判断病人的高血压病是否严重,然后对症治疗。管理员则负责对系统进行维护、权限设置、数据整理等工作。如果数据出入很大则要删除,以保证系统时刻处于正常运行状态。普通用户根据白己的实际情况在系统中录入数据,根据分析结果随时关注身体状况。无论以何种身份使用系统,在录入数据时都会进行录入数据验证,如果非法则不予通过并返回上一步,合法则进行下一步或保存。
前台页面采用时下比较热门的elementUI设计,整个系统页面美观大方,操作方便,没有复杂的使用逻辑,采用消息提示的形式实时提示操作步骤状态,分析结果页面采用饼图和柱状图直观展示属性因素对健康的影响,分析结果及建议一目了然。
系统设计开发采用前后端分离。前端通过调用后台接口实现前后台通信,将后台处理的数据展示出来。后台的分布式微服务框架分为网关层、服务代理层、具体服务层。网关层是统一请求人口,处理权限认证和负载均衡等问题,并向外提供RESTFul API;服务代理层提高系统扩展性和可复用性,抽取公用服务接口,由代理将请求路由至具体服务;具体服务层实现数据处理、分析、挖掘等核心功能。
数据库简要信息如表4所示。
3.2系统使用页面及分析结果
患者信息管理系统数据管理页面主要用于用户信息管理和分析。具体的用户数据以表格形式展现在页面上,包括数据唯一标识符、姓名、年龄、性别、电话、创建时间等基础信息以及数据是否已分析的状态信息,另外支持数据新增、修改、删除、查询等操作。数据管理页面最重要的功能是可对勾选的数据进行一键分析,得到数据分析结果并在数据分析结果页面上展示。
当输入患者信息后分析结果如图5所示,分析结果页面包括患者基本信息、分析结果、信息提示等部分。
系统将基本信息及症状属性(属性个数不限)录入后,可点击一键分析进行数据分析,这时系统将白动判断数据录入是否有效。若有效则进入分析步骤,无效则不进入分析并提示原因。当进入分析步骤并完成分析后,用户状态将由初始录入完成时的待分析变为已完成状态,这时可到分析结果管理页面查看分析结果,或者点击导出分析结果PDF报告。对获取的数据进行分析后得到的结果如图6所示。显示结果与真实的医学诊断结果一致,表明系统具有实用价值,可有效辅助医生工作和病人白查。
4 结语
针对医疗数据分类准确率不高等问题,本文在进行数据分析之前,首先利用PCA算法对数据进行降维,通过设置合理的阈值将数据降到合理的维数,得到质量较高的数据。然后利用C4.5算法构建决策树,最终对数据进行分类。对比实验表明,基于PCA决策树分类算法的分类准确率得到提高。本文设计的高血压疾病诊疗系统用于辅助医生诊断,帮助患者日常白查、预防、保健,应用效果较好。在后续研究中将继续对分类算法准确率及分类时间进行优化,将诊疗系统应用于更多疾病诊断。
參考文献:
[1]杨焕峥,杨国华,徐玲基于比值算法的物联网数字血压计系统设计[J]柳州职业技术学院学报,2019,19(1):76-82
[2]孙雪松,王晓丽,施天行,等我国高血压病人就医行为研究现状与启示[J].中国数字医学,2018,13(6):37-39.
[3]王尚哲,张云华基于ABC_NB的慢性病诊断分类研究[J].计算机测量与控制,2017(11):202-205.
[4]ZHANG T,CHEN W Z,LI M Y.Classification of inter-ictal and ictaleegs using multi-basis mndwpt, dimensionalitv reduction algorithmsand LS-SVM:A comparative studv [J]. Biomedical Signal Prncessingand Control, 2019(47): 240-251
[5]谢霖铨,毕永朋,廖龙龙.基于PCA的近邻均值填补优化算法[j].软件导刊,2018,17(6):67-69
[6]李珩,武雪芳,基于人工智能算法的入侵检测技术研究[J].消费电子,2013( 22):85-86.
[7] 魏汝哲,王剑平,付萍,等.基于PCA挖掘的SLE疾病的数据相关性研究[J].软件,2017(12):95-97
[8]ZHAO X W,GLO J,NIE F P. et al. Joint principal component anddiscriminant analvsis fnr dimensionalitv reduction[J]. IEEE Transac-tions on Neural Networks and Learning Systems 2019(1):1-12
[9]陆超.PCA方法的运动轨迹检测算法研究[J].计算机技术与发展,2017. 27(5):179-182.
[10]李蝉娟.高维数据降维处理关键技术研究[D].成都:电子科技大学,2017.
[II]陈杰,乌春学决策树C4.5算法改进与应用[J].软件导刊,2018,17(10):88-92
[12]HAN L, LI W J,SL Z. An assertive reasoning method for emergency
response management based on knowledge elements C4.5 decision
tree[J]. Expert SystemsWith Applic:ations. 2019(9): 122-131.
[13]THONGSOOK A. NL NTHAWARASILP T. KRAYPET P C4.5 deci-sion tree against neural network on gait phase recognition for lowerlimp exoskeleton[C] Chulalongkorn Univ. Bangkok, THAILAND:lst International Symposium on Instrumentation, Control. ArtificialIntelligence, and Robotics(ICA-SYMP), 2019: 69-72.
[14]SUZAN K S,EFEhrDI N A fuzzv id3 induction for linguistic datasets[J] International Journal of Intelligent Systems. 2018,33(4):931-942
[15]HAO H. CHEN T M, LU J,et al. The research and anah'sis in deci-sion tree algorithm hased on c4.5algorithm[C].Chongqing: The 3rdIEEE Advanced Infnrmation Technology, Electronic and AutomationCnntrol Conference( IAEAC). 2018
[16]王志春,刘丽娜.一种改进的C4.5决策树算法[J].电子技术与软件工程,2016(9):182-183.
[17]BUDIMAN E. HAVILUDDIl\r, DENGAN N,et al. Performance of de-cision tree c4.5 algorithm in student academic evaluation[C].Inter-national Conference on Computational Scienc.e and Technology.Springer, Singapore, 2017.
[18]陈杰,邬春学.决策树C4.5算法改进与应用[J].软件导刊,2018,17(10):88-92
[19]WU C,YLE J, WANG L. et al. Detection and clansification of reces-sive weakness in superbuck cr)nrerter based on wpd-pca and prnba-bilistic neural network[J]Electrnnics, 2019(8):290-297.
[20]黄秀霞,孙力.基于属性依赖度计算和PCA的C4.5算法[J]传感器与微系统,2017. 36(1):131-134
[21]张冲,张云华.基于改进Aprinri算法的糖尿病预诊系统[J]计算机系统应用,2019. 28(2):94-100
(责任编辑:杜能钢)
收稿日期:2019-05-22
作者简介:方克邦(1994-),男,浙江理工大学信息学院硕士研究生,研究方向为智能信息处理;张云华(1965-),男,博士,浙江理工大
学信息學院教授、硕士生导师,研究方向为智能信息处理、模式识别。本文通讯作者:方克邦。