章新友,徐華康,周小玲,劉夢玲,李秀云,張亞明,張春強,唐琍萍
(江西中醫(yī)藥大學計算機學院 南昌 330004)
原發(fā)性支氣管肺癌,簡稱肺癌,作為一種全球范圍內(nèi)最常見的惡性腫瘤,肺癌新發(fā)和死亡人數(shù)正在不斷升高,且肺癌的發(fā)病率和死亡率為癌癥之首,而我國肺癌的新發(fā)與死亡病例位居全球首位[1]。中醫(yī)藥在治療肺癌上療效顯著,不僅能夠減輕術(shù)后產(chǎn)生的不良反應,改良患者的癥狀,還能有效的延長患者生命周期[2-3]。但目前肺癌的中醫(yī)辨證方法不一,證型分類眾多,診療程序不規(guī)范,影響了中醫(yī)藥在治療疾病上特色優(yōu)勢的發(fā)揮[4]。
目前,中醫(yī)藥智能化在證型分類,舌診方面多有運用[5-6],但中醫(yī)診斷數(shù)據(jù)大都具有非線性、高維度等特點,傳統(tǒng)的機器學習分類算法更適合處理線性的、低維度的數(shù)據(jù)集,而神經(jīng)網(wǎng)絡(luò)能夠很好的處理這類中醫(yī)診斷數(shù)據(jù)[7]。此外,如果只根據(jù)癥狀的有無來判斷證型,則無法體現(xiàn)出中醫(yī)辨證論治中主癥和兼癥對不同證型的影響程度以及中醫(yī)癥狀的程度量級。因此,為了準確的反應肺癌證型的特征,切合中醫(yī)臨床辨證論治的特點,本研究將針對肺癌中醫(yī)癥狀與證型之間非線性及高維度的特點,使用特征選擇和Likert分級法對其進行量化處理,較好地實現(xiàn)電子病歷的結(jié)構(gòu)化和臨床數(shù)據(jù)的標準化。再構(gòu)建基于麻雀搜索算法優(yōu)化深度極限學習機的肺癌證型分類預測模型,為中醫(yī)辨證論治的信息化發(fā)展提供有益的參考。
從江西中醫(yī)藥大學附屬醫(yī)院(江西省中醫(yī)院)獲取了497例肺癌病患者的病歷資料,病人的就診時間范圍為2015年1月-2021年12月,每份病例主要包含了證型、四診、辨證和處方用藥等詳細信息。但初始數(shù)據(jù)龐雜,需要進行初步的整理,以滿足算法本身的要求。
對于分類模型來說,要求每個類別的樣本數(shù)目盡量均衡來保證其訓練效果[8],而497個病例中肺癌證型類別繁多且極不均衡,其中單獨證型有51種、并發(fā)證型有6種,部分證型樣本數(shù)目僅有數(shù)個。為了不影響分類準確率,首先排除歸為并發(fā)證型的樣本,再將51種獨立證型進行整合處理。參考相關(guān)文獻及專家意見將不同名稱,但實質(zhì)相同或相似的證型歸為同一類證型[9]。如將脾虛痰濕、氣虛痰濕、痰濕內(nèi)蘊等證型統(tǒng)一歸為脾虛痰濕;痰熱壅肺、痰熱阻肺等證型統(tǒng)一歸為痰熱壅肺;痰瘀互結(jié)、痰瘀內(nèi)阻等證型統(tǒng)一歸為痰瘀互結(jié)等。最終共計412例病歷被納入實驗范圍。
本研究主要參考《中醫(yī)診斷學》和《中醫(yī)內(nèi)科學》等相關(guān)資料文獻[10-12],對412例肺癌患者進行中醫(yī)癥狀頻次統(tǒng)計,在整合部分相同描述的基礎(chǔ)上整理出獨立癥狀共計82個,其頻次最多的前38個癥狀見表1。經(jīng)統(tǒng)計學分析看出,除去慢性病患者常見的眠差、精神軟、乏力之外,肺癌患者最常見臨床表現(xiàn)為咳痰、咳嗽、胸悶、痰粘、胸痛等。而根據(jù)中醫(yī)舌質(zhì)、舌苔和脈象統(tǒng)計表可知,舌質(zhì)多為淡紅、紅以及暗等;舌苔多為薄白、薄黃以及少苔等;脈象多為弦、弦滑以及濡等,具體信息統(tǒng)計表見表2。
表1 412例肺癌病歷的中醫(yī)癥狀與體征統(tǒng)計表
表2 412例肺癌病歷的中醫(yī)舌質(zhì)、舌苔和脈象統(tǒng)計表
中醫(yī)治療疾病通常采取辨證論治的方法,即通過患者的四診信息來判斷證型,并給出治法和方藥。肺癌的中醫(yī)癥狀缺乏標準的評分方法,一種證型有多個對應癥狀,但它們的主次地位不同,而且同一癥狀在不同的證型中的重要程度也不盡相同。因此需要探索科學有效的定量方法,用權(quán)重系數(shù)來反映證型中不同癥狀的主次。由上述統(tǒng)計數(shù)據(jù)可知,412例病歷總計有103個癥狀特征,這些特征對于每一個證型來說可分為相關(guān)特征、無關(guān)特征和冗余特征。而無關(guān)特征、冗余特征以及低重要性特征會影響分類模型的精度,故本研究應用特征選擇來減少數(shù)據(jù)集的維度并篩選出對證型分類至關(guān)重要的特征,即證型因子。主要采用以下4種方法用于篩選。
1.3.1 缺失值
缺失值主要是指信息丟失和不規(guī)則性,會影響分類器的性能。在本研究中,會排除缺失值百分比大于90%的特征。
1.3.2 互信息
對于冗余特征,本研究通過計算特征兩兩之間的互信息進行排除[13]。互信息是一個特征中包含的關(guān)于另一個特征的信息量,用于表示特征之間的關(guān)系,也是兩個特征統(tǒng)計相關(guān)性的測度。這些相似性較大的特征對中醫(yī)證型的分類沒有幫助,反而也會影響分類模型的性能。因此,在訓練時排除了部分冗余特征。
1.3.3 零重要性
零重要性指的是無關(guān)特征,本研究使用了極限梯度提升樹算法(XGBoost)[14]構(gòu)建分類模型。通過創(chuàng)建該模型中的提升決策樹,便可以得出每個特征相對的重要性得分。當一個特征被多次用來在模型中構(gòu)建提升決策樹,它的重要性就相對高于其他特征[15]。重要性得分是通過對一個特征在所有提升樹中的結(jié)果進行加權(quán)求和后平均所計算得出的,得分為零的特征被定義為重要性為零,意味著它們對訓練分類模型沒有任何貢獻,故也需要進行排除。
1.3.4 低重要性
在相關(guān)特征中,也有部分特征的重要性較低,需要選取特征數(shù)量較少且盡可能不影響分類準確率的特征子集。本研究使用SelectFromModel類并根據(jù)閾值來確定特征子集。該類采用已經(jīng)訓練好的模型,并將數(shù)據(jù)集轉(zhuǎn)換為具有選定特征的子集,便使用該類在基于極限梯度提升樹算法的分類模型上來選擇訓練數(shù)據(jù)集上的特征,并從選定的特征子集中訓練模型,最終在測試集上評估模型,測試結(jié)果如圖1所示。
圖1 不同特征個數(shù)下的XGBoost分類模型準確率
根據(jù)圖1以及實驗結(jié)果可以得出,當重要性評分閾值為0.006,特征個數(shù)為47-53時,模型準確率有極大值;當特征個數(shù)大于53時,準確率反而降低。故選取重要性評分在0.006以上,共53個特征作為特征子集。
在獲得特征子集及其重要性排序后,本研究根據(jù)最新發(fā)布的“十四五”規(guī)劃教材中李燦東和方朝義主編的《中醫(yī)診斷學》[11]與吳勉華和石巖主編的《中醫(yī)內(nèi)科學》[12]等作為參考,并在相應的專家指導下,從該特征子集中確定5種肺癌證型的證型相關(guān)因子,并對其特征重要性歸一化處理,見表3。
表3 肺癌證型因子歸一化權(quán)重表
對所有證型對應的證型因子進行歸一化權(quán)重處理后,以權(quán)重大于等于0.1分為主要癥狀,權(quán)重小于0.1為次要癥狀,得出氣陰兩虛證的主要癥狀有:咳痰、口干、舌紅或淡紅、少苔、脈細弱。次要癥狀有:大便秘結(jié)、氣短、痰少、痰稀、自汗。其他證型也以此劃分。再采用Likert分級法[16-17],將癥狀按照輕度、中度和重度進行分級,對于同一個證型中的主要癥狀的3個等級,分別賦值為3、6、9;次要癥狀的3個等級分別賦值為1、2、3;而病歷中出現(xiàn)的屬于53個特征中的癥狀,但不屬于證型因子的癥狀,則不管嚴重程度如何均賦值為1。
得到合理且貼近臨床實際的中醫(yī)證型因子的量化數(shù)據(jù)后,再分別將量化前后的數(shù)據(jù)生成對應編碼文件,為麻雀搜索算法優(yōu)化深度極限學習機模型做好數(shù)據(jù)準備。
極限學習機(ELM)是一種典型的前饋神經(jīng)網(wǎng)絡(luò),可用于分類任務[18],但不像BP神經(jīng)網(wǎng)絡(luò)需要不斷反向傳播從而調(diào)整權(quán)值和閾值,它隨機輸入權(quán)重和隱含層偏置,通過解方程組來得到輸出層權(quán)重β,從而運算量減少,學習速率快[19]。但因為ELM是單隱含層結(jié)構(gòu),當遇到數(shù)據(jù)維度過高等情況,便會出現(xiàn)易陷入局部最小值的情況。
而基于深度學習的極限學習機是指利用極限學習機與自動編碼器相結(jié)合,形成極限學習機-自動編碼器(ELM-AE),然后將ELM-AE作為無監(jiān)督學習的基礎(chǔ)單元對輸入數(shù)據(jù)進行逐層貪婪的訓練方法,并保存ELM-AE由最小二乘法獲得的輸出權(quán)值矩陣,然后用這些輸出層權(quán)重來初始化多層極限學習機(MLELM),也稱深度極限學習機(Deep extreme leaning machine,DELM)[20],二者結(jié)構(gòu)如圖2和圖3所示。而這種通過層層疊加ELM-AE構(gòu)建的神經(jīng)網(wǎng)絡(luò)模型,不僅有深度學習的表征學習能力還有較快的學習速度。
圖2 ELM-AE網(wǎng)絡(luò)結(jié)構(gòu)圖
圖3 DELM模型
與傳統(tǒng)的深度學習相比,深度極限學習機不需要對網(wǎng)絡(luò)進行微調(diào),ELM-AE層與最后的ELM分類層通過一步反向計算就可以解析出輸出值,因此其特點是學習速度較快。但由于ELM-AE隨機生成輸入層權(quán)值與偏置,且不會進行反向調(diào)整,因此最后的ELM分類層的精度會受到ELM-AE輸入權(quán)值的影響[21]。其次DELM是多隱含層結(jié)構(gòu),隱含層神經(jīng)元個數(shù)對分類精度影響顯著。所以本研究結(jié)合麻雀搜索算法,優(yōu)化DELM網(wǎng)絡(luò)參數(shù)輸入權(quán)值與偏置,確定隱含層節(jié)點數(shù),以達到降低或消除DELM算法輸出不穩(wěn)定的缺點。
麻雀搜索算法(SSA)是薛建凱在2020年提出的[22],作為一種新型的群智能算法,其主要模擬了麻雀群覓食的過程。麻雀群覓食過程可分為發(fā)現(xiàn)者和跟隨者,一般使麻雀種群中找到優(yōu)質(zhì)食物的個體作為發(fā)現(xiàn)者,其他個體作為跟隨者,并且每個個體都會監(jiān)視群體中其它個體的行為,比如跟隨者會監(jiān)視發(fā)現(xiàn)者與之爭搶食物或在其周圍覓食,同時種群中也選取一定比例的個體作為預警者,如果發(fā)現(xiàn)危險就要調(diào)整自身位置,種群中心的麻雀也會判斷危險情況進行移動。
每只麻雀只有一個位置屬性,通過位置可以計算它獲得食物的程度。每只麻雀都有3種可能的行為。首先作為發(fā)現(xiàn)者,負責搜索食物并為種群提供覓食的方向。其次作為跟隨者,會跟隨并監(jiān)視一個發(fā)現(xiàn)者。最后是警戒者,處于種群外圍的個體負責警戒,并調(diào)整自身位置。
假設(shè)該麻雀種群中有P只麻雀,每次迭代會選取種群中當前位置最好的N只麻雀作為發(fā)現(xiàn)者,剩余的P-N只麻雀作為跟隨者。每一代發(fā)現(xiàn)者的位置更新公式為式(1)。
其跟隨者的位置更新公式及描述為式(2)。
其中xw為當前種群中麻雀的最差位置,xb則為種群中麻雀的最優(yōu)位置。
在麻雀覓食的迭代過程中會隨機產(chǎn)生預警者,當其意識到危險時,便會迅速改變自身位置。其位置更新公式為式(3)。
如上文所述DELM中ELM-AE層的初始值和閾值是隨機的,會很大程度上影響訓練效果,因此將ELMAE輸入權(quán)值Wi和偏置bi,作為SSA算法的算子,即麻雀,解決由權(quán)值、閾值隨機初始化導致的陷入局部最優(yōu)解的問題。
SSA-DELM算法步驟如下所示:
①數(shù)據(jù)預處理。首先將量化后的數(shù)據(jù)集進行歸一化處理,范圍為[-1,1],從而消除奇異樣本數(shù)據(jù)導致的不良影響。
②初始化SSA參數(shù)。定義SSA的最大迭代次數(shù)M及麻雀種群數(shù)量Pop,設(shè)置發(fā)現(xiàn)者P_percent所占的種群比例,以及設(shè)置預警值R2。
③設(shè)計適應度函數(shù)并計算適應度值。種群中的每個麻雀代表ELM-AE中的初始權(quán)值和閾值。利用初始化生成的權(quán)值和閾值對網(wǎng)絡(luò)進行訓練,用1減去預測正確樣本的占總樣本比重即準確率的值作為適應度函數(shù),適應度值越小表示誤差越小。每一輪迭代都會找到每個麻雀當前最佳位置P_best的最小適應度函數(shù)值。
④更新麻雀位置。每一輪迭代過程中,首先會將適應度較好的麻雀作為發(fā)現(xiàn)者,發(fā)現(xiàn)者會為整個種群提供覓食方向。然后根據(jù)預警值R2,按照式1更新發(fā)現(xiàn)者位置。剩下的個體部分處于十分饑餓的狀態(tài)即適應度值很差,需要到其它地方覓食,而一部分追隨者是圍繞最好的發(fā)現(xiàn)者周圍進行覓食,其間也有可能發(fā)生食物的爭奪,使其自己變成發(fā)現(xiàn)者,對此使用式2更新位置。之后預警者會按照其所占比例在種群中隨機產(chǎn)生,根據(jù)當前麻雀個體的適應度值,與當前最優(yōu)解的比較結(jié)果,使用式3更新預警者位置。
⑤每一輪迭代都會產(chǎn)生當前最優(yōu)解,并與上一輪所產(chǎn)生的最優(yōu)解進行比較更新,直至達到最大迭代次數(shù)。
⑥將所得的最優(yōu)解作為神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,確定DELM網(wǎng)絡(luò)結(jié)構(gòu),訓練并進行預測。
本研究主要采取3種模型評價指標,分別為分類精確率(Precision)、召回率(Recall)和F1值(F1-measure)。在分類問題中,一般分為2類正類和負類,其中TP表示樣本為正類而預測也為正類的樣本數(shù)目,TN 表示樣本為負類同時預測也是負類的樣本數(shù)目,F(xiàn)P表示樣本為負類但預測卻是正類的樣本數(shù)目,F(xiàn)N表示樣本為正類但預測卻是負類的樣本數(shù)目。各評價指標計算公式為式(4)、式(5)、式(6):
3.1.1 準確率
準確率指被正確預測的正例樣本數(shù)占總樣本數(shù)的比重:
3.1.2 召回率
召回率指在所有樣本里的正類中也被預測為正類的比例。
3.1.3 F1值
F1值指精確率和召回率的調(diào)和平均數(shù),用來衡量分類器的綜合性能
SSA-DELM模型以量化后的肺癌中醫(yī)癥狀、脈診和舌診信息作為輸入,One-hot編碼后的5種肺癌證型作為輸出。麻雀種群數(shù)量為20,最大迭代次數(shù)為100,預警值r2為0.8,預警者占種群比例為20%,尋優(yōu)范圍為[-1,1],尋優(yōu)維度為12850。神經(jīng)網(wǎng)絡(luò)激活函數(shù)為Sigmoid函數(shù),并加入L2正則化,參數(shù)設(shè)置為10,目的是防止產(chǎn)生過擬合現(xiàn)象。隱含層神經(jīng)元個數(shù)按照式(7)計算,且通過逐步增加或減少神經(jīng)元個數(shù)以得到最佳數(shù)量。
其中是NS訓練集樣本個數(shù),Ni和No分別為輸入層和輸出層神經(jīng)元個數(shù),α為常數(shù),取值為10,得出隱含層神經(jīng)元最佳數(shù)量為50。
在確定SSA-DELM分類預測模型的參數(shù)后,按照7:3的比例將數(shù)據(jù)集劃分為訓練集和測試集,對模型進行訓練和預測。畫出SSA算法的適應度曲線并得出每個證型所預測出來準確率、召回率和F1值的測試結(jié)果,然后與其他分類算法進行對比分析,3種評價指標對比見表4和表5,適應度曲線和準確率折線圖如圖4和圖5所示。
圖4 SSA-DELM與其他分類算法準確率對比折線圖
圖5 SSA適應值曲線變化圖
表4 SSA-DELM與其他分類算法準確率對比分析表
表5 SSA-DELM與其他分類算法召回率和F1值對比分析表
分析表4、表5和圖4不難看出,優(yōu)化后的深度極限學習機模型相較于支持向量機和貝葉斯網(wǎng)絡(luò)模型在整體準確率上具有一定的優(yōu)勢,尤其是預測痰瘀互結(jié)證和痰濕蘊肺證的準確率達到90%以上,達到了臨床診療的標準。而神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)在處理多分類非線性化中醫(yī)數(shù)據(jù)的問題上要比支持向量機和貝葉斯網(wǎng)絡(luò)好。原因是進行多分類任務的支持向量機是通過組合多個二分類器來實現(xiàn)多分類器,對于5個證型來說,就要構(gòu)建n(n-1)/2個,即10個二分類器。故隨著需要判別的證型數(shù)目的增加,模型的整體復雜度隨之增加,也影響了模型的精確率。而貝葉斯網(wǎng)絡(luò)也是如此,它以證型類別作為根節(jié)點,其他特征作為子節(jié)點構(gòu)建分類器,但隨著特征數(shù)目增多,整個網(wǎng)絡(luò)結(jié)構(gòu)的復雜程度也在增加,影響了時間復雜度及準確率。
而SSA-DELM對于未處理的0-1量化病例數(shù)據(jù)訓練及預測效果較差,說明如果只是根據(jù)癥狀的有無對病例進行量化,則分類模型很難學習到不同證型的特征。而本研究通過利用特征選擇并結(jié)合Likert分級法切合了中醫(yī)病例數(shù)據(jù)高維非線性的特點,并對其進行科學合理的量化,故SSA-DELM對于量化后的數(shù)據(jù)預測效果較好。從圖5可以發(fā)現(xiàn)麻雀搜索算法在完成第56迭代后收斂,體現(xiàn)了其尋優(yōu)效果好,收斂速度較快的優(yōu)點。
傳統(tǒng)的中醫(yī)證型分類模型會遇到多種困難,首先,中醫(yī)證型分類問題存在高維度、非線性的難點,使用傳統(tǒng)模型則會出現(xiàn)訓練時間長、尋優(yōu)能力差、分類精度低等問題。其次,在中醫(yī)的辨證論治中,不同的證型存在主癥和兼癥,對證型診斷的影響程度不同,且同一癥狀在不同的證型中的重要程度也不盡相同。最后中醫(yī)電子病歷數(shù)據(jù)不能簡單的使用0-1來量化,因為中醫(yī)癥狀也分程度,需要某種方法對癥狀程度進行合理量化。
本研究針對上述問題進行展開,首先通過對高維中醫(yī)病例數(shù)據(jù)進行特征選擇來確定不同證型的證型因子,并結(jié)合Likert分級法對數(shù)據(jù)進行合理量化,確定5種證型的證型因子。再使用麻雀搜索算法優(yōu)化DELM模型的輸入權(quán)重和隱含層偏置,減少隨機初始化參數(shù)造成的分類結(jié)果不穩(wěn)定、準確率較低等影響。最后使用量化后的數(shù)據(jù)對SSA-DELM模型進行訓練和測試。實驗表明,本研究采用的SSA-DELM新模型在各個證型上的準確率處于85%-92%,平均準確率為88%,且對于中醫(yī)病例數(shù)據(jù)來說,SSA-DELM新模型優(yōu)于支持向量機和貝葉斯網(wǎng)絡(luò)等傳統(tǒng)模型。同時,經(jīng)過量化后的數(shù)據(jù)所訓練的模型精度要遠優(yōu)于未量化的數(shù)據(jù),也進一步說明結(jié)合特征選擇與Likert分級法處理中醫(yī)病歷數(shù)據(jù)的合理性。
構(gòu)建的中醫(yī)證型分類新模型,融合了特征選擇、Likert分級法與啟發(fā)式算法優(yōu)化神經(jīng)網(wǎng)絡(luò)模型3種方法,有效地處理了中醫(yī)證型分類過程中存在的高維度、非線性問題,體現(xiàn)了中醫(yī)病歷數(shù)據(jù)中癥狀與癥狀、癥狀與證型之間繁雜的關(guān)系,不僅為肺癌的辨證研究提供了行之有效的思路,也為中醫(yī)辨證論治的信息化、智能化發(fā)展提供了有益的借鑒。如何優(yōu)化SSADELM的網(wǎng)絡(luò)結(jié)構(gòu),提高其泛化性能,以及如何增加麻雀搜索算法的搜索性能和范圍,加快其收斂速度,均值得進一步研究。