國 威,李蓮娣,于廣浩
(1. 牡丹江醫(yī)學(xué)院生命學(xué)院,黑龍江牡丹江 157011;2. 牡丹江醫(yī)學(xué)院附屬第二醫(yī)院,黑龍江牡丹江 157011;3. 牡丹江醫(yī)學(xué)院醫(yī)學(xué)影像學(xué)院,黑龍江牡丹江 157011)
甲狀腺疾病是全球常見的內(nèi)分泌系統(tǒng)疾病之一,其發(fā)病原因復(fù)雜,包括遺傳、環(huán)境、營養(yǎng)等多種因素[1]。由于甲狀腺激素幾乎影響每個器官系統(tǒng),人們可以預(yù)期嚴(yán)重的甲狀腺功能減退癥將與所有臨床醫(yī)生都知道的一系列體征和癥狀有關(guān),反映了代謝活動的減少。許多甲狀腺功能減退癥患者相對無癥狀,甲狀腺功能減退癥的癥狀是非特異性的[2],與正常健康人的典型主訴(例如疲勞、體重增加、便秘、頭發(fā)干燥、皮膚干燥等)重疊[3-5]。研究表明,輕度甲狀腺功能減退癥患者的甲狀腺功能減退癥狀與一般人群的癥狀難以區(qū)分[6],老年人尤其如此[7-8]。目前,甲狀腺激素水平是甲狀腺疾病的常用診斷指標(biāo),但其準(zhǔn)確性和靈敏度有限,且在某些情況下會產(chǎn)生假陽性和假陰性的結(jié)果[9-11]。因此,開發(fā)新的生物標(biāo)志物和建立可靠的預(yù)測模型是提高甲狀腺疾病早期診斷準(zhǔn)確率的重要方法。
隨著機(jī)器學(xué)習(xí)算法在醫(yī)療領(lǐng)域中的廣泛應(yīng)用,越來越多的研究側(cè)重于利用機(jī)器學(xué)習(xí)算法對甲狀腺疾病患者的電子病歷數(shù)據(jù)進(jìn)行挖掘和處理,構(gòu)建疾病預(yù)測模型,發(fā)現(xiàn)甲狀腺疾病的風(fēng)險因素。本文將選取患者身體狀況以及生化指標(biāo)作為特征,使用SVR模型和鯨魚優(yōu)化算法對數(shù)據(jù)集進(jìn)行建模和優(yōu)化,為甲狀腺疾病的早期診斷提供決策支持。
支持向量回歸(Support Vector Regression,SVR)是一種基于支持向量機(jī)(Support Vector Machine,SVM)的回歸方法。與傳統(tǒng)的回歸方法不同,SVR的目標(biāo)是在保持預(yù)測誤差在一定范圍內(nèi)的同時,盡可能擬合訓(xùn)練數(shù)據(jù)。
SVR的核心思想是通過構(gòu)建一個邊界帶,將樣本點映射到高維空間中,并盡量使預(yù)測值落在邊界帶內(nèi)。邊界帶的寬度由用戶事先定義,可以通過調(diào)整參數(shù)來控制模型的靈活性和容忍度。在SVR中,支持向量是那些落在邊界帶上的樣本點,它們對模型的構(gòu)建起著關(guān)鍵作用。
SVR 的優(yōu)點包括:(1)對異常值具有較好的魯棒性,SVR通過引入邊界帶的概念,可以更好地處理訓(xùn)練數(shù)據(jù)中的異常值,減少異常值對模型的影響。(2)靈活性和可調(diào)節(jié)性,通過調(diào)整SVR 中的參數(shù),可以控制邊界帶的寬度和容忍度,從而使模型適應(yīng)不同的數(shù)據(jù)分布和問題要求。(3)有效處理非線性關(guān)系,通過使用核函數(shù),SVR可以將數(shù)據(jù)映射到高維空間,從而處理非線性關(guān)系,并能夠更好地擬合非線性數(shù)據(jù)。
鯨魚優(yōu)化算法(Whale Optimization Algorithm,WOA)最初由Mirjalili 等人[12]于2016 年提出。該算法是一種群體智能算法,是受鯨魚群體行為的啟發(fā)而來。
鯨魚是一種高度社會化的哺乳動物,其個體之間具有高度的協(xié)作和交流能力。在鯨魚優(yōu)化算法中,研究人員通過模擬鯨魚群體的行為,設(shè)計了一種基于“搜尋—定位—捕食”三個階段的優(yōu)化模型,以解決復(fù)雜的優(yōu)化問題。
具體而言,鯨魚優(yōu)化算法通過對鯨魚行為的建模,將優(yōu)化問題轉(zhuǎn)化為鯨魚捕食行為的模擬。算法的基本思路是將所有鯨魚劃分為三類:領(lǐng)袖鯨、隨從鯨和外來鯨。領(lǐng)袖鯨通過自我調(diào)整來不斷優(yōu)化自身的位置和速度,并指導(dǎo)其他鯨魚進(jìn)行搜索。隨從鯨則通過領(lǐng)袖鯨的指引來探索搜索空間,并調(diào)整自身位置和速度。外來鯨則通過隨機(jī)搜索的方式來發(fā)現(xiàn)新的可能解。
圖1 鯨魚算法流程圖
鯨魚算法是一種基于仿生學(xué)的智能優(yōu)化算法,其靈感來自于駝背鯨的覓食行為。算法通過模擬駝背鯨在覓食時的行為,如領(lǐng)袖鯨指引隨從鯨等,來解決復(fù)雜的優(yōu)化問題。鯨魚算法主要包括三個階段:包圍捕食、氣泡襲擊、尋找食物。
2.2.1 包圍捕食階段
在包圍捕食階段中,算法首先選擇一只領(lǐng)頭鯨。接下來,其他鯨魚將圍繞領(lǐng)頭鯨游動,并向領(lǐng)頭鯨靠攏,以便在局部最優(yōu)解附近進(jìn)行搜索。每個鯨魚的速度和位置將受到領(lǐng)頭鯨的影響,領(lǐng)頭鯨的速度和位置則由整個種群的最優(yōu)解確定。算法通過調(diào)整領(lǐng)頭鯨的位置和速度來控制整個種群的運動,以便更好地探索潛在的解空間。同時,領(lǐng)頭鯨會根據(jù)其所在位置的質(zhì)量來調(diào)整自己的速度和位置,以便更好地搜索到更優(yōu)的解。
式中,A,C是系數(shù)向量,X是位置向量,A,C數(shù)學(xué)表達(dá)式如下:
式中,a是從2到0線性遞減的向量,| |r∈[0,1]的隨機(jī)向量。
2.2.2 氣泡襲擊階段
在算法中,每個解代表一個鯨魚,其運動方向是該解的移動方向,圓錐的頂點位置是解的當(dāng)前位置,圓錐的壁面是由該解周圍的其他解構(gòu)成的鄰域,圓錐的半徑隨著迭代次數(shù)的增加而不斷縮小。每次迭代時,算法會根據(jù)每個解在鄰域內(nèi)的適應(yīng)度值和距離值計算出一個權(quán)重值,然后將權(quán)重值作為概率選擇下一步的移動方向。
氣泡襲擊階段是鯨魚優(yōu)化算法中最重要的階段之一,它可以幫助算法快速找到全局最優(yōu)解。
(1)收縮包圍原理。根據(jù)式(2)鯨魚群進(jìn)行收縮包圍,當(dāng) ||A<1 時,鯨魚個體會向著當(dāng)前位置最優(yōu)的鯨魚靠近。
(2)螺旋更新位置。每只鯨魚通過向目標(biāo)位置螺旋移動來更新其位置。這個過程中,每只鯨魚會在其當(dāng)前位置和目標(biāo)位置之間形成一個螺旋軌跡,并按照一定的步長沿著螺旋軌跡向目標(biāo)位置移動。具體來說,在螺旋更新位置階段,每只鯨魚會按照式(5)計算更新其新的位置:
首先,根據(jù)當(dāng)前鯨魚位置和全局最優(yōu)解的距離計算得到;然后,隨機(jī)生成一個[0,1]范圍內(nèi)的數(shù),用來控制鯨魚更新位置時的左右旋轉(zhuǎn)方向;最后,根據(jù)步長因子計算得到鯨魚更新后的位置。
2.2.3 尋找食物階段
在這個階段中,優(yōu)化算法通過搜索空間來尋找可能的最優(yōu)解。該階段的數(shù)學(xué)公式如下:
計算每個鯨魚的適應(yīng)度值:
對于每只鯨魚,計算其新的位置:
xrand是隨機(jī)選擇的另一只鯨魚的位置,A是控制步長的參數(shù),D是當(dāng)前鯨魚到目標(biāo)的位置距離。如果D越小,則鯨魚會朝著目標(biāo)位置前進(jìn)。
最后,對于超出搜索空間邊界的鯨魚,通過隨機(jī)位置來將其移回到搜索空間內(nèi):
CFR:南美國家應(yīng)著重與鄰國合作發(fā)展。5月23日,美智庫美國外交關(guān)系協(xié)會(CFR)發(fā)文稱,由于南美國家難以進(jìn)入亞洲、歐洲和北美制造業(yè)生產(chǎn)鏈,其應(yīng)著重與鄰國互助,培育產(chǎn)業(yè),并促進(jìn)經(jīng)濟(jì)增長。一方面,將當(dāng)前貿(mào)易協(xié)定延伸至較棘手領(lǐng)域,并有效合并不同貿(mào)易協(xié)定,簡化規(guī)則。另一方面,政府應(yīng)通過調(diào)整稅收和投資條款、減少繁文縟節(jié)、加強(qiáng)法制等舉措吸引跨國公司投資。
其中,l和u分別是搜索下界和上界,rand[l,u]在[l,u]范圍。
SVR 和WOA 之間的關(guān)系在于,WOA 可以作為SVR 算法的一種優(yōu)化方法。傳統(tǒng)的SVR 算法通常使用梯度下降等方法來尋找最優(yōu)化的超平面,但這些方法可能陷入局部最優(yōu)解。而WOA 作為一種全局優(yōu)化算法,能夠幫助SVR算法更好地搜索全局最優(yōu)解。
在將WOA 應(yīng)用于SVR 中,可以將SVR 問題看作是一個目標(biāo)函數(shù)的最小化問題,而WOA 則通過模擬鯨魚的行為來搜索最優(yōu)解。具體地,WOA中的搜索和迭代操作可以用來調(diào)整SVR模型中的參數(shù),如超平面的斜率和截距等,以使SVR模型能夠更好地擬合數(shù)據(jù)并找到最佳的回歸函數(shù)。
通過結(jié)合SVR 和WOA,可以提高SVR 算法的性能,使其更好地適應(yīng)復(fù)雜的回歸問題,并且具有全局優(yōu)化的特性,避免陷入局部最優(yōu)解。這種結(jié)合可以通過在SVR 算法中引入WOA 的迭代過程,或者使用WOA來調(diào)整SVR模型的參數(shù),以實現(xiàn)更好的回歸性能。
本文數(shù)據(jù)來源于UCI 網(wǎng)站由Ross Quinlan 提供的甲狀腺疾病數(shù)據(jù)集,2 800個訓(xùn)練實例和972個測試實例,大量缺失數(shù)據(jù),29 個左右的屬性都是布爾值或連續(xù)值。最終預(yù)測結(jié)果有兩個概念,陽性(甲狀腺功能減退)和陰性(甲狀腺功能正常)。
根據(jù)統(tǒng)計發(fā)現(xiàn),29 個特征為患者的基本信息、身體狀況以及各種甲狀腺功能指標(biāo)。除TBG(實驗室工作血液中的TBG 水平)以及TBG_measured(是否在血液中測量TBG)大量缺失,其余特征均有少量缺失值。為探究這些特征對患者患病與否的影響,如圖2所示,各生化指標(biāo)之間呈低度的線性關(guān)系,不進(jìn)行降維處理?!凹谞钕偎亟Y(jié)合球蛋白”和“是否測量血液中的甲狀腺素結(jié)合球蛋白水平”直接進(jìn)行刪除處理。對于其他特征缺失值進(jìn)行適當(dāng)處理,使用樣本均值進(jìn)行填充。
圖2 相關(guān)性分析圖
清洗數(shù)據(jù),將布爾值的特征采用One-Hot 的編碼方式,即患者是否服用甲狀腺素、患者是否有甲狀腺腫、是否在血液中測量了TSH(Thyroid Stimulating Hormone)等這個特征,是否分別設(shè)為0和1。
將數(shù)據(jù)縮放到[0,1]之間,使數(shù)據(jù)服從均值為0,方差為1的正態(tài)分布。
經(jīng)過數(shù)據(jù)預(yù)處理后,共納入3 772 余例病人,其中,患有甲狀腺功能減退的患者為291例,甲狀腺功能正常的患者為3 481例。
將3 772 例前列腺癌數(shù)據(jù)隨機(jī)打亂后拆分,比例為9∶1。即訓(xùn)練集用于尋找最優(yōu)參數(shù),構(gòu)建最佳模型;測試集用于模型評估,結(jié)果輸出。
當(dāng)使用SVR進(jìn)行模型訓(xùn)練時,首先需要進(jìn)行參數(shù)調(diào)優(yōu)。使用gridsearch 方法尋找最優(yōu)的SVR 模型參數(shù)(gam 和sig2)。該方法會嘗試各種可能的參數(shù)組合并計算相應(yīng)的模型性能指標(biāo),如預(yù)測準(zhǔn)確率等。最終,選擇表現(xiàn)最佳的參數(shù)組合作為模型的最優(yōu)參數(shù)。
需要設(shè)置優(yōu)化算法來訓(xùn)練SVR 模型。使用了‘c’參數(shù)來表示改進(jìn)的直線搜索法,該方法在優(yōu)化過程中會尋找參數(shù)空間中的局部最優(yōu)解。同時,也可以用‘q’參數(shù)來使用快速梯度下降法,該方法能夠更快地找到全局最優(yōu)解。不同的優(yōu)化算法適用于不同的問題,需要根據(jù)具體情況進(jìn)行選擇。
使用TrainSVR 函數(shù)進(jìn)行SVR 模型訓(xùn)練。在訓(xùn)練過程中,會根據(jù)數(shù)據(jù)集和模型參數(shù)計算出相應(yīng)的模型權(quán)重。在本例中,使用的是TrainSVR 函數(shù)的‘c’模式尋找最優(yōu)解。最終訓(xùn)練出的SVR 模型可以用于預(yù)測新的數(shù)據(jù)集的輸出結(jié)果。
鯨魚優(yōu)化算法的模型優(yōu)化過程可以通過調(diào)整算法的參數(shù)和迭代次數(shù)來實現(xiàn),有兩個重要的參數(shù):鯨群大小和迭代次數(shù)。調(diào)整鯨群大小和迭代次數(shù)可以影響算法的收斂速度和最終性能。通常情況下,增加鯨群大小和迭代次數(shù)可以提高算法的性能,但需要權(quán)衡計算時間和計算資源的消耗。其次,調(diào)整算法參數(shù)可以影響算法的探索能力和局部搜索能力,從而影響模型的最終性能。通過網(wǎng)格搜索方法來尋找最佳的參數(shù)組合,以達(dá)到更好的模型性能。
本研究使用SVR 模型和鯨魚優(yōu)化算法對數(shù)據(jù)集進(jìn)行建模和優(yōu)化。如圖3 和圖4 所示,WOA 在前4 次迭代中成功地優(yōu)化了模型,使得適應(yīng)度函數(shù)不斷下降。在4~7次迭代期間,適應(yīng)度函數(shù)出現(xiàn)了波折,表明算法可能遇到了局部最優(yōu)解,導(dǎo)致無法獲得更好的結(jié)果。在7次迭代之后,適應(yīng)度函數(shù)趨于穩(wěn)定,說明模型已經(jīng)收斂并且不再發(fā)生明顯的變化。最終得到了一個具有良好預(yù)測性能的改進(jìn)支持向量回歸模型,其均方誤差根為0.270 9,R2為0.744,模型準(zhǔn)確率達(dá)到了92.6%。對于診斷和預(yù)測甲狀腺疾病具有較高的準(zhǔn)確性,模型的預(yù)測誤差相對較小,對于甲狀腺疾病的預(yù)測具有較高的精度,模型能夠解釋目標(biāo)變量約74.4%的變異性,對于甲狀腺疾病的預(yù)測能力較高。
圖3 預(yù)測模型的收斂曲線
圖4 測試集預(yù)測結(jié)果對比
相較于SVR模型,改進(jìn)支持向量回歸模型在甲狀腺預(yù)測問題上具有強(qiáng)大的全局搜索能力。它能夠在搜索過程中跳出局部最優(yōu)解,并尋找到全局最優(yōu)解。對于甲狀腺預(yù)測模型來說,這意味著改進(jìn)支持向量回歸模型可以更好地探索特征空間,并找到更好的模型參數(shù)配置。鯨魚優(yōu)化算法可以提高模型的泛化能力。鯨魚優(yōu)化算法有助于避免模型對訓(xùn)練數(shù)據(jù)過度擬合,從而提高模型對未見數(shù)據(jù)的預(yù)測性能。這對于甲狀腺預(yù)測模型的可靠性和實用性至關(guān)重要。鯨魚優(yōu)化算法具有自適應(yīng)性,能夠根據(jù)問題的復(fù)雜度和數(shù)據(jù)的特征來調(diào)整搜索策略。這種自適應(yīng)性使得鯨魚優(yōu)化支持向量回歸模型能夠靈活地適應(yīng)不同的數(shù)據(jù)集和問題域。在甲狀腺預(yù)測模型中,這意味著模型能夠根據(jù)不同的特征和樣本分布,自動調(diào)整超平面和支持向量的位置,以更好地擬合數(shù)據(jù)。
該模型也存在一些不足之處。首先,該模型的參數(shù)需要經(jīng)過網(wǎng)格搜索來確定最佳值,這一過程可能比較耗時,特別是當(dāng)數(shù)據(jù)集較大時。其次,WOA 算法的搜索空間可能存在局部最優(yōu)解[13],這可能會對模型的預(yù)測結(jié)果產(chǎn)生一定的影響。該模型的預(yù)測效果還需要進(jìn)一步在更多數(shù)據(jù)集上進(jìn)行驗證。
甲狀腺功能減退癥常見于門診,檢測方法的改進(jìn)和對病情認(rèn)識的提高導(dǎo)致了對更多患者的評估[14]。原發(fā)性甲狀腺功能減退是甲狀腺功能減退的主要表現(xiàn),但其他原因包括中樞性促甲狀腺激素釋放激素(Thyrotropin Releasing Hormone,TRH)、促甲狀腺激素(Thyroid Stimulating Hormone,TSH)缺乏,或甲狀腺激素過度失活引起的消耗性甲狀腺功能減退。亞臨床甲狀腺功能減退(SubClinical Hypothyroidism,SCH)是指有實驗室證據(jù)表明原發(fā)性甲狀腺功能減退伴TSH升高,但游離甲狀腺素(Free Thyroxine,F(xiàn)T4)水平正常[15-16]。在未來預(yù)測方面,可以通過定期檢測甲狀腺功能指標(biāo),可以及早發(fā)現(xiàn)甲狀腺疾病,尤其是甲狀腺功能減退癥,早期治療可以有效預(yù)防疾病的進(jìn)展[17-19]。其次,甲狀腺自身抗體是一些與甲狀腺相關(guān)的自身免疫性疾?。ㄈ缱陨砻庖咝约谞钕傺祝┑闹匾笜?biāo)[20]。檢測甲狀腺自身抗體可以及早發(fā)現(xiàn)自身免疫性疾病,并采取相應(yīng)的治療措施,預(yù)防疾病的進(jìn)一步發(fā)展。此外,人們可以通過健康的生活方式來預(yù)防甲狀腺疾病。如保持良好的飲食習(xí)慣,增加蛋白質(zhì)、碘、維生素等營養(yǎng)物質(zhì)的攝入;保持適量的運動,增強(qiáng)身體的免疫力;避免吸煙和飲酒等不良習(xí)慣。