郭玉萱 阮春陽 王 曄 張彥春
1(復旦大學計算機科學技術學院 上海 201203)2(維多利亞大學可持續工業與宜居城市研究所 澳大利亞 墨爾本 8001)
隨著新藥的開發和應用,藥源性肝損傷在臨床實踐中越來越普遍。中草藥的廣泛使用已成為藥源性肝損傷的主要成因之一,受到醫療工作者廣泛關注[1-3]。肝臟是藥物代謝的主要器官,特別容易受到藥物傷害。統計顯示,藥源性肝損傷約占藥物不良反應的10%~15%,在老年人群體中占比甚至超過了20%。隨著藥源性肝損傷病例的增加,安全用藥和肝損傷的治療得到了越來越多的關注。近年來,傳統草藥所致肝損傷的病例有明顯增加的趨勢。統計顯示,有100多種傳統草藥[4]和105種中成藥[5]被發現有肝毒性。然而,由于草藥成分的復雜性,制備方法的多樣性以及缺乏對草藥致病性的研究,診斷草藥誘發的肝損傷仍然是一項挑戰。
通過案例研究和實驗分析,研究人員已經能夠鑒別出一些與肝臟不良反應有關的藥物[6]。很多有關草藥誘發肝損傷的研究集中在有機成分上。例如,澳大利亞的治療用品管理局(TGA)提出[7],蒽醌類成分可引起何首烏不良反應,對大黃成分的研究表明游離和結合的蒽醌可能具有肝毒性。當然,傳統草藥中的微量元素在肝損傷中也起著重要作用。秦的團隊[8]著重回顧了近30年來中藥和微量元素的研究成果。通過元素測定,探討了微量元素與中藥療效的辯證關系,并比較了中藥與食品中微量元素的含量。他們總結出微量元素是傳統草藥中有效成分的核心成分。配位化學理論[9]的提出,強調了有機分子和微量元素的配合物也是草藥中重要的有效成分。微量元素在人體新陳代謝和健康中發揮著至關重要的作用[10]。通過成分分析來研究中草藥的肝毒性機制是非常有意義的。
事實上,從大量傳統中藥中尋找肝毒性藥草是一項艱巨任務?!吨腥A本草》中有記載的傳統草藥多達8 980種。2015版《中國藥典》一部共記錄2 598份傳統草藥的成分和處方,而臨床統計僅有100多種中草藥具有肝毒性。數據不平衡會增加草藥識別和分類的難度。也就是說,分類過程將嚴重偏向大多數類別的樣本。本文使用的數據集也具有類別不平衡的特征。在103種中藥的樣品中,只有21種已知會引起肝損傷。為了解決這種不平衡中藥鑒別分類問題,我們提出了一種基于權重的過采樣方法與兩種集成學習相結合來提高分類效果。
具體來說,這項工作的突出貢獻總結如下。
1) 提出了一種新的加權過采樣技術,通過特征權重優化來處理不平衡數據集。通過優化特征權重的方法生成的新樣本會更多強調少數類所包含的信息。從而保證這些新樣本在訓練過程中更具有代表性,在解決不平衡分類問題上取得更好的性能。
2) 基于Bagging和Boosting元算法,結合加權過采樣模式開發了兩種新的集成學習算法。
3) 設置對照實驗,評估所提出的方法在鑒定肝毒性草藥中的表現。我們采用幾種評估方法將我們提出的算法與現有分類算法進行比較,并證明我們的方法在處理不平衡問題時的有效性。
在現實世界中,樣本分布通常是不平衡的,這給機器學習帶來了巨大的挑戰。實際上,很難準確地將真正問題中的少數民族確定和分類。但是,如果我們必須關注這些少數民族樣本,可能會造成很大的損失。這種失衡問題在金融欺詐檢測、語音處理、信息檢索、醫療診斷等許多領域都很普遍。
現有的解決不平衡數據分類問題的方法可以主要分為兩類[11-12]:基于數據的和基于算法的。前者的目標是通過創建新樣本或二次取樣來平衡樣本的分布。隨機欠采樣和ENN是兩種欠采樣方法,它們通過從多數類中減去樣本來平衡不同類別的數據。合成少數類過采樣技術(SMOTE)是一種典型的過采樣方法?;谒惴ㄒ暯侵饕菑姆诸惼鲀灮慕嵌瘸霭l。可以通過增加錯誤分類的成本來增強分類模型,例如成本敏感學習、集成學習、級聯分類模型。此外,還可以使用更全面的績效評估標準來約束模型的有效性。
SMOTE[13]是解決數據不平衡問題的流行和有效的過采樣方法。該算法依據少數類樣本及其最近鄰居產生了新的合成樣本,以達到過采樣的目的。具體而言,對于少數類Cmin,考慮每個少數類樣本Xi的K個最近鄰居(通常設置為5)。兩個樣本之間的相似性衡量:
(1)
式中:X=(x1,x2,…,xm)和Y=(y1,y2,…,ym)表示兩個樣本,m是樣本特征的數量。Wi表示第i個特征的權重,通常設置為1。定義新的合成樣本為:
(2)

集成學習是通過多個模型(分類器)組合來解決特定機器學習問題的過程。使用一系列分類器進行學習,并通過某種規則將各個分類器的學習結果整合起來得到比單個分類器更好的學習結果。主要的集成學習思想有Bagging和Boosting。
Bagging即Bootstrap Aggregating,是一種最簡單的基于集合的算法。其中bootstrap是一種有放回的抽樣方法。在該算法中,不同的分類器用不同的訓練數據子集進行多次訓練,這些訓練數據子集是從整個訓練集中隨機選擇的。常用的基于bagging思想的算法有隨機森林算法。它使用隨機重采樣和隨機節點分割技術構造多個決策樹。這些基本決策樹的分類結果并不理想。但是,通過使用集體投票,最終可以建立具有更好泛化能力的分類器。其計算公式為:
(3)
式中:f(x;Li),i=1,2,…,N是一個基分類器,Li表示的是該分類器使用的訓練器,它是初始樣本集D的一個子集,即Li∈D。
Boosting是一個串行迭代過程,它更多地關注錯誤分類的樣本,通過改變樣本分布來增加這些數據的權重。AdaBoost和Gradient Boosting Decision Tree算法都基于Boosting思想。基本AdaBoost是針對二分類問題的。首先,將所有訓練樣本的權值初始化為1/N,然后調用弱分類器進行T輪迭代,每一次訓練都依據分類結果更新訓練樣本的權值,對錯分樣本給予更高的權重。每一次迭代都會得到一個預測函數ft,每一個預測函數也會根據其預測精度賦予一個權值αt,最終的分類結果為迭代產生的函數序列的加權組合:
(4)
在這項工作中,具有肝毒性的草藥屬于少數類Pos,而其他草藥屬于多數類Neg,有|Pos|<<|Neg|。我們希望使用這些標記來尋找肝毒性藥物分類的可靠標準。為了解決這個問題,我們提出了一種基于權值的過采樣分類方法,以提高過采樣過程的有效性,并提高分類的準確性。
該算法可以自動學習和修改特征的權重,并生成新的樣本添加到原來的數據集中。特征權重根據分類錯誤率計算:
(5)

(6)
式中:NPos和NNeg是數據集中正數和負數樣本的數量。這些特征的權重將用于計算K近鄰并根據等式(1,2)合成新樣本。
我們將基于權重的過采樣方法與Bagging進程集成為新的自適應過采樣分類算法:WSMOTE_Bagging。它需要進行T輪迭代。在第t輪中,通過使用提出的過采樣方法來修改樣本分布Dt。然后基本分類器fm在經過處理的新數據集上進行訓練。每個特征的權重是基于分類器fm計算的。最后,所有基本分類器被組合成集合分類器Hm。算法步驟如下:
Step 1:參數初始化,t=0;
Step 2:隨機抽取N個訓練集子集;

Step 4:對所有過采樣處理的子集進行學習,得到基分類器序列{f1,f2,…,fN},根據式(3)獲得最終集成分類結果Ht。
Step 5:根據式(5)、式(6)計算特征權重Wi,并對現有的特征權值進行更新;
Step 6:t←t+1;
若t≥T,則退出循環至Step 7;
否則,轉至Step 2;
Step 7:輸出集成分類器HT。
WSMOTE_Boosting基于通常使用的boosting方法。與上面的算法最大的不同在于它的基分類器是串行生成的。在這個算法中,我們也對分類器訓練進行T輪迭代。在每一輪中,使用具有不同權值分布的樣本集來進行學習并構建一個分類器。每次迭代結束都會更改樣本權重。將所有這些基分類器最終組合起來。在整個迭代的過程中,需要即時改變的有特征權值、樣本權值以及分類器權值。算法步驟如下:
Step 1:參數初始化,t=0;
Step 2:根據式(1)、式(2)和過采樣率R,合成新的樣本,構建新的訓練集D′;
Step 3:對D′進行學習,得到基分類器ft;
Step 4:根據下式計算基分類器ft的權值:
(7)
(8)
Step 5:根據式(5)、式(6)計算特征權重,并對現有的特征權值進行更新;
Step 6:根據下式計算樣本權值并修改:
(9)
Step 7:t←t+1
若t≥T,則退出循環至Step 8;
否則,轉至Step 2;
Step 8:根據式(4)計算得出最終的分類器,并輸出結果。
該數據庫由維多利亞大學工程與科學學院提供[14]。他們從當地的藥店和大學獲得191種常用藥材。所有這些材料都經過良好的加工、儲存。使用電感耦合等離子體光譜法(ICP)來確定這103個樣品中24種元素成分總含量和生物可利用含量,包括了常量元素(K、Na、Ca和Mg),微量元素(Fe、Cu、Zn、Mn、Mo、Se、Cr和Co),痕量元素(Sn、Ni、V、Li和Bi)及有害元素(Pb、As、Cd、Hg、Al、Sb和Ba)。
收集整理了傳統藥材致肝損傷的相關文獻,并在上海中醫藥大學基礎醫學院的幫助下,對103種中藥進行了標記。其中有21種草藥被標記為具有肝毒性的藥物(正樣本)。
在本文中,我們使用F-score、G-mean和AUC作為績效評估指標。F-score和G-mean定義如下:
式中:acc+為真“正類”率,acc-為真“負類”率,Precision和Recall則分別代表查準率和查全率。F-score和G-mean是兩項綜合性的評價指標,在評價不平衡分類問題時更具有代表性。
AUC也是衡量不平衡問題的一個可靠性能指標。對于二元分類問題,ROC曲線(Receiver Operator Characteristic curve)是一個綜合評估指標,該曲線中的所有點都反映了相同的敏感度。它使用分類性能(fpr,tpr)對;其中fpr是假陽性率(FP/(FP+TN)),tpr是真陽性率(TP/(TP+FN))。AUC是指ROC曲線下方的面積。
本文設置了幾組對照實驗來評估提出方法的有效性,并對上述數據集進行了測試;通過10折交叉驗證來重復試驗。實驗首先對ROS、SMOTE和WSMOTE在不同過采樣率上的分類表現進行評價,然后對比了RF、Adaboost、SMOTEboost[15]、WSMOTE_Bagging、WSMOTE_Boosting幾種分類算法在3.2節提到的評價指標上的表現。
眾所周知,不同的過采樣比率可能會影響過采樣方法的魯棒性,并且最優過采樣比率是不可知的。我們系統地分析不同比率的各種抽樣技術,并通過F-score和G-mean評估有效性。過采樣率R在[50%,200%]的范圍內變化。當R為200%時,此時訓練集中的正樣本與負樣本比例近似為1。從表1和表2可知,WSMOTE在多種過采樣比條件下均比其他方法獲得更好的分類效果。

表1 三種過采樣方法在不同采樣率下的G-mean對比值
表3列出了召回率、F值、G均值和AUC方面的結果。實驗結果顯示,相比于RF和Adaboost兩種分類算法,過采樣處理能夠提高不平衡分類問題的準確度。與其他方法相比,將WSMOTE與Boosting算法相結合可獲得最好的分類效果。這意味著使用自適應特征權重計算可以通過關注少數類中錯誤分類的例子來提高分類器的性能。

表3 五種分類算法在過采樣率為200%時的分類結果比較
SMOTEBoost、WSMOTE_Bagging以及WSMOTE_Boosting這三種方法在不同過采樣率下的ROC曲線如圖1至圖3所示。

圖1 過采樣率為50%時三種算法的ROC曲線

圖2 過采樣率為100%時三種算法的ROC曲線

圖3 過采樣率為200%時三種算法的ROC曲線
綜合上述實驗結果,基于權值的過采樣分類算法可以很好地處理中藥肝損傷檢測中的非平衡分類問題,尤其是對少數類的樣本的鑒別能力。
中藥肝毒性的準確檢測是非常有價值的。本文以草藥中微量元素含量為特征進行分類分析,提出了一種新的基于權重的過采樣分類算法來解決不平衡問題。在實驗中,我們比較了我們的方法和傳統分類算法的性能。實驗表明,WSMOTE_Boosting算法比其他算法具有更好的分類性能。它可以有效地處理不平衡分類問題;為進一步研究草藥與藥源性肝損傷之間的關系提供指導。
在今后的工作中,我們計劃獲取更多的草藥微量元素數據作進一步研究,并改進我們的分類模型。還將研究相容的藥物和復雜的藥物制劑。