趙晚昭,謝 聰
(廣西農業職業技術大學,廣西南寧 530007)
近年來,癌癥及惡性腫瘤一直威脅著人類的生命健康,尤其是患病早期癥狀不容易被查出,導致錯過了最佳的治療時間,因此,為各種疾病提供一種高效、準確的診斷方法,不僅可以讓患者及時接受治療,或許還可以挽救患者生命。隨著基因微陣列技術的成熟,基因表達譜可以表示人類各個組織的正常基因,當前很多重大疾病的基因微陣列數據也已被共享,可為基因分類與識別提供大量可靠的數據。一般來說,在高維微陣列數據中,冗余的基因不僅會降低訓練強度,而且會對學習算法的性能產生負面的影響。為了解決這些問題,研究人員提出了眾多基因選擇方法來選擇最佳的鑒別基因[1]。
在進行基因微陣列分類時,最重要的是對微陣列基因進行特征選擇,當前的基因選擇方法主要分為過濾法、包裝法、混合法和嵌入法等4類[2]。通常來說,包裝法能提供更好的精度,在眾多的包裝法中,引力搜索算法(Gravity Search Algorithm,GSA)和教與學優化(Teaching-Learning-Based Optimization,TLBO)算法在生物信息學領域是眾多研究的焦點[3-6]。由于這些技術在選擇的基因之間缺乏相關性,從而會增加計算負擔[7],為克服這些缺點,研究人員對許多混合進化算法進行了研究,如差分進化算法和人工蜂群算法的混合[8]、混合烏鴉搜索算法[9]、TLBO算法與GSA的結合[10]、特征選擇集成算法和自適應蚱蜢優化算法的結合[11],以及二元精英花授粉算法和二分粒子群算法的融合[12]。但是大多數的混合智能算法仍存在很多缺陷,如執行時間高和陷入局部最優等。
本研究將GSA與二元TLBOGSA結合,利用GSA進行局部搜索,通過與二元TLBO融合來克服陷入局部最優的問題。同時,基于新型的粒子編碼方法和適應度函數,提出基于BTLBOGSA的基因微陣列數據特征選擇算法,該算法具有能提高數據集可解釋性、降低計算復雜度、控制過早收斂和迭代停滯問題等潛在優點,可以提高收斂速度,平衡勘探開發能力之間的關系。通過將卷積神經網絡(Convolutional Neural Network,CNN)用于微陣列數據分類器,提出基于BTLBOGSA與CNN的基因微陣列數據分類模型,該模型可從不同的微陣列數據集中選擇具有高度鑒別性的基因子集,相對于使用全部基因進行分類時更不容易過擬合,具有較高的分類精度。
教與學優化(TLBO)算法是近些年比較流行的進化算法(EAs)之一[13]。TLBO算法模擬課堂教學和學習過程可分為教師教學和學生學習兩個階段。
教師教學階段是指教師通過教學以提高學生的知識水平。教學過程計算式如下:
Xi,k+1=Xi,k+ri×(Xteacher,k-Tf×Mi,k),
(1)
式中,Xi,k和Xi,k+1分別表示第i個學員在第k次和第k+1次迭代時學習的值;Xteacher,k為算法在第k次迭代時的最佳學習者;ri為[0,1]之間的隨機值;T為班級教室;Tf為教師因子,Mi,k為當前班級平均成績。Tf的更新公式如下:
Tf=round[1+rand(0,1)]。
(2)
學生學習階段是指學生相互交流、學習知識以及豐富知識。學習階段計算式如下:
Xi,k+1=
(3)
式中,Xi,k和Xi,k+1分別表示第i個學員在第k次和第k+1次迭代時學習前和學習后的值;Xp和Xq分別為第i個學生及同一個班級內的另外一個學生,且i≠j;ri為[0,1]之間的隨機值;f(g)為要優化的目標函數。
引力搜索算法(GSA)是伊朗學者Esmat于2009年提出的一種新型群智能優化算法[14]。GSA中第i個粒子的質量Mi(t)的計算式為
(4)
(5)
式中,mi(t)和mj(t)分別為第i和j個粒子相對于迭代中最好和最差適應度的占比,用于粒子質量的計算;N為粒子總數;fiti(t)為第i個粒子在第t次迭代的適應度;best(t)、worst(t)分別為迭代時所有粒子中最好和最差的適應度,且根據優化目標的不同分為求解最大值和最小值問題,具體如下:
(6)
(7)

(8)

(9)
式中,G0為初始引力;T為最大迭代次數;α為衰減系數。
(10)
特征選擇的主要目標是從原始特征空間中選擇具有最小冗余和最大鑒別能力的相關特征。通過減少不相關和無意義的特征,縮減數據維數,可以降低分類算法所需的數據量及執行時間,從而提高分類器的性能。元啟發式技術因其全局搜索能力而聞名,在尋找給定問題的最優基因子集時,已有多種元啟發式算法,如遺傳算法、引力搜索算法、教與學優化算法、差分變異算法和粒子群優化算法,用于優化特征選擇問題[15,16]。TLBO算法和GSA是計算智能領域中兩種著名的元啟發式方法。在當前的研究中,尚未有關于TLBO算法和GSA在基因微陣列高維數據集上的組合應用。本文將TLBO算法和GSA結合起來進行基因微陣列高維數據的特征提取。
TLBOGSA已被用于解決復雜的連續型全局優化問題,由于個體在連續型搜索空間中移動,所以位置向量為連續型變量[17]。在特征選擇問題上,個體需在二元搜索空間中移動,因此提出了TLBOGSA的二元變體,稱為BTLBOGSA。在BTLBOGSA中,教師教學和學生學習兩個階段的粒子速度更新公式分別為
(11)
(12)

在BTLBOGSA中,相關的位置向量用二進制表示,但速度向量仍是浮點型。速度向量的用途主要是為了尋找學習者在一個位置上變化的概率,即從0變為1或者1變為0的概率。通常情況下,為將連續搜索空間映射到離散搜索空間,需要使用特有的轉換函數,最常用的函數是sigmoid函數。使用sigmoid函數的缺點是正向速度和負向速度間的差異不明顯,導致原先的位置向量需要更大的運動速度才能更新。為了克服這個問題,提出了一種新的速度向量轉換函數,具體如下:
(13)

(14)
在基因微陣列數據分類中,僅由適應度函數指定的最優特征子集可能具有潛在的冗余,為提高基因微陣列數據分類精度和最小化特征數量,研究了一種新的適應度函數,具體如下:
(15)
式中,fitness(x)為特征子集x的分類能力;γ為分類器的分類精度;?為染色體的長度;β為候選特征子集中特征長度的上界;α為0到1之間的常數。
基于TLBO算法和GSA進行基因微陣列高維數據的特征選擇,在此基礎上提出了基于BTLBOGSA的基因微陣列數據特征選擇方法,具體實現如下:
步驟1:初始化種群大小、維度D及初始的特征子集Z等;
步驟2:設置算法初始運行次數t=1,最大運行次數為Tmax;
步驟3:計算種群中每個學習者的適應度值,并記錄最佳學習者;
步驟4:根據公式(9)計算當前迭代次數時的引力常量G(t);
步驟5:根據公式(6)(7)更新當前迭代次數時的最佳適應度值best(t)和最差適應度值worst(t);
步驟6:根據公式(4)更新當前迭代次數時每個學習者的Mi(t);


步驟9:根據公式(13)計算當前迭代次數時所有學習者位置向量改變的可能性;
步驟10:根據公式(14)計算當前迭代次數時所有學習者的位置向量Xi,k;
步驟11:根據公式(11)、(12)計算當前迭代次數時所有學習者的速度向量;
步驟12:根據公式(15)計算當前迭代次數時所有學習者的適應度值;
步驟13:更新所有學習者的位置向量及特征子集結果Z;
步驟14:保存具有最高適應度值的特征子集;
步驟15:跳轉到步驟3,直到達到設置的運行次數,結束算法運行。
基于BTLBOGSA模型可實現基因微陣列數據的特征維度縮減,在此基礎上提出了基于BTLBOGSA與CNN[18]的基因微陣列數據分類模型。BTLBOGSA-CNN模型的實現步驟如圖1所示。

圖1 BTLBOGSA-CNN模型流程圖Fig.1 Flow chart of BTLBOGSA-CNN model
步驟1:數據預處理;
步驟2:將數據集按照7∶3的比例劃分為訓練集和測試集;
步驟3:利用BTLBOGSA進行訓練集數據的特征選擇,實現數據特征維度縮減;
步驟4:利用CNN模型進行訓練集數據分類;
步驟5:利用訓練好的模型進行測試集數據分類;
步驟6:保存分類結果。
在實驗中采用的開發語言為Python3.8.2,操作系統為Ubuntu 18.04.5(64位),CPU為8核2.90 GHz,GPU為GTX 1080Ti,內存為16 GB,硬盤為500 GB。為了評估BTLBOGSA-CNN模型的性能,采用基因微陣列數據分類中常用的敏感性Sensitivity(Se)、特異性Specificity(Sp)、馬修斯相關系數MCC和F-score(Fmes)值4個指標作為評估指標。這些指標的計算方法如下:
(16)
(17)
(18)
MCC=
(19)
式中,TP、TN、FP和FN在獨立的數據集中分別為真陽性、真陰性、假陽性和假陰性。
使用Leukaemia-1、Colon-cancer、DLBCL、Leukaemia-2和Prostate-tumour 5種基因表達數據集對提出的方法進行驗證。表1總結了關于數據集的一些基本信息,包括特征數量、基因數和類別等。

表1 數據集信息描述Table 1 Information description of dataset
本文使用網格搜索法對BTLBOGSA-CNN模型進行實驗,取具有最好分類效果的模型參數作為與其他模型對比時的參數。具體參數設置如表2所示。

表2 模型參數設置Table 2 Setting of model parameters
為充分驗證BTLBOGSA-CNN模型的性能,首先將BTLBOGSA與TLBO算法、GSA結合分別對5個基因微陣列數據集進行數據特征選擇,驗證基于BTLBOGSA進行特征選擇的有效性;然后將BTLBOGSA-CNN、CNN、TLBO-CNN和GSA-CNN進行基因微陣列數據集的分類,驗證BTLBOGSA與CNN結合在一起的有效性;最后將BTLBOGSA-CNN與CMIM[19]、JMI[20]、mRMR[21]、ITAFSVM[22]、TLBOGSA-SVM等其他已有分類模型進行對比,驗證BTLBOGSA-CNN模型相對于已有模型的有效性。
4.4.1 BTLBOGSA、TLBO算法和GSA的特征選擇
利用BTLBOGSA、TLBO算法和GSA對5個基因微陣列數據集進行數據特征選擇,特征選擇結果如圖2所示。在5個數據集上,基于BTLBOGSA進行基因微陣列數據特征選擇的有效特征數均少于TLBO、GSA算法,有效降低了數據特征維度,表明基于BTLBOGSA的基因微陣列數據特征選擇算法具有更好的降維效果。

圖2 3種算法的特征選擇結果Fig.2 Feature selection results of three algorithms
4.4.2 BTLBOGSA-CNN、CNN、TLBO-CNN和GSA-CNN的分類
分別利用BTLBOGSA-CNN、CNN、TLBO-CNN和GSA-CNN對5個基因微陣列數據集進行數據分類,結果如圖3所示。在數據集DLBCL上,BTLBOGSA-CNN模型相對于其余3個模型分類結果的Sensitivity(Se)值最高提升8.25%,在其余4種數據集上最低提升0.23%。對于任意數據集,BTLBOGSA-CNN模型均具有最好的表現。BTLBOGSA-CNN相對于CNN具有更好的分類效果,主要是因為在利用CNN分類前使用BTLBOGSA對數據特征進行提取,得到具有更優分類效果的特征集合;BTLBOGSA-CNN相對于TLBO-CNN、GSA-CNN具有更好的分類效果,則主要是因為BTLBOGSA將TLBO和GSA的優點結合起來,采用了新型的編碼策略,使得其能夠尋找到更有分類效果的特征集合,從而使得利用CNN對數據進行分類時具有更好的分類精度。

圖3 4種模型分類結果Fig.3 Classification results of four models
4.4.3 BTLBOGSA-CNN與其他已有分類模型對比分析
利用BTLBOGSA-CNN與其他5種已有算法模型對5個基因微陣列數據集進行數據分類,結果如圖4所示。以數據集Leukaemia-1為例,BTLBOGSA-CNN模型相對于其余5種模型分類結果的Sensitivity(Se)值至少提高0.22%,Specificity(Sp)值至少提高0.52%,F-score(Fmes)值至少提高0.34%,MCC值至少提高0.11%。在5個數據集上,BTLBOGSA-CNN相對于其余模型均具有更好的分類效果,主要是因為BTLBOGSA-CNN模型相對于其他算法,一方面將TLBO與GSA算法結合起來,充分發揮了兩者的優勢,通過基因微陣列數據特征的有效提取,實現微陣列數據維度的縮減;另一方面充分發揮卷積神經網絡CNN的優勢,利用其進行特征提取后,實現微陣列數據的高精度分類。

圖4 6種模型分類結果Fig.4 Classification results of six model
針對當前基因微陣列數據處理面臨的數據維度高、分類精度低的問題,構建了基于BTLBOGSA與CNN的基因微陣列數據分類模型(BTLBOGSA-CNN)。該模型基于BTLBOGSA進行基因微陣列數據的特征選擇,實現基因微陣列數據維度的縮減,并利用CNN實現基因微陣列數據的分類。在實驗中,將BTLBOGSA-CNN與其他分類模型進行對比,結果表明BTLBOGSA-CNN相對于已有模型可以更好地進行基因表達譜數據分類,具有更高的分類精度。但是,由于TLBO算法與GSA的局限性,BTLBOGSA-CNN模型無法對特征規模過大的基因數據集進行有效分析。在后續的研究中,將著重分析基因特征之間的關聯性,設計出更有效的特征選擇算法,以便于實現對癌癥及惡性腫瘤等疾病的有效預測。