國 威,李蓮娣,于廣浩
(1. 牡丹江醫學院生命學院,黑龍江牡丹江 157011;2. 牡丹江醫學院附屬第二醫院,黑龍江牡丹江 157011;3. 牡丹江醫學院醫學影像學院,黑龍江牡丹江 157011)
甲狀腺疾病是全球常見的內分泌系統疾病之一,其發病原因復雜,包括遺傳、環境、營養等多種因素[1]。由于甲狀腺激素幾乎影響每個器官系統,人們可以預期嚴重的甲狀腺功能減退癥將與所有臨床醫生都知道的一系列體征和癥狀有關,反映了代謝活動的減少。許多甲狀腺功能減退癥患者相對無癥狀,甲狀腺功能減退癥的癥狀是非特異性的[2],與正常健康人的典型主訴(例如疲勞、體重增加、便秘、頭發干燥、皮膚干燥等)重疊[3-5]。研究表明,輕度甲狀腺功能減退癥患者的甲狀腺功能減退癥狀與一般人群的癥狀難以區分[6],老年人尤其如此[7-8]。目前,甲狀腺激素水平是甲狀腺疾病的常用診斷指標,但其準確性和靈敏度有限,且在某些情況下會產生假陽性和假陰性的結果[9-11]。因此,開發新的生物標志物和建立可靠的預測模型是提高甲狀腺疾病早期診斷準確率的重要方法。
隨著機器學習算法在醫療領域中的廣泛應用,越來越多的研究側重于利用機器學習算法對甲狀腺疾病患者的電子病歷數據進行挖掘和處理,構建疾病預測模型,發現甲狀腺疾病的風險因素。本文將選取患者身體狀況以及生化指標作為特征,使用SVR模型和鯨魚優化算法對數據集進行建模和優化,為甲狀腺疾病的早期診斷提供決策支持。
支持向量回歸(Support Vector Regression,SVR)是一種基于支持向量機(Support Vector Machine,SVM)的回歸方法。與傳統的回歸方法不同,SVR的目標是在保持預測誤差在一定范圍內的同時,盡可能擬合訓練數據。
SVR的核心思想是通過構建一個邊界帶,將樣本點映射到高維空間中,并盡量使預測值落在邊界帶內。邊界帶的寬度由用戶事先定義,可以通過調整參數來控制模型的靈活性和容忍度。在SVR中,支持向量是那些落在邊界帶上的樣本點,它們對模型的構建起著關鍵作用。
SVR 的優點包括:(1)對異常值具有較好的魯棒性,SVR通過引入邊界帶的概念,可以更好地處理訓練數據中的異常值,減少異常值對模型的影響。(2)靈活性和可調節性,通過調整SVR 中的參數,可以控制邊界帶的寬度和容忍度,從而使模型適應不同的數據分布和問題要求。(3)有效處理非線性關系,通過使用核函數,SVR可以將數據映射到高維空間,從而處理非線性關系,并能夠更好地擬合非線性數據。
鯨魚優化算法(Whale Optimization Algorithm,WOA)最初由Mirjalili 等人[12]于2016 年提出。該算法是一種群體智能算法,是受鯨魚群體行為的啟發而來。
鯨魚是一種高度社會化的哺乳動物,其個體之間具有高度的協作和交流能力。在鯨魚優化算法中,研究人員通過模擬鯨魚群體的行為,設計了一種基于“搜尋—定位—捕食”三個階段的優化模型,以解決復雜的優化問題。
具體而言,鯨魚優化算法通過對鯨魚行為的建模,將優化問題轉化為鯨魚捕食行為的模擬。算法的基本思路是將所有鯨魚劃分為三類:領袖鯨、隨從鯨和外來鯨。領袖鯨通過自我調整來不斷優化自身的位置和速度,并指導其他鯨魚進行搜索。隨從鯨則通過領袖鯨的指引來探索搜索空間,并調整自身位置和速度。外來鯨則通過隨機搜索的方式來發現新的可能解。

圖1 鯨魚算法流程圖
鯨魚算法是一種基于仿生學的智能優化算法,其靈感來自于駝背鯨的覓食行為。算法通過模擬駝背鯨在覓食時的行為,如領袖鯨指引隨從鯨等,來解決復雜的優化問題。鯨魚算法主要包括三個階段:包圍捕食、氣泡襲擊、尋找食物。
2.2.1 包圍捕食階段
在包圍捕食階段中,算法首先選擇一只領頭鯨。接下來,其他鯨魚將圍繞領頭鯨游動,并向領頭鯨靠攏,以便在局部最優解附近進行搜索。每個鯨魚的速度和位置將受到領頭鯨的影響,領頭鯨的速度和位置則由整個種群的最優解確定。算法通過調整領頭鯨的位置和速度來控制整個種群的運動,以便更好地探索潛在的解空間。同時,領頭鯨會根據其所在位置的質量來調整自己的速度和位置,以便更好地搜索到更優的解。
式中,A,C是系數向量,X是位置向量,A,C數學表達式如下:
式中,a是從2到0線性遞減的向量,| |r∈[0,1]的隨機向量。
2.2.2 氣泡襲擊階段
在算法中,每個解代表一個鯨魚,其運動方向是該解的移動方向,圓錐的頂點位置是解的當前位置,圓錐的壁面是由該解周圍的其他解構成的鄰域,圓錐的半徑隨著迭代次數的增加而不斷縮小。每次迭代時,算法會根據每個解在鄰域內的適應度值和距離值計算出一個權重值,然后將權重值作為概率選擇下一步的移動方向。
氣泡襲擊階段是鯨魚優化算法中最重要的階段之一,它可以幫助算法快速找到全局最優解。
(1)收縮包圍原理。根據式(2)鯨魚群進行收縮包圍,當 ||A<1 時,鯨魚個體會向著當前位置最優的鯨魚靠近。
(2)螺旋更新位置。每只鯨魚通過向目標位置螺旋移動來更新其位置。這個過程中,每只鯨魚會在其當前位置和目標位置之間形成一個螺旋軌跡,并按照一定的步長沿著螺旋軌跡向目標位置移動。具體來說,在螺旋更新位置階段,每只鯨魚會按照式(5)計算更新其新的位置:
首先,根據當前鯨魚位置和全局最優解的距離計算得到;然后,隨機生成一個[0,1]范圍內的數,用來控制鯨魚更新位置時的左右旋轉方向;最后,根據步長因子計算得到鯨魚更新后的位置。
2.2.3 尋找食物階段
在這個階段中,優化算法通過搜索空間來尋找可能的最優解。該階段的數學公式如下:
計算每個鯨魚的適應度值:
對于每只鯨魚,計算其新的位置:
xrand是隨機選擇的另一只鯨魚的位置,A是控制步長的參數,D是當前鯨魚到目標的位置距離。如果D越小,則鯨魚會朝著目標位置前進。
最后,對于超出搜索空間邊界的鯨魚,通過隨機位置來將其移回到搜索空間內:
CFR:南美國家應著重與鄰國合作發展。5月23日,美智庫美國外交關系協會(CFR)發文稱,由于南美國家難以進入亞洲、歐洲和北美制造業生產鏈,其應著重與鄰國互助,培育產業,并促進經濟增長。一方面,將當前貿易協定延伸至較棘手領域,并有效合并不同貿易協定,簡化規則。另一方面,政府應通過調整稅收和投資條款、減少繁文縟節、加強法制等舉措吸引跨國公司投資。
其中,l和u分別是搜索下界和上界,rand[l,u]在[l,u]范圍。
SVR 和WOA 之間的關系在于,WOA 可以作為SVR 算法的一種優化方法。傳統的SVR 算法通常使用梯度下降等方法來尋找最優化的超平面,但這些方法可能陷入局部最優解。而WOA 作為一種全局優化算法,能夠幫助SVR算法更好地搜索全局最優解。
在將WOA 應用于SVR 中,可以將SVR 問題看作是一個目標函數的最小化問題,而WOA 則通過模擬鯨魚的行為來搜索最優解。具體地,WOA中的搜索和迭代操作可以用來調整SVR模型中的參數,如超平面的斜率和截距等,以使SVR模型能夠更好地擬合數據并找到最佳的回歸函數。
通過結合SVR 和WOA,可以提高SVR 算法的性能,使其更好地適應復雜的回歸問題,并且具有全局優化的特性,避免陷入局部最優解。這種結合可以通過在SVR 算法中引入WOA 的迭代過程,或者使用WOA來調整SVR模型的參數,以實現更好的回歸性能。
本文數據來源于UCI 網站由Ross Quinlan 提供的甲狀腺疾病數據集,2 800個訓練實例和972個測試實例,大量缺失數據,29 個左右的屬性都是布爾值或連續值。最終預測結果有兩個概念,陽性(甲狀腺功能減退)和陰性(甲狀腺功能正常)。
根據統計發現,29 個特征為患者的基本信息、身體狀況以及各種甲狀腺功能指標。除TBG(實驗室工作血液中的TBG 水平)以及TBG_measured(是否在血液中測量TBG)大量缺失,其余特征均有少量缺失值。為探究這些特征對患者患病與否的影響,如圖2所示,各生化指標之間呈低度的線性關系,不進行降維處理。“甲狀腺素結合球蛋白”和“是否測量血液中的甲狀腺素結合球蛋白水平”直接進行刪除處理。對于其他特征缺失值進行適當處理,使用樣本均值進行填充。

圖2 相關性分析圖
清洗數據,將布爾值的特征采用One-Hot 的編碼方式,即患者是否服用甲狀腺素、患者是否有甲狀腺腫、是否在血液中測量了TSH(Thyroid Stimulating Hormone)等這個特征,是否分別設為0和1。
將數據縮放到[0,1]之間,使數據服從均值為0,方差為1的正態分布。
經過數據預處理后,共納入3 772 余例病人,其中,患有甲狀腺功能減退的患者為291例,甲狀腺功能正常的患者為3 481例。
將3 772 例前列腺癌數據隨機打亂后拆分,比例為9∶1。即訓練集用于尋找最優參數,構建最佳模型;測試集用于模型評估,結果輸出。
當使用SVR進行模型訓練時,首先需要進行參數調優。使用gridsearch 方法尋找最優的SVR 模型參數(gam 和sig2)。該方法會嘗試各種可能的參數組合并計算相應的模型性能指標,如預測準確率等。最終,選擇表現最佳的參數組合作為模型的最優參數。
需要設置優化算法來訓練SVR 模型。使用了‘c’參數來表示改進的直線搜索法,該方法在優化過程中會尋找參數空間中的局部最優解。同時,也可以用‘q’參數來使用快速梯度下降法,該方法能夠更快地找到全局最優解。不同的優化算法適用于不同的問題,需要根據具體情況進行選擇。
使用TrainSVR 函數進行SVR 模型訓練。在訓練過程中,會根據數據集和模型參數計算出相應的模型權重。在本例中,使用的是TrainSVR 函數的‘c’模式尋找最優解。最終訓練出的SVR 模型可以用于預測新的數據集的輸出結果。
鯨魚優化算法的模型優化過程可以通過調整算法的參數和迭代次數來實現,有兩個重要的參數:鯨群大小和迭代次數。調整鯨群大小和迭代次數可以影響算法的收斂速度和最終性能。通常情況下,增加鯨群大小和迭代次數可以提高算法的性能,但需要權衡計算時間和計算資源的消耗。其次,調整算法參數可以影響算法的探索能力和局部搜索能力,從而影響模型的最終性能。通過網格搜索方法來尋找最佳的參數組合,以達到更好的模型性能。
本研究使用SVR 模型和鯨魚優化算法對數據集進行建模和優化。如圖3 和圖4 所示,WOA 在前4 次迭代中成功地優化了模型,使得適應度函數不斷下降。在4~7次迭代期間,適應度函數出現了波折,表明算法可能遇到了局部最優解,導致無法獲得更好的結果。在7次迭代之后,適應度函數趨于穩定,說明模型已經收斂并且不再發生明顯的變化。最終得到了一個具有良好預測性能的改進支持向量回歸模型,其均方誤差根為0.270 9,R2為0.744,模型準確率達到了92.6%。對于診斷和預測甲狀腺疾病具有較高的準確性,模型的預測誤差相對較小,對于甲狀腺疾病的預測具有較高的精度,模型能夠解釋目標變量約74.4%的變異性,對于甲狀腺疾病的預測能力較高。

圖3 預測模型的收斂曲線

圖4 測試集預測結果對比
相較于SVR模型,改進支持向量回歸模型在甲狀腺預測問題上具有強大的全局搜索能力。它能夠在搜索過程中跳出局部最優解,并尋找到全局最優解。對于甲狀腺預測模型來說,這意味著改進支持向量回歸模型可以更好地探索特征空間,并找到更好的模型參數配置。鯨魚優化算法可以提高模型的泛化能力。鯨魚優化算法有助于避免模型對訓練數據過度擬合,從而提高模型對未見數據的預測性能。這對于甲狀腺預測模型的可靠性和實用性至關重要。鯨魚優化算法具有自適應性,能夠根據問題的復雜度和數據的特征來調整搜索策略。這種自適應性使得鯨魚優化支持向量回歸模型能夠靈活地適應不同的數據集和問題域。在甲狀腺預測模型中,這意味著模型能夠根據不同的特征和樣本分布,自動調整超平面和支持向量的位置,以更好地擬合數據。
該模型也存在一些不足之處。首先,該模型的參數需要經過網格搜索來確定最佳值,這一過程可能比較耗時,特別是當數據集較大時。其次,WOA 算法的搜索空間可能存在局部最優解[13],這可能會對模型的預測結果產生一定的影響。該模型的預測效果還需要進一步在更多數據集上進行驗證。
甲狀腺功能減退癥常見于門診,檢測方法的改進和對病情認識的提高導致了對更多患者的評估[14]。原發性甲狀腺功能減退是甲狀腺功能減退的主要表現,但其他原因包括中樞性促甲狀腺激素釋放激素(Thyrotropin Releasing Hormone,TRH)、促甲狀腺激素(Thyroid Stimulating Hormone,TSH)缺乏,或甲狀腺激素過度失活引起的消耗性甲狀腺功能減退。亞臨床甲狀腺功能減退(SubClinical Hypothyroidism,SCH)是指有實驗室證據表明原發性甲狀腺功能減退伴TSH升高,但游離甲狀腺素(Free Thyroxine,FT4)水平正常[15-16]。在未來預測方面,可以通過定期檢測甲狀腺功能指標,可以及早發現甲狀腺疾病,尤其是甲狀腺功能減退癥,早期治療可以有效預防疾病的進展[17-19]。其次,甲狀腺自身抗體是一些與甲狀腺相關的自身免疫性疾病(如自身免疫性甲狀腺炎)的重要指標[20]。檢測甲狀腺自身抗體可以及早發現自身免疫性疾病,并采取相應的治療措施,預防疾病的進一步發展。此外,人們可以通過健康的生活方式來預防甲狀腺疾病。如保持良好的飲食習慣,增加蛋白質、碘、維生素等營養物質的攝入;保持適量的運動,增強身體的免疫力;避免吸煙和飲酒等不良習慣。