趙一凡,卞良,張飛飛
(1.寧夏醫(yī)科大學(xué)公共衛(wèi)生與管理學(xué)院,銀川 750000;2.寧夏醫(yī)科大學(xué)理學(xué)院,銀川 750000)
胸痛三聯(lián)征是急性心肌梗死、肺栓塞、主動(dòng)脈夾層的統(tǒng)稱,主要表現(xiàn)為胸痛、呼吸困難、咯血[1],發(fā)病兇險(xiǎn)、誤診率與死亡率較高。因此,快速、準(zhǔn)確鑒別胸痛病因是急診處理的重難點(diǎn)。許多學(xué)者嘗試采用計(jì)算機(jī)輔助診斷技術(shù)解決疾病診斷面臨的重要問題[2-3],如宗慧[4]采用人工神經(jīng)網(wǎng)絡(luò)與支持向量機(jī)對(duì)非創(chuàng)傷性急診胸痛疾病進(jìn)行分類,各模型準(zhǔn)確率均在82%以上;鄒芳[5]等基于決策樹構(gòu)建胸痛輔助診斷系統(tǒng),精度達(dá)80%以上;目前,針對(duì)胸痛計(jì)算機(jī)輔助診斷方面的研究準(zhǔn)確率普遍較低。
現(xiàn)有研究中,應(yīng)用于胸痛分類診斷方法主要有人工神經(jīng)網(wǎng)絡(luò)(artificial neural network, ANN)、決策樹(decision tree, DT)、支持向量機(jī)(support vector machine, SVM)等。其中,SVM是一種適用于小樣本、高維數(shù)據(jù)集的分類方法,具有堅(jiān)實(shí)的理論基礎(chǔ),并且具有較好的魯棒性。其廣泛應(yīng)用于圖像分類識(shí)別[6]、情感分類[7]、故障診斷[8]等。經(jīng)典SVM的應(yīng)用建立于平衡數(shù)據(jù)理論基礎(chǔ)之上,而臨床上急性心肌梗死患者要遠(yuǎn)多于主動(dòng)脈夾層、肺栓塞患者,因此,使用經(jīng)典SVM分類效果欠佳。現(xiàn)有文獻(xiàn)[9-10]給出了此類非平衡數(shù)據(jù)集分類問題的解決方法,可歸納為兩點(diǎn):一是均衡各類樣本數(shù)量,如過采樣代表性算法SMOTE[11]、欠采樣代表性算法Easy Ensemble[12];但臨床上數(shù)據(jù)較為復(fù)雜,經(jīng)篩選后可用數(shù)據(jù)樣本有限,一般不采用此方式解決胸痛三聯(lián)征的非平衡數(shù)據(jù)集問題。二是改進(jìn)分類算法以適應(yīng)不均衡數(shù)據(jù)分類,主要的SVM改進(jìn)方法有修改核函數(shù)、集成SVM算法、采用啟發(fā)式智能算法優(yōu)化SVM。其中,由于啟發(fā)式智能算法對(duì)數(shù)據(jù)集要求較低,因此成為研究熱點(diǎn),常用啟發(fā)式算法有布谷鳥算法(Cuckoo Search, CS)、粒子群算法(particle swarm optimization, PSO)、遺傳算法(genetic algorithm, GA)等。其中,CS算法是一種新型的仿生算法,不需要問題的梯度信息,易實(shí)現(xiàn),能以較大概率收斂到問題的全局最優(yōu)解。
因此,本研究針對(duì)胸痛三聯(lián)征的非平衡數(shù)據(jù)集,結(jié)合徑向基核函數(shù)RBF,提出一種基于CS算法優(yōu)化SVM參數(shù)的胸痛三聯(lián)征計(jì)算機(jī)輔助診斷模型。首先對(duì)納入的735例患者病例數(shù)據(jù)進(jìn)行特征提取,構(gòu)建特征庫,對(duì)數(shù)據(jù)進(jìn)行離散化,再通過該模型進(jìn)行分類識(shí)別。
SVM相比其他機(jī)器學(xué)習(xí)算法具有較好的分類效果與穩(wěn)定性,但針對(duì)非平衡數(shù)據(jù),SVM獲得的超平面偏向少類樣本,只能得到次優(yōu)的分類結(jié)果,為獲得更好的預(yù)測結(jié)果,許多學(xué)者對(duì)SVM進(jìn)行改進(jìn),從而增強(qiáng)算法本身對(duì)非平衡數(shù)據(jù)的學(xué)習(xí)效果。
根據(jù)機(jī)構(gòu)風(fēng)險(xiǎn)最小化原則,將“松弛變量”(Slack Variables)引入SVM的基本模型為:
s.t.yi(wTxi+b)≥1-ξi
ξi≥0,i=1,2,…,m.
(1)
式中,ξi表示松弛因子,C表示懲罰因子。
通過拉格朗日乘子法可得式(1)的對(duì)偶問題為:
0≤αi≤C,i=1,2,…,m.
(2)
研究表明,SVM常用核函數(shù)有線性內(nèi)積核函數(shù)、多項(xiàng)式核函數(shù)與徑向基核函數(shù) (radial basis function, RBF)等。當(dāng)缺少先驗(yàn)知識(shí)時(shí),其中RBF參數(shù)少,相比于其他核函數(shù)具有較好的性能。因此,本研究選用RBF的高斯版本作為SVM的核函數(shù)。
(3)
其中σ為RBF的帶寬(Width),為用戶定義的函數(shù)值跌落到0的速度參數(shù)。
由于SVM的學(xué)習(xí)性能與參數(shù)選取密切相關(guān),并且CS相對(duì)于其他算法能更快收斂到全局最優(yōu)值,因此本研究采用CS搜索算法優(yōu)化SVM參數(shù)。
CS算法于2009年由劍橋?qū)W者Yang與Deb[13]提出,是一種模擬布谷鳥寄生繁殖的啟發(fā)式算法。該算法將布谷鳥繁殖后代的過程與鳥類的Levy飛行搜索方式相結(jié)合。
(4)
(5)
位置更新后,則有:
(6)
算法流程見圖1。
圖1 算法流程圖
本研究共納入了自2017年1月至2018年2月期間于某大型三甲醫(yī)院治療的急性心肌梗死、主動(dòng)脈夾層、肺栓塞,共計(jì)867例患者的病史資料及檢驗(yàn)報(bào)告,并由該單位提供醫(yī)學(xué)與臨床指導(dǎo)。對(duì)樣本進(jìn)行數(shù)據(jù)清洗,填補(bǔ)缺失值、并排除信息不全、病史資料不全、重復(fù)住院患者,共納入有效樣本735例。
在醫(yī)師指導(dǎo)下對(duì)樣本數(shù)據(jù)進(jìn)行特征提取,共103維條件屬性與1維決策屬性,構(gòu)建特征庫。見表1。
對(duì)樣本數(shù)據(jù)基本信息、主訴、臨床表現(xiàn)等屬性進(jìn)行離散化,如年齡(歲)、體溫(℃)、血壓(mmHg)等屬性取實(shí)際值;疼痛部位(1=胸背部;2=胸骨后;3=前胸部;4=心前區(qū);5=劍突下);疼痛性質(zhì)(1=撕裂痛;2=刀割痛;3=擠壓痛;4=心絞痛;5=壓榨痛;6=憋悶痛)等。
表1 胸痛三聯(lián)征患者特征集合
(1)根據(jù)經(jīng)驗(yàn)確定SVM參數(shù)c、g的取值范圍,CS迭代次數(shù)為200。
(3)保留上一代最優(yōu)鳥巢位置,并根據(jù)Levy飛行機(jī)制更新其他鳥巢位置,由式(4)得到一組改進(jìn)的鳥巢并計(jì)算擬合度F,與上一代鳥巢進(jìn)行對(duì)比,保留質(zhì)量較好的鳥巢。
(4)由式(6)產(chǎn)生的隨機(jī)數(shù)r與Pa進(jìn)行比較,保留被發(fā)現(xiàn)概率較小的鳥巢,改進(jìn)被發(fā)現(xiàn)概率較大的鳥巢。計(jì)算改進(jìn)后鳥巢的質(zhì)量,并與當(dāng)前最優(yōu)鳥巢質(zhì)量進(jìn)行對(duì)比,繼續(xù)保留質(zhì)量較好的鳥巢。
為驗(yàn)證本研究算法的性能,分別設(shè)計(jì)了基于平衡數(shù)據(jù)與非平衡數(shù)據(jù)的實(shí)驗(yàn),采用Matlab軟件進(jìn)行CS-SVM的分類識(shí)別,以各指標(biāo)的平均值作為此次分類結(jié)果。
基于經(jīng)典SVM建立于平衡數(shù)據(jù)集理論基礎(chǔ)之上,設(shè)計(jì)該實(shí)驗(yàn)以驗(yàn)證CS-SVM相比經(jīng)典SVM在平衡數(shù)據(jù)集上的性能優(yōu)勢。735例樣本中,主動(dòng)脈夾層210例、急性心肌梗死405例、肺栓塞120例。為有效避免人為抽取數(shù)據(jù)造成分類結(jié)果不精確,本研究采用Java語言編寫程序,以實(shí)現(xiàn)分別從主動(dòng)脈夾層患者與急性心肌梗死患者中各抽取120例隨機(jī)樣本的功能。分別從主動(dòng)脈夾層患者與急性心肌梗死患者中隨機(jī)抽取5組樣本數(shù)據(jù)并編號(hào)。采用經(jīng)典SVM與CS-SVM分別對(duì)5組平衡數(shù)據(jù)樣本進(jìn)行分類識(shí)別,分類結(jié)果見表2。
表2SVM與CS-SVM五次隨機(jī)抽樣分類結(jié)果比較
Table2ComparisonoffiverandomsamplingresultsbetweenSVMandCS-SVM
樣本組編號(hào)SVM正確率(%)時(shí)間(s)CS-SVM正確率(%)時(shí)間(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組樣本結(jié)果的平均值顯示,CS-SVM與經(jīng)典SVM相比正確率提高了約6%,但所用時(shí)間增加了約6 s,其正確率為80.667%。由于樣本數(shù)目有限,因此,分類正確率并不是十分理想。為使CS-SVM應(yīng)用于非平衡數(shù)據(jù)分類結(jié)果更具說服力,采用經(jīng)典SVM、PSO-SVM、GA-SVM作為對(duì)比模型,并進(jìn)行對(duì)比實(shí)驗(yàn)。
為驗(yàn)證CS-SVM在非平衡數(shù)據(jù)集分類上的優(yōu)勢,設(shè)計(jì)該實(shí)驗(yàn),以納入的735例有效樣本為基礎(chǔ),將本研究算法與經(jīng)典SVM及常用啟發(fā)式智能算法優(yōu)化的SVM分別從正確率與時(shí)間上做比較。見表3,圖2。
表3不同算法SVM分類結(jié)果對(duì)比
Table3ComparisonofSVMclassificationresultsofdifferentalgorithms
五折交叉次數(shù)SVM正確率(%)時(shí)間(s)PSO-SVM正確率(%)時(shí)間(s)GA-SVM正確率(%)時(shí)間(s)CS-SVM正確率(%)時(shí)間(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 不同算法五折交叉性能對(duì)比
Fig2Theperformanceofdifferentalgorithmsiscomparedwitheachother
a.Changeofaccuracyrate;b.Timevariation
由表3和圖2可知,CS-SVM五折交叉平均正確率為97.767%,均高于其他三種方法;CS-SVM所用時(shí)間約為經(jīng)典SVM所用時(shí)間的3.6倍,但正確率提高了約14%。由圖2(a)可知,CS-SVM相比其他方法五折交叉的正確率相對(duì)較穩(wěn)定,其他三種方法不同的交叉驗(yàn)證正確率變化較大,也說明了本研究采用五折交叉求均值可以有效避免片面性評(píng)價(jià),更具科學(xué)性。圖2(b)中,雖然CS-SVM的時(shí)間相比經(jīng)典SVM有所提升,但是相比GA-SVM和PSO-SVM大幅降低。綜合考慮,CS-SVM模型在提升正確率的同時(shí),在分類所用時(shí)間上也相對(duì)較低,因此可說明采用CS-SVM可以建立更優(yōu)的胸痛三聯(lián)征分類診斷模型,從而進(jìn)一步提高分類診斷的精確度。
胸痛三聯(lián)征確切病因的診斷是治療實(shí)施的關(guān)鍵,針對(duì)胸痛三聯(lián)征具有類似的胸痛癥狀、發(fā)病兇險(xiǎn)、誤診率較高、經(jīng)典SVM不適用于非平衡數(shù)據(jù)分類的缺點(diǎn),結(jié)合RBF提出一種基于CS優(yōu)化SVM的分類診斷模型,分別基于平衡數(shù)據(jù)集與非平衡數(shù)據(jù)集進(jìn)行了仿真實(shí)驗(yàn)。
理論與仿真實(shí)驗(yàn)的結(jié)果都表明該模型具有較高的分類正確率,在分類時(shí)間上相比其他模型耗時(shí)更少,能夠準(zhǔn)確、快速識(shí)別具有相同胸痛癥狀的不同患病類型。但該模型還有待改進(jìn):CS算法發(fā)現(xiàn)概率為經(jīng)驗(yàn)值,不利于算法的全局搜索和局部尋優(yōu);Levy飛行隨機(jī)產(chǎn)生搜索向量的機(jī)制,有可能導(dǎo)致陷入局部最優(yōu)。本研究數(shù)據(jù)集有103維特征,大規(guī)模冗余與無關(guān)特征會(huì)影響分類性能。后續(xù)研究將針對(duì)CS算法存在的問題以及數(shù)據(jù)的降維問題,對(duì)該模型進(jìn)行改進(jìn),并在公開數(shù)據(jù)集與本研究數(shù)據(jù)集上分別驗(yàn)證改進(jìn)算法的有效性。