葛广为,王元亮
(云南财经大学信息学院,昆明 650221)
支持向量机在心脏病数据分析中的应用
葛广为,王元亮
(云南财经大学信息学院,昆明 650221)
以实际医疗数据为应用对象,运用支持向量机分类器进行实验。并与使用K近邻法、决策树的结果进行比较。结果表明支持向量机有较高的敏感度、精确度和测试准确率,表明支持向量机可以应用到医疗诊断中,给医疗机构提供数据支持。
支持向量机;分类器;心脏病诊断;交叉验证
支持向量机(Support Vector Machine,SVM)是由Corinna和Vapnik于1995年提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中[1]。支持向量机方法是建立在统计学习理论的VC维和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性和学习能力之间寻找最佳折中,以期获得最好的推广能力[2]。
心脏病诊断过程中,由于主观原因医生可能会做出错误的判断。本文用支持向量机来建立模型,介绍了支持向量机的基本原理,并用心脏病诊断数据进行了实验分析,实验结果可以为医疗诊断提供数据支持。
支持向量机使用非线性映射,把原训练数据映射到高维空间上,然后在高维空间寻找最佳分离超平面(即将一个类的元组于其他类分离的“决策边界”),该超平面就把数据分为两类。支持向量机通过支持向量(“基本”训练元组)和边缘(由支持向量定义)找到该超平面。支持向量机有线性可分和非线性可分两种情况,在这里只研究数据非线性可分的情况。
对于数据非线性可分,使用非线性映射X=ψ(x)将输入向量x变换到高维空间中,然后在新的高维空间中构建最优超平面。
求得解a*,决策函数可以表示为:
目前主要使用的核函数有以下3种:
心脏病诊断数据都是来自于实际病例检测,可以在UCI机器学习数据库中找到,因此该实验数据具有较高的代表性和实际意义。该数据有303个样本,从中去除含有未知项的样本后,还有297个样本可用。数据共有75项属性,这里只利用其中的13项属性。把心脏病分为两类,即有心脏病(y=1)和没有心脏病(y=-1),因此这是一个标准的二分类问题,可以用支持向量机分类器来分析。
实验中将前237个样本作为训练集,后60个样本作为测试集。然后将训练集与测试集在区间[-1,1]内进行归一化处理,再使用高斯径向基核函数建立分类模型。在MATLAB 7.0中编程实现算法并分析算法的性能。训练及测试结果如表1所示,与其他两种方法的比较如表2所示。
表1 训练和测试的结果
表2 3种方法的比较
由表1训练和测试的结果可知,用支持向量机分类器对心脏病诊断数据进行检测其分类准确率、灵敏度和特异度都比较高。分类准确率高表明该模型对有无心脏病能做出准确的判断,灵敏度(也称真阳性率,指患者组中诊断为阳性的比率)和特异度(指非患者组中诊断为阴性的比率)高表明该模型的误诊率较低。
表2是与其他方法测试所得结果的比较,SVM分类器测试准确率达到86.67%,明显高于K-最紧邻分类和决策树分类算法。因此我们可以得出结论:SVM分类器避免了误分类代价带来的不准确预测,在心脏病的辅助诊断过程中更加有效。
本文介绍了支持向量机分类器的算法原理,并将其应用于心脏病医疗诊断数据的分析中,实验得到的诊断准确率、灵敏度和特异度三项指标都达到了较高的水平。因此该方法可以为心脏病的辅助诊断过程提供数据支持,能够提高医疗机构对该心脏病的诊断效率,也让医生能更准确地做出诊断。与其他分类方法相比,SVM分类器具有较高的分类识别准确率,可以较好地解决小样本、非线性等实际问题,因此SVM分类器在医疗诊断中具有很大的应用前景。
[1] 刘霞,卢苇.SVM在文本分类中的应用研究[J].计算机教育,2007.1
[2] 唐春生,张磊.文本分类研究进展
[3] (美)韩家炜(Han,j.)等著.数据挖掘:概念与技术[M].范明等译.北京:机械工业出版社,2012
[4] Vapnik V.The Nature of Statistical Learning Theory.New York:Spriger,1995
[5] Zhang X G.Using Class-center Vectors to Build Support Vector Machines[C].In:Proceedings of NNSP'99,1999
Application of SVM in Heart Disease Data Analysis
GE Guang-wei,WANG Yuan-liang
(School of Information,Yunnan University of Finance and Economics,Kunming 650221)
Takes the actualmedical data as the application object,uses support vectormachine classifier to experiment.And with the use of K nearest neighbor,compares decision treeswith experimental results.The results show that support vectormachine has high sensitivity,accuracy and testaccuracy shows that support vectormachine can be applied tomedical diagnosis and provide data support formedical institutions.
Support Vector Machine(SVM);Classifier;Heart Disease Diagnosis;Cross Validation
1007-1423(2015)06-0009-03
10.3969/j.issn.1007-1423.2015.06.002
葛广为(1987-),男,安徽凤台人,在读硕士研究生,研究方向为数据挖掘、算法设计与分析
王元亮(1959-),男,云南昆明人,学士,教授,研究方向为企业信息化
2014-12-16
2015-02-15