APP下载

基于感知机算法的心脏病预测问题

2019-03-21廉翔博

现代商贸工业 2019年7期
关键词:机器学习数据分析

廉翔博

摘要:近年来,随着科技的发展和时代的进步,人们的生活水平在不断的提高,而人们日常不规律的生活方式和习惯对身体造成的影响却逐渐显现,其中,最为突出的就是心血管类疾病,该病发病率和死亡率都在逐渐增高。由于医疗过程的复杂性,仅通过人工的提取、整合及诊断是否得心脏病,不仅过程繁琐复杂,而且准确率和效率方面都不能达到很好的效果。为了解决此类问题,讨论是否可以通过计算机来辅助进行心脏病的预测工作,于是这里利用了机器学习的感知机算法来完成,通过分析受测人心血管病相关特征,利用感知机模型分析实现对该疾病是否发生来最终完成辅助诊断,此研究能够给人工诊断提供更高效更便捷的辅助预测,使其预测成功概率提高,增强患者存活率。

关键词:机器学习;感知机;心脏病预测;数据分析

中图分类号:F24文献标识码:Adoi:10.19311/j.cnki.1672-3198.2019.07.040

1引言

1.1心脏病预测的重要性

随着社会城市化的深入,居民不健康生活方式的流向,我国心血管病(CVD)越来越多,并且在低收入人群和低龄人群中最为明显。根据统计结果,未来10年我国心血管病患者数量将继续快速增长,我国心血管病患者数量将继续上升。目前,心血管疾病死亡仍是城乡居民死亡的主要原因,农村占45.01%,城市占42.61%,CVD患者数为2亿9000万,高于肿瘤及其他疾病。

CVD患病人数的增加,致使我国心脑血管病住院费用年均增速远高于国内生产总值增速,是我国负担加重。影响了经济发展和社会进步以及广大群众的心理。如何及时预测出心脏病加以治疗这是一个迫在眉睫的问题。而如今传统的六种心脏病检测技术有着各种弊端导致心脏病预测不能有效的进行,CVD人数不能合理的控制在一定范围内。所以推陈出新,利用新的技术来预测心脏病是极为重要的。

1.2心脏病检测技术现状

当前心脏病常用的检测方法共有四种。心电图检测,多排CT检查,ECT检测,超声心动图。

心电图(ECG)时一种经过胸腔的,以时间为单位记录心脏生理活动的一项技术。它的原理是通过记录心肌细胞去极化后在皮肤表面记录小的电变化。然后被记录成心电图,心电图检测能检测心律失常,是诊断冠心病的主要方法。他的优点在于简单经济,但这也导致了他的检测得不精准性。比如检测结果正常的患者却在临床时发生了猝死现象常常发生。

多排CT检查主要用于先天性心脏病的检测,是无创性检查。它的优点在于能清晰地显示冠脉血管病的情况。并且还有着扫描速度优势,完成整个心脏仅需5~10s。更高的图像分辨率(0.3MM),但同样,此方法也有着缺点,对细微的血管并不敏感,并且对病人的心率要求高。

ECT檢测,及放射性核素检查,其原理是把放射性药物注射入人体,在代谢之后,探测脏器内,病变组织和正常组织之间的浓度差异,然后通过计算机在成像。优点为可以了解到心肌梗塞的范围以及是否具有可逆性。缺点为费用昂贵,不能早期发现病变。

超声心动图是利用物理学上的超声测距原理检查心脏和大血管的解剖结构和状态的一种技术。显示的是状态和时间的曲线,这个曲线即为超声心动图。超声心动图主要用于了解心室壁的动作心脏瓣膜活动情况等,费用较低。缺点为,对冠脉准确性较低,也不能早期发现病变。

1.3论文创新点

与现有的四种检测方法不同的是本文采用的感知机预测系统。感知机预测系统实际上使用的是机器学习。通过现有的数据构建一个模型,然后利用这个模型再预测出病人是否会得心脏病。就未来而言,机器学习取代传统是一个趋势,但目前来说,机器学习与传统检测方法的准确率不分伯仲。所以本文是用机器学习来辅助传统检测,使其准确率更高,使效率最大化,这是本文的创新点。

2机器学习概述及数据分析

2.1机器学习

本文的心脏病预测系统需要用到机器学习,它是人工智能的一个主要分支,同时也是一门多领域交叉学科,涉及概率论,统计学等。它是用来使人工智能模拟人类学习的重要手段。机器学习主要分为两个方面:第一个是“训练”,即通过各种现有的“学习资料”使它产生经验,建构模型。比如之前的围棋比赛中,Alphago就是事先通过各种棋谱和对手的数据信息进行学习训练。根据训练所需要学习资料数量的不同,会导致后来的“决策”准确率不同。第二个便是“决策”,决策是利用“训练”已经构建好的模型进行实时计算,如果说“训练”是长期的学习过程,那么“决策”就是考场上的现场发挥。比如Alphago已经训练完成,在和人类比赛时,就是把实时获得的数据通过模型“决策”出对应的数据,比如该走哪一步之类的。“决策”的正确率都由“训练”所构建的模型决定。

比如已有数据X1和对应的一个数据Y1经过训练后可以得到一个函数模型,然后再导入模拟的数据X2即可通过该模型进行决策得到对应数据Y2。而交叉验证是用来判断分类器性能的一种统计学方法,原理为将已有的一批数据集分为两个子集,分别是训练集跟测试集 。训练集用来建立模型,测试集用来测试该模型的精准度。训练集内元素的数量要大于测试集的元素,较为常见的为七三分、八二分等。要求训练集和测试集要做到均匀分配,但一般很难做到彻底均匀,所以经常用的是随机分配。在学习各种复杂度不同的模型时,选择测试集具有最小误差、最大正确率的模型,即分类正确的样本在测试集中得所占比例。

2.2数据收集与分析

心脏病数据集(部分)如表1所示。

3利用感知机进行建模

3.1感知机模型

感知机模型原理为使用训练集训练模型,得到一个分类效果最好的超平面。超平面是平面中的直线,空间中的平面的推广,即维度大于三的n维空间。超平面的方程为:W1*X1+W2*X2+…+WN*XN+B=0。

感知机模型就是f(X)=sign(W·X+B),其中sign是符号函数。每一个感知机模型,都对应着一个超平面w·X+b=0,这个超平面的参数是(w,b)。其中W为权重(WEIGHT),b为偏置(BIAS)。

把超平面方程拆开,即为W1*X1+W2*X2+…+WN*XN +B=0,每一个向量X都对应一个权重W。因为一个感知机模型需要输入许多的元素,因此你还要权衡每个元素来做出决策。比如到休息时间了,一共有三个元素决定你休不休息。分别是“饿不饿?”“论文写没写完?”“困不困?”我们用X1、X2、X3这三个量来表示这三个元素。如果饿,那么X1赋值0,如果不饿赋值1。如果困,那么X3赋值0,不困X3赋值1。同样得,如果论文没写完,那么X2就赋值1,反之为0。

但是每一个元素的权重是不同的,比如论文的重要性要远大于饿不饿与困不困。所以我们设置W2为5,其余W1W2设置为1,然后参数B设置为- 4。那么这样的话不管饿不饿还是困不困,只要论文没写完,那么最终结果都大于0,即都在超平面之上。这时候我们就可以把输出分为两类:一个是f(X)>0;另一个是f(X)<0。

如果有训练集中某个点(XI,YI),使得YI(W*XI+B)<0,则称该超平面W*X+B=0对该点分类失败,此点为误分类点。因为YI与(W*XI+B)的符号是相等的,所以他们的乘积应该恒大于0,所以当乘积出现负值时,此点即成为误分类点。

想要确切了解该模型分类效果的好坏,就得知道误分类点的值,通过值的大小来判断。其中误分类点到超平面的距离公平为:,由此就可以得到损失函数的定义如下:

此函数表示所有误分类点到超平面距离的和。函数值越大,则代表分类越失败,由于X是已定的,因此我们只需要反复调试w和b的值以使函数值最小即可。当函数L达到最小值时,此时的参数w和b就是最理想的感知机模型。

3.2运行结果分析

寻找到感知机模型之后,便要代入数据进行初步预测,然而初步预测结果并不理想。在交叉验证的处理下,预测率屡次在0.6左右徘徊,没有达到预期效果。其中最好的一次也仅仅达到0.623,因此我们必须寻找到原因然后对数据进行调整。首当其冲的自然是数据集不够。我们这个心脏病数据集的总数量仅为303个数据,数据集少,特征少带来的便是误差大,分析结果有误,并且容易发生欠拟合,因此我们我们要对数据集进行扩充。第二个原因便是没有对数据集进行预处理。

比如性别和静止血压的特征差距很大,一个仅为个位,一个已经在百位以上。差距太大,带来的便是出错率较高,所以我们要对这些数据进行优化处理,使他们容易被机器学习分析。

3.3系统优化处理

基于系统不太理想的预测效果,这里系统优化处理主要是进行数据预处理,有两种:一是归一化;二是标准化。

归一化是指把所有数据进行线性变化把数据映射到[0,1]区间内。归一化有两个好处。

一是提升模型的收敛速度。如性别的取值为0-1,而静止血压的取值为1-200,假如只有这两个特征,对其进行优化时,会得到一个窄长的椭圆形,导致在梯度下降时,梯度的方向为垂直等高线的方向而走之字形路线,这样会使迭代很慢,相比之下,归一化后的迭代就会很快。

二是提升模型的精度。归一化的另一好处是提高精度,这在涉及到一些距离计算的算法时效果显著,比如前文提到的计算距离,年龄的取值范围比较小,涉及到距离计算时其对结果的影响远比静止血压带来的小,所以这就会造成精度的损失。所以归一化很有必要,调整各个权重,他可以让各个特征对结果做出的贡献相同。

图2展示的便是进行标准化优化处理之后的结果,虽然数据集不变,但是准确率已经提高到了0.836,倘若数据集进一步扩增,预测成功率还将会更高,最终接近1。

图3展示的是进行归一化处理后的结果,当把特征都映射到(0,1)区间后,他的准确率也是大幅度提高,达到了0.902。并且经过多次测试之后,它的准确率已经可以稳固在0.9左右。可见对数据进行系统优化处理是非常有必要的一步。

最终经过反复的调试感知机算法的预测率已经远高于人工预测率,感知机辅助人工进行预测已经初步成功。

4结语

随着时代的发展,科技的进步。人工智能走进家门,迈入各个岗位是必然趋势,代替人类工作,成为新的劳动力。而利用感知机的机器学习来辅助傳统心脏病检测也仅仅只是迈了半步。人工智能还在发展,最后是否会出现真正像人类一样的存在仍充满未知,路还很长,我们还在继续。

参考文献

[1]叶雯,刘美南,陈晓宏.感知器算法在台风风暴潮灾情等级评估中的应用[J].中山大学学报(自然科学版),2004,(02):117-120.

[2]李恬,袁宇宾,李波.基于感知器算法的网络拥塞控制研究[J].计算机工程与设计,2009,30(07):1635-1638.

[3]王娟,王翰虎,陈梅.基于模糊聚类循环迭代模型的心脏病预测方法[J].郑州大学学报(理学版),2007,(04):137-140.

[4]李会军,季刚,马增良,等.一种基于多层感知机网络的预测控制方法[C].中国控制与决策学术年会论文集.北京:中国科学院自动化研究所,2007:151-154.

猜你喜欢

机器学习数据分析
前缀字母为特征在维吾尔语文本情感分类中的研究
浅析大数据时代对企业营销模式的影响
基于支持向量机的金融数据分析研究