基于布谷鸟算法优化支持向量机应用于胸痛三联征的分类诊断研究*
2019-04-20赵一凡卞良张飞飞
赵一凡,卞良,张飞飞
(1.宁夏医科大学公共卫生与管理学院,银川 750000;2.宁夏医科大学理学院,银川 750000)
1 引 言
胸痛三联征是急性心肌梗死、肺栓塞、主动脉夹层的统称,主要表现为胸痛、呼吸困难、咯血[1],发病凶险、误诊率与死亡率较高。因此,快速、准确鉴别胸痛病因是急诊处理的重难点。许多学者尝试采用计算机辅助诊断技术解决疾病诊断面临的重要问题[2-3],如宗慧[4]采用人工神经网络与支持向量机对非创伤性急诊胸痛疾病进行分类,各模型准确率均在82%以上;邹芳[5]等基于决策树构建胸痛辅助诊断系统,精度达80%以上;目前,针对胸痛计算机辅助诊断方面的研究准确率普遍较低。
现有研究中,应用于胸痛分类诊断方法主要有人工神经网络(artificial neural network, ANN)、决策树(decision tree, DT)、支持向量机(support vector machine, SVM)等。其中,SVM是一种适用于小样本、高维数据集的分类方法,具有坚实的理论基础,并且具有较好的鲁棒性。其广泛应用于图像分类识别[6]、情感分类[7]、故障诊断[8]等。经典SVM的应用建立于平衡数据理论基础之上,而临床上急性心肌梗死患者要远多于主动脉夹层、肺栓塞患者,因此,使用经典SVM分类效果欠佳。现有文献[9-10]给出了此类非平衡数据集分类问题的解决方法,可归纳为两点:一是均衡各类样本数量,如过采样代表性算法SMOTE[11]、欠采样代表性算法Easy Ensemble[12];但临床上数据较为复杂,经筛选后可用数据样本有限,一般不采用此方式解决胸痛三联征的非平衡数据集问题。二是改进分类算法以适应不均衡数据分类,主要的SVM改进方法有修改核函数、集成SVM算法、采用启发式智能算法优化SVM。其中,由于启发式智能算法对数据集要求较低,因此成为研究热点,常用启发式算法有布谷鸟算法(Cuckoo Search, CS)、粒子群算法(particle swarm optimization, PSO)、遗传算法(genetic algorithm, GA)等。其中,CS算法是一种新型的仿生算法,不需要问题的梯度信息,易实现,能以较大概率收敛到问题的全局最优解。
因此,本研究针对胸痛三联征的非平衡数据集,结合径向基核函数RBF,提出一种基于CS算法优化SVM参数的胸痛三联征计算机辅助诊断模型。首先对纳入的735例患者病例数据进行特征提取,构建特征库,对数据进行离散化,再通过该模型进行分类识别。
2 基础知识
2.1 SVM算法
SVM相比其他机器学习算法具有较好的分类效果与稳定性,但针对非平衡数据,SVM获得的超平面偏向少类样本,只能得到次优的分类结果,为获得更好的预测结果,许多学者对SVM进行改进,从而增强算法本身对非平衡数据的学习效果。
根据机构风险最小化原则,将“松弛变量”(Slack Variables)引入SVM的基本模型为:
s.t.yi(wTxi+b)≥1-ξi
ξi≥0,i=1,2,…,m.
(1)
式中,ξi表示松弛因子,C表示惩罚因子。
通过拉格朗日乘子法可得式(1)的对偶问题为:
0≤αi≤C,i=1,2,…,m.
(2)
研究表明,SVM常用核函数有线性内积核函数、多项式核函数与径向基核函数 (radial basis function, RBF)等。当缺少先验知识时,其中RBF参数少,相比于其他核函数具有较好的性能。因此,本研究选用RBF的高斯版本作为SVM的核函数。
(3)
其中σ为RBF的带宽(Width),为用户定义的函数值跌落到0的速度参数。
由于SVM的学习性能与参数选取密切相关,并且CS相对于其他算法能更快收敛到全局最优值,因此本研究采用CS搜索算法优化SVM参数。
2.2 CS算法
CS算法于2009年由剑桥学者Yang与Deb[13]提出,是一种模拟布谷鸟寄生繁殖的启发式算法。该算法将布谷鸟繁殖后代的过程与鸟类的Levy飞行搜索方式相结合。
(4)
(5)
位置更新后,则有:
(6)
3 算法步骤
3.1 算法流程图
算法流程见图1。
图1 算法流程图
3.2 数据收集与处理
本研究共纳入了自2017年1月至2018年2月期间于某大型三甲医院治疗的急性心肌梗死、主动脉夹层、肺栓塞,共计867例患者的病史资料及检验报告,并由该单位提供医学与临床指导。对样本进行数据清洗,填补缺失值、并排除信息不全、病史资料不全、重复住院患者,共纳入有效样本735例。
3.3 构建特征库
在医师指导下对样本数据进行特征提取,共103维条件属性与1维决策属性,构建特征库。见表1。
3.4 离散化
对样本数据基本信息、主诉、临床表现等属性进行离散化,如年龄(岁)、体温(℃)、血压(mmHg)等属性取实际值;疼痛部位(1=胸背部;2=胸骨后;3=前胸部;4=心前区;5=剑突下);疼痛性质(1=撕裂痛;2=刀割痛;3=挤压痛;4=心绞痛;5=压榨痛;6=憋闷痛)等。
表1 胸痛三联征患者特征集合
3.5 CS优化SVM参数流程
(1)根据经验确定SVM参数c、g的取值范围,CS迭代次数为200。
(3)保留上一代最优鸟巢位置,并根据Levy飞行机制更新其他鸟巢位置,由式(4)得到一组改进的鸟巢并计算拟合度F,与上一代鸟巢进行对比,保留质量较好的鸟巢。
(4)由式(6)产生的随机数r与Pa进行比较,保留被发现概率较小的鸟巢,改进被发现概率较大的鸟巢。计算改进后鸟巢的质量,并与当前最优鸟巢质量进行对比,继续保留质量较好的鸟巢。
4 仿真实验
为验证本研究算法的性能,分别设计了基于平衡数据与非平衡数据的实验,采用Matlab软件进行CS-SVM的分类识别,以各指标的平均值作为此次分类结果。
4.1 基于平衡数据CS-SVM的性能
基于经典SVM建立于平衡数据集理论基础之上,设计该实验以验证CS-SVM相比经典SVM在平衡数据集上的性能优势。735例样本中,主动脉夹层210例、急性心肌梗死405例、肺栓塞120例。为有效避免人为抽取数据造成分类结果不精确,本研究采用Java语言编写程序,以实现分别从主动脉夹层患者与急性心肌梗死患者中各抽取120例随机样本的功能。分别从主动脉夹层患者与急性心肌梗死患者中随机抽取5组样本数据并编号。采用经典SVM与CS-SVM分别对5组平衡数据样本进行分类识别,分类结果见表2。
表2SVM与CS-SVM五次随机抽样分类结果比较
Table2ComparisonoffiverandomsamplingresultsbetweenSVMandCS-SVM
样本组编号SVM正确率(%)时间(s)CS-SVM正确率(%)时间(s)173.88912.29681.11119.054276.38913.45584.16718.251375.00012.37478.61118.208474.44412.30282.50018.178571.38912.32476.94418.666平均值74.22212.55080.66718.471
由表2可知,5组样本结果的平均值显示,CS-SVM与经典SVM相比正确率提高了约6%,但所用时间增加了约6 s,其正确率为80.667%。由于样本数目有限,因此,分类正确率并不是十分理想。为使CS-SVM应用于非平衡数据分类结果更具说服力,采用经典SVM、PSO-SVM、GA-SVM作为对比模型,并进行对比实验。
4.2 基于非平衡数据不同分类算法性能对比
为验证CS-SVM在非平衡数据集分类上的优势,设计该实验,以纳入的735例有效样本为基础,将本研究算法与经典SVM及常用启发式智能算法优化的SVM分别从正确率与时间上做比较。见表3,图2。
表3不同算法SVM分类结果对比
Table3ComparisonofSVMclassificationresultsofdifferentalgorithms
五折交叉次数SVM正确率(%)时间(s)PSO-SVM正确率(%)时间(s)GA-SVM正确率(%)时间(s)CS-SVM正确率(%)时间(s)191.83719.40975.510993.54596.599379.20198.64095.142284.35419.18989.796987.40295.238415.03898.64090.739383.67420.79791.1571024.99682.313558.69197.95991.170477.55121.52393.3201087.71490.320373.35596.32090.114580.95241.52376.191985.78393.197270.20297.27979.736平均值83.67324.48985.1951015.78391.533399.29797.76789.380
图2 不同算法五折交叉性能对比
Fig2Theperformanceofdifferentalgorithmsiscomparedwitheachother
a.Changeofaccuracyrate;b.Timevariation
由表3和图2可知,CS-SVM五折交叉平均正确率为97.767%,均高于其他三种方法;CS-SVM所用时间约为经典SVM所用时间的3.6倍,但正确率提高了约14%。由图2(a)可知,CS-SVM相比其他方法五折交叉的正确率相对较稳定,其他三种方法不同的交叉验证正确率变化较大,也说明了本研究采用五折交叉求均值可以有效避免片面性评价,更具科学性。图2(b)中,虽然CS-SVM的时间相比经典SVM有所提升,但是相比GA-SVM和PSO-SVM大幅降低。综合考虑,CS-SVM模型在提升正确率的同时,在分类所用时间上也相对较低,因此可说明采用CS-SVM可以建立更优的胸痛三联征分类诊断模型,从而进一步提高分类诊断的精确度。
5 结语
胸痛三联征确切病因的诊断是治疗实施的关键,针对胸痛三联征具有类似的胸痛症状、发病凶险、误诊率较高、经典SVM不适用于非平衡数据分类的缺点,结合RBF提出一种基于CS优化SVM的分类诊断模型,分别基于平衡数据集与非平衡数据集进行了仿真实验。
理论与仿真实验的结果都表明该模型具有较高的分类正确率,在分类时间上相比其他模型耗时更少,能够准确、快速识别具有相同胸痛症状的不同患病类型。但该模型还有待改进:CS算法发现概率为经验值,不利于算法的全局搜索和局部寻优;Levy飞行随机产生搜索向量的机制,有可能导致陷入局部最优。本研究数据集有103维特征,大规模冗余与无关特征会影响分类性能。后续研究将针对CS算法存在的问题以及数据的降维问题,对该模型进行改进,并在公开数据集与本研究数据集上分别验证改进算法的有效性。