吳東苑,楊 偉,2**,唐進法,李學林,王曉艷,劉紅梅,易丹輝
(1.中央民族大學理學院 北京 100081;2.中國中醫科學院中醫臨床基礎醫學研究所
北京 100700;3.河南中醫藥大學第一附屬醫院 鄭州 450000;4.國家康復輔具研究中心附屬康復醫院 北京 100176;5.中國人民大學統計學院 北京 100872)
不平衡數據處理方法對中藥不良反應預測的應用研究*
吳東苑1,楊 偉1,2**,唐進法3**,李學林3,王曉艷3,劉紅梅4,易丹輝5
(1.中央民族大學理學院 北京 100081;2.中國中醫科學院中醫臨床基礎醫學研究所
北京 100700;3.河南中醫藥大學第一附屬醫院 鄭州 450000;4.國家康復輔具研究中心附屬康復醫院 北京 100176;5.中國人民大學統計學院 北京 100872)
目的:針對中藥不良反應數據的不平衡性,探索并應用不平衡數據的處理方法,對中藥的不良反應進行預測。本文以使用丹紅注射液的患者為研究對象,對來自37家醫院集中監測數據進行深度挖掘,在使用了丹紅注射液的患者中預測是否發生不良反應。方法:從數據層面采用四種方法:不處理、隨機欠采樣、隨機過采樣、SMOTE采樣;從算法層面采用四種模型或算法:決策樹、隨機森林、AdaBoost算法、Gradient Boosting算法,對數據的不平衡性進行處理。兩個層面的方法兩兩結合,對16種方法與模型或算法組合的預測效果進行比較。結果:隨機欠采樣和AdaBoost算法相結合、隨機欠采樣和Gradient Boosting算法相結合的預測效果較為理想,recall和G-mean都達到80%以上,AUC指標也高達0.86。結論:初步探索中藥不良反應可能適用的不平衡數據處理方法,預測結果結合實際經驗,能較準確地預測使用了丹紅注射液的患者是否發生不良反應,在臨床實際應用中能起到一定的警示作用。同時,根據輸出的變量重要性排名,能最大程度地避免用藥后的不良反應的發生,為丹紅注射液的安全性再評價提供一些科學參考依據。
不平衡數據 不良反應 集中監測數據 采樣 boosting
中藥注射劑是一種不僅見效快,而且擁有傳統中藥治療特色的制劑,它能夠對急危重癥患者發揮非常重要的治療作用[1]。然而這幾年,隨著中藥注射劑的普遍使用,被發現的藥品不良反應記錄也在逐漸增多[2]。由于臨床應用中更關注中藥不良反應的預測,而這方面的研究還很不足,特別是利用來自醫院集中監測的觀察性數據對不良反應的預測研究涉及更少,本文以丹紅注射液為例進行不良反應預測的應用研究,在一定程度上彌補這方面的空白。除此之外,本文針對中藥不良反應數據中,相比龐大的未發生不良反應患者數量,發生不良反應的患者還是占少數的情況,采用不平衡數據處理方法進行不良反應預測的應用研究。通常我們把僅有極少的少數類樣本的數據稱為不平衡數據[3],此時,若采用一般的分類學習算法訓練預測模型,則模型很難獲得讓人滿意的預測精度[4]。
丹紅注射液是以丹參、紅花作為主要提取物的一種中藥注射劑,它具有調節血管張力,改善臟器血液循環的作用[5],隨著其在臨床上的普遍使用,發生不良反應的病例數正在逐漸上升[6],丹紅注射液的安全性再評價研究也在日益豐富。目前,從統計學角度出發的丹紅注射液不良反應研究尚處于萌芽階段,多采用描述性統計[7]、顯著性檢驗[8]和Logistic回歸[9]等傳統統計方法對不良反應情況進行描述與分析,尚未進行預測方面的研究。本文使用丹紅注射液人群中不良反應發生的數據就呈現不平衡特點,我們將初步探索處理不良反應不平衡數據的方法,并進行不良反應的預測,且分析引起不良反應發生的可能影響因素,這對正確探討丹紅注射液臨床安全用藥的潛在規律,以及科學地評估中藥安全性和臨床合理應用提供方法學基礎。

表1 混淆矩陣
由于使用中藥的患者中發生不良反應的人群數量過于稀少,為了達到較為理想的預測效果,本文探索并應用不平衡數據處理方法對其進行預測。處理不平衡數據,一般從兩大層面入手:數據層面和算法層面。
在數據層面上,主要依照一定的規律對數據進行重新采樣,使其達到平衡。本研究采用如今較為流行幾種重新采樣方法。隨機欠采樣是對使用中藥患者中未發生不良反應的病例進行簡單隨機抽樣,使其與發生不良反應的病例數持平;隨機過采樣是對使用中藥患者中發生不良反應的病例進行簡單隨機復制,使其數量擴增至與未發生不良反應的病例數相當;SMOTE[10]是針對每一個使用中藥并發生了不良反應的患者,根據其最近鄰的分布,隨機生成一些模擬的不良反應樣本,使其數量與未發生不良反應的病例數相當。
在算法層面上,一般是將一些傳統預測方法與能夠適應不平衡數據分布的算法相結合,形成能夠處理不平衡數據的預測方法。本研究采用常見的決策樹、隨機森林[11],并以決策樹為基礎結合AdaBoost算法[12]和Gradient Boosting算法[13]對丹紅注射液的不良反應進行預測。AdaBoost算法和Gradient Boosting算法都是一種集成學習算法,不同之處在于:AdaBoost算法是在每一輪迭代中,對被分類預測錯誤的樣本進行加權,以此更新原有樣本的分布情況,然后結合新分布下的樣本重新構建一個新模型并得到它的對應權重,最后將所有模型進行線性組合;Gradient Boosting則是在每一次迭代中計算出一個殘差,每次迭代新的模型,都是為了讓上次迭代構造模型的殘差能夠往梯度方向上降低,最后將所有模型進行線性組合。
針對不平衡數據分類問題,常用的評價標準有recall(又稱sensitivity)、precision、specificity、F-value、G-mean等,具體公式如下:

可以知道,求取少數類的F-value是一種非常有效的評價準則,它是recall和 precision的調和均值,其中的 β是可調參數,用于反映recall和 precision的相對重要度,通常情況下取1。如果同時關注多數類樣本和少數類樣本的分類性能,可以使用G-mean來度量效果,它能度量兩個類別的平均分類性能。
除此之外,ROC曲線能夠全面地展示分類器在不同閾值下的分類性能,它是令縱坐標y=TP/(TP+FN),表示少數類被分對的比例,橫坐標x=FP/(TN+FP),表示多數類被分錯的比例。一個分類算法的ROC曲線如果越靠近坐標平面的左上角,說明這個分類算法的分類效果越好。與此同時,為了對分類性能進行更好地定量分析,可以采用ROC曲線下的面積AUC來對分類性能進行評估,一個分類算法的AUC值越接近于1,表明這個分類算法的分類效果越理想[14]。
本研究采用丹紅注射液患者醫院集中監測數據,該數據由6省市37家醫院參與研究,監測醫院從2009年4月至2013年8月所有使用丹紅注射液的住院患者,共計納入有效病例數30888例,年齡跨度為0到99歲。其中發生不良反應108例,未發生不良反應30780例,數據呈現極度不平衡性特點。
原始數據集包含患者基本信息、病癥情況、給藥情況、綜合情況這四大類信息,共有變量1834個。其中患者基本信息包含年齡、性別、體重指數、懷疑過敏物等78個變量,病癥情況包含適應病癥、是否中醫辨證等671個變量,給藥情況包含是否首次使用丹紅注射液、用藥次數、合并用藥名稱等970個變量,綜合情況包含病情變化情況、癥狀改善情況等115個變量。由于原始數據集存在大量特征變量,需要在模型構建之前對特征變量進行初步篩選。采用三種方法綜合選取變量:組間比較、特征選擇、臨床經驗判斷。
2.2.1 組間比較
將發生不良反應的病例樣本歸為不良反應組,將未發生不良反應的病例樣本歸為正常組,針對每一個變量進行組間比較,查看在各個變量上兩組別之間是否有顯著差異。最后發現有14個變量存在組間差異,分別為性別、體重指數、有無個人過敏史、有無家族過敏史、有無過敏疾病史、是否中醫辨證、是否首次使用丹紅注射液、用藥次數、最后一次用藥時間、最后一次靜滴速度、病情變化情況、癥狀改善情況、中醫證候療效判定、體征變化情況。
2.2.2 特征選擇
特征選擇是從原始數據集的所有特征中,通過選出一些分類效果最明顯的特征來降低數據集的維度,這也是提高算法的分類性能的一個重要方法。

表2 14個存在組間差異的變量情況
分別從患者基本信息、給藥情況、綜合情況三個方面進行特征選擇,為選出最佳的特征子集,使用隨機森林進行測試,設置20次迭代,結果為:(1)患者基本信息:體重、年齡、性別、有無過敏疾病史的各變量;(2)給藥情況:是否首次使用丹紅注射液、用藥次數、最后一次用藥時間、最后一次靜滴速度、單次給藥量;(3)綜合情況:病情變化情況、癥狀改善情況、中醫證候療效判定、體征變化情況、是否存在不合理用藥。
2.2.3 臨床經驗判斷
除原始數據集包含的變量以外,在數據預處理的過程中還將懷疑過敏物、適應病癥、合并化藥、合并中成藥等變量進行啞變量處理(取值0和1),得到四類數據集,基于相關臨床經驗判斷,由于更關注不良反應組的過敏、病證及用藥情況,故保留這四類數據集中不良反應組的發生頻數大于0的變量,其中有19種懷疑過敏物,42種適應病癥,138種化藥名稱,35種中成藥名稱。
2.2.4 初篩結果
本研究對象為所有使用丹紅注射液的患者,是否發生不良反應作為結局變量,取值0和1,0表示未發生不良反應,1表示發生不良反應;根據初篩特征變量的結果,最終放入預測模型進行訓練的解釋變量共有252個,包括如下四大方面的變量:(1)患者基本信息:年齡、性別、體重指數、有無個人過敏史、有無家族過敏史、有無過敏疾病史、不良反應組發生頻數大于0的懷疑過敏物(共19個);(2)病證情況:不良反應組發生頻數大于0的適應病癥(共42個)、是否中醫辨證;(3)給藥情況:是否首次使用丹紅注射液、用藥次數、最后一次用藥時間、最后一次靜滴速度、單次給藥量、合并用藥種類數、不良反應組發生頻數大于0的合并化藥(共138個)、不良反應組發生頻數大于0的合并中成藥(共35個);(4)綜合情況:病情變化情況、癥狀改善情況、中醫證候療效判定、體征變化情況、是否存在不合理用藥。
經過特征初篩后,還需對數據進行剔除缺失值的操作,若一個樣本中有變量存在缺失值,就將這個樣本直接剔除。最終整理得到的新數據集共有22838個樣本,其中不良反應組有93個樣本,正常組有22745個樣本。在不良反應組和正常組中分別隨機抽取80%的樣本組成訓練集,余下20%的樣本組成測試集。得到的數據集樣本量如表3。

表3 數據集樣本量
在建模過程中,首先對原始訓練集進行數據層面的處理,即采用不處理、隨機欠采樣、隨機過采樣和SMOTE算法這四種處理方法進行處理。不處理的訓練集即為原始訓練集(共有18271個樣本);隨機欠采樣,即是在原始訓練集中的18196例正常樣本中隨機抽取75個,與不良反應樣本數持平,將其記為訓練集A(共150個樣本);隨機過采樣,即是對原始訓練集中的75例不良反應樣本進行重復隨機抽樣,不斷抽取直到達到和正常樣本數相同的18196個不良反應樣本,將其記為訓練集B(共36392個樣本);SMOTE算法,則是取最近鄰數k=70,反復生成新的模擬的不良反應樣本,直至其樣本數與正常樣本數接近1:1,將其記為訓練集C(共31670個樣本)。
接著,分別對原始訓練集、訓練集1、訓練集2和訓練集3采用5折交叉驗證法進行算法層面的處理,建立決策樹、隨機森林、以決策樹為弱分類器的AdaBoost算法和以決策樹為弱分類器的Gradient Boosting算法這四種模型。
最后,利用測試集對總共16種算法組合進行分類預測,查看 recall、precision、F-value、G-mean、ROC曲線以及AUC值,綜合這些評價準則,比較各算法組合的分類預測效果。
本研究利用R 3.3.2中的DMwR包、rpart包和caret包等對丹紅注射液不良反應監測數據進行分類預測,各個算法的分類結果比較如表4所示。
從recall來看,在數據層面對不平衡數據的處理方法中,不處理的分類效果不出所料是最差的,但隨機欠采樣的效果反而比隨機過采樣和SMOTE算法好。這可能是因為數據集樣本量多,欠采樣不會丟失太多重要信息,反而比容易產生過擬合的過采樣方法效果要好。
從precision來看,沒有特別出眾的算法搭配,不過查準率展現的是在被預測為正類的樣本中實際為正類的比率,從臨床醫學上來說,人們更關注的是發生不良反應的患者能否被準確分類預測,因此在兩者不可兼得的情況下,該指標的重要性不及查全率。
F-value作為查全率和查準率的調和均值,取值會偏向于兩者較低的一端,因此效果同查準率一樣有好有壞,當分類效果中查全率與查準率不可兼得時,在臨床醫學領域的參考意義同樣不大。
G-mean是反映少數類識別率和多數類識別率的綜合指標,可以發現隨機欠采樣與兩種boosting算法的組合,以及決策樹與隨機欠采樣、隨機過采樣、SMOTE算法的組合效果都比較好,能夠達到80%以上。
根據表3中所列的評價準則,主要利用查全率和G-mean對分類性能進行評估判斷,得出初步結論:隨機欠采樣和AdaBoost算法組合的分類效果最好,查全率高達88.89%,G-mean值高達85.74%;其次是隨機過采樣和決策樹組合、隨機欠采樣和Gradient Boosting組合效果較好,查全率和G-mean值也都能達到80%以上;再次一些的是SMOTE算法和決策樹組合,這一組合雖然G-mean值有82.19%,但查全率僅維持在72.22%,分類性能還算可以;其余算法組合的分類結果都不是特別理想。
下面結合各算法組合的ROC曲線圖(如圖2)與AUC指標(如表5)進行進一步綜合判斷。
結合圖2和表5可以發現,單從ROC曲線和AUC指標來說,決策樹與數據層面的各種處理方法相結合的分類效果均不太理想;隨機森林與隨機過采樣、SMOTE算法這兩種過采樣處理方法相結合的分類效果較好;AdaBoost算法分別與隨機欠采樣、隨機過采樣、SMOTE算法組合的分類效果較好;Gradient Boosting算法與隨機欠采樣和SMOTE算法的組合效果較為理想。

表4 各算法分類結果比較
綜上所述,隨機欠采樣和AdaBoost算法相結合、隨機欠采樣和Gradient Boosting算法相結合這兩種算法組合的分類性能相對最好。
通過比對16種不同的方法與算法組合,發現隨機欠采樣和AdaBoost算法、隨機欠采樣和Gradient Boosting算法這兩種組合針對本研究使用的數據集分類性能相對較為理想,也以此得出了一些結論。
根據各算法組合的分類預測效果,可以在數據層面發現一些處理不平衡數據分類問題的總體性趨勢:當數據不平衡時,對數據進行采樣處理,使得不平衡數據趨于平衡,其分類預測效果整體要優于不進行不平衡數據處理的情況;另外,采用SMOTE算法處理不平衡數據,在與隨機欠采樣和隨機過采樣的處理方法的對比上,并不具有明顯優勢。除此之外,雖然得到兩種算法組合的分類預測效果較好,但這樣的算法組合運用在別的領域,甚至只是相同領域的不同數據集上時,分類效果還需要實際操作來證實。

圖2 各算法的ROC曲線圖比較

表5 各算法的AUC指標比較
本研究在對比算法組合預測效果的同時,也輸出了最佳算法組合的變量重要性排名,以此從側面挖掘一些丹紅注射液不良反應的可能影響因素,能夠在臨床上提供一些用藥的科學根據,醫生結合實際經驗,能更科學合理地使用丹紅注射液為患者進行治療,并最大程度避免用藥后不良反應的發生。總得來說,為了預先防范使用丹紅注射液可能發生的不良反應,在用藥之前,需要從患者的年齡、性別、體重指數、過敏物歷史以及是否首次使用丹紅注射液這些方面來考慮該患者是否適合使用丹紅注射液,是否有很大可能發生不良反應;在用藥過程中,醫護人員也要把關用藥次數、用藥劑量、注射時間、靜滴速度、與丹紅注射液合并使用的藥物名稱以及患者的病情、體征變化情況,特別是要格外注意用藥規范,不可出現不合理的用藥情況。
綜上所述,本研究雖采用了一些現今較為流行的不平衡數據處理方法,但沒有結合其它更復雜的處理方法進行應用和比較,比如特征選擇算法、代價敏感算法等,這還需更加深入的研究。另外,本研究只對不平衡數據處理方法進行了應用,并未對方法的適用性或改進條件進行深入探討,這都將是今后研究的重點。
1 張冰,吳嘉瑞.關于中藥注射劑安全性問題的思考.臨床藥物治療雜志,2006,4(6):14-18.
2 周超凡.中藥注射劑不良反應的警示.中國藥物警戒,2005,2(2):65-68.
3 Sun Y,Kamel M S,Wong A K C,et al.Cost-sensitive boosting for classification of imbalanced data.Pattern Recogn,2007,40(12):3358-3378.
4 Yanmin S,Andrew K C,Mohamed S K.Classification Of Imbalanced Data:A Review.Int JPattern Recog,2009,23(4):687-719.
5 王保中,曹茂榮,鄒薇紅,等.丹紅注射液的毒理學研究.中國實用醫藥,2008,3(11):27-29.
6 柳青,雷招寶.丹紅注射液的不良反應及合理應用.中成藥,2010,32(11):1964-1966.
7 陳倩,易丹輝,楊偉,等.基于HIS“真實世界”的丹紅注射液上市后臨床應用分析.中國中藥雜志,2011,36(20):2817-2820.
8 劉玉平.丹紅注射液的臨床不良反應監測.山西醫藥雜志,2014(7):820-822.
9 李春曉,唐進法,孟菲,等.基于巢式病例對照方法的丹紅注射液安全性再評價研究.中國中藥雜志,2012,37(18):2735-2738.
10 Chawla N V,Bowyer K W,Hall L O,et al.Smote:Synthetic Minority over-sampling Technique.JArtif Intell Res,2002,16(1):321-357.
11 Breiman L.Random Forests.Mach Learn,2001,45(1):5-32.
12 Freund Y,Schapire RE.A decision-theoretic generalization of on-line learning and an application to boosting.European Conference on Computational Learning Theory.Springer-Verlag,1997:119-139.
13 Friedman J H.Greedy Function Approximation:A Gradient Boosting Machine.Ann Stat,2001,29(5):1189-1232.
14 Xue J H,Hall P.Why Does Rebalancing Class-Unbalanced Data Improve AUC for Linear Discriminant Analysis?Ieee T Pattern Anal,2015,37(5):1109.
Application Research of Imbalanced Data Processing Methodson Prediction of Adverse Reactionsof Traditional Chinese Medicine
Wu Dongyuan1,Yang Wei1,2,Tang Jinfa3,Li Xuelin3,Wang Xiaoyan3,Liu Hongmei4,Yi Danhui5
(1.Collegeof Science,Minzu University of China,Beijing 100081,China;2.Instituteof Basic Research in Clinical Medicine,China Academy of Chinese Medical Sciences,Beijing 100700,China;3.The First Affiliated Hospital of Henan University of Traditional Chinese Medicine,Zhengzhou 450000,China;4.Rehabilitation Hospital,National Research Center for Rehabilitation Technical Aids,Beijing 100176,China;5.School of Statistics,Renmin University of China,Beijing 100872,China)
In view of the imbalance of the adverse reaction data of traditional Chinese medicine(TCM),this paper explored and applied the processing method of imbalanced data to predict adverse reactions of TCM.This paper took patients who used Dan-Hong(DH)injection as the research object,excavated centralized monitoring data from 37 hospitals,and predicted adverse reactions from patients who used DH injection.This paper combined four data-level approaches,including non-processing,random undersampling,random oversampling and SMOTE algorithm,with four algorithm-level approaches,including decision tree,random forest,AdaBoost and Gradient Boosting,to process the imbalanced data,and then to compare their prediction performance.Finally we found that two algorithms,combining random undersampling with AdaBoost,and combining random undersampling with Gradient Boosting,had better prediction performance than other algorithms.Their recall and G-mean both reached 80%;and AUC was more than 0.86.It was concluded that the imbalanced data processing methods were preliminary explored.This method is applicable to the prediction of TCM adverse reactions in combination with practical experiences.It can accurately predict whether adverse reactions occurred in patients who used DH injection.It can play a certain warning role in clinical practice.At the same time,according to the importance of the output variable ranking,we can minimize the occurrence of adverse reactions after treatment.It provided some scientific references for the safety reassessment of DH injection.
Imbalanced data,adverse reaction,centralized monitoring data,sampling,boosting
10.11842/wst.2017.09.008
R33
A
2017-05-13
修回日期:2017-08-25
* 國家自然科學基金委青年科學基金項目(81502898):大型觀察性醫學數據的因果圖模型研究,負責人:楊偉;重大新藥創制專項子課題(2015ZX09501004-001-007):臨床需長期使用的中藥口服制劑安全性監測研窮,負責人:李學林。
** 通訊作者:楊偉,統計學博士,助理研究員,主要研究方向:大規模觀察性數據分析方法及因果推斷研究;唐進法,醫學博士,副主任藥師,主要研究方向:中藥合理用藥。
(責任編輯:張娜娜,責任譯審:王 晶)