賈萍萍,李 揚(yáng)**
(1.中國(guó)人民大學(xué)應(yīng)用統(tǒng)計(jì)科學(xué)研究中心 北京 100872;2.中國(guó)人民大學(xué)統(tǒng)計(jì)學(xué)院 北京 100872)
基于真實(shí)世界采集的數(shù)據(jù)中,常常存在分類數(shù)據(jù)的不平衡問(wèn)題。如手術(shù)后患者是否死亡,死亡的人數(shù)很少,而存活的人數(shù)很多。在其他領(lǐng)域也有類似情況。當(dāng)數(shù)據(jù)集中某一類或者某些類的樣本量遠(yuǎn)遠(yuǎn)大于其他類時(shí),即為類間不平衡。在這類數(shù)據(jù)中如果按照傳統(tǒng)的模型評(píng)價(jià)方法,以最小化整體錯(cuò)誤率作為模型選擇的標(biāo)準(zhǔn),那么少數(shù)類對(duì)整體精度的影響遠(yuǎn)小于多數(shù)類,導(dǎo)致分類器傾向于將測(cè)試樣本判別為多數(shù)類,分類器在少數(shù)類上表現(xiàn)出較高的錯(cuò)誤率[1]。這樣變量選擇與預(yù)測(cè)的結(jié)果均失去意義,因?yàn)樵谶@些實(shí)際數(shù)據(jù)中數(shù)量少的一類樣本更具分類意義,少數(shù)類的誤判代價(jià)大于多數(shù)類的誤判代價(jià)。
不平衡問(wèn)題的處理方法主要分為兩大類[2]:一類是從訓(xùn)練集入手,改變訓(xùn)練集樣本分布,降低不平衡程度,例如使用各種采樣方法和訓(xùn)練集劃分方法,包括欠抽樣和過(guò)抽樣。欠抽樣(Under-sampling)通過(guò)減少多數(shù)類樣本使得數(shù)據(jù)達(dá)到平衡,缺點(diǎn)是會(huì)丟失多數(shù)類的一些重要信息,不能充分利用已有信息。過(guò)抽樣(Over-sampling)通過(guò)增加少數(shù)類樣本來(lái)使得數(shù)據(jù)達(dá)到相對(duì)平衡。隨機(jī)過(guò)抽樣是最簡(jiǎn)單的方法,它是在少數(shù)類樣本中隨機(jī)復(fù)制樣本以達(dá)到增加少數(shù)類樣本數(shù)的目的,但是容易造成過(guò)擬合。SMOTE抽樣[7]通過(guò)合成新樣本來(lái)增加少數(shù)類樣本,在一定程度上避免了過(guò)擬合[3]。另一類是從學(xué)習(xí)算法入手,適當(dāng)修改算法或者對(duì)模型評(píng)價(jià)的準(zhǔn)則進(jìn)行改進(jìn)使之適應(yīng)不平衡分類問(wèn)題,如代價(jià)敏感[10]。代價(jià)敏感不會(huì)改變數(shù)據(jù)的分布,但是代價(jià)本身不容易衡量。
在研究疾病發(fā)生的影響因素,不良反應(yīng)的影響因素等尋找“關(guān)鍵因素”的醫(yī)學(xué)問(wèn)題時(shí),要考慮不平衡問(wèn)題,同時(shí)也要考慮變量選擇的方法。這類問(wèn)題觀測(cè)得到的有一些是分段數(shù)據(jù),如年齡分段、用藥劑量等,如果將分段的變量拆分成啞變量直接做回歸,可能會(huì)出現(xiàn)同一個(gè)分段變量得到的啞變量有部分選擇出來(lái),部分未選擇出來(lái)[11]。為了避免這種結(jié)果的產(chǎn)生,可以使用Group Lasso作為懲罰項(xiàng),使得由一個(gè)變量拆分的一組啞變量同時(shí)被選入或者不被選入模型[11]。因此在分析這類數(shù)據(jù)時(shí),可以將基礎(chǔ)模型定為Group Lasso Logistic模型。
圖1 研究思路示意圖
Group Lasso的參數(shù)是通過(guò)最小化(1)式求解的,其中λ(λ≥0)是懲罰參數(shù)。參數(shù)λ的選擇很關(guān)鍵,λ越大代表懲罰力越大,會(huì)有更多的系數(shù)壓縮為0。
本文以Group Lasso Logistic模型為基礎(chǔ),從不平衡數(shù)據(jù)數(shù)據(jù)處理的角度出發(fā),介紹了基于SMOTE抽樣的Group Lasso和閾值調(diào)整的Group Lasso。全文共有4個(gè)部分,第1部分是研究背景,第2部分是研究方法與思路,第3部分通過(guò)實(shí)例應(yīng)用分析比較不同方法的結(jié)果與適用性,第4部分是總結(jié)討論與研究展望。
為了解決數(shù)據(jù)中的不平衡問(wèn)題,可以從數(shù)據(jù)層面出發(fā),通過(guò)抽樣改變數(shù)據(jù)的分布,使之達(dá)到平衡。但是由于抽樣具有一定的隨機(jī)性,過(guò)抽樣可能會(huì)導(dǎo)致過(guò)擬合,欠抽樣會(huì)損失一定的信息[5]。從少數(shù)類和多數(shù)類誤判代價(jià)不同的角度出發(fā),有研究者提出了改變預(yù)測(cè)閾值的方法來(lái)對(duì)不平衡數(shù)據(jù)建立分類模型[6,8]。這本質(zhì)上是代價(jià)敏感的體現(xiàn),即認(rèn)為少數(shù)類的錯(cuò)誤代價(jià)高于多數(shù)類。本研究從數(shù)據(jù)和代價(jià)兩種視角,用三種方法進(jìn)行變量選擇,并比較方法的優(yōu)劣。研究思路如圖1。
基于SMOTE抽樣的Group Lasso方法,使用交叉驗(yàn)證選擇(1)式中損失最小的λ,得到最優(yōu)模型,從而篩選出關(guān)鍵因素。閾值調(diào)整的Group Lasso是基于2013[6]年和2014[8]年李揚(yáng)等提出的調(diào)整預(yù)測(cè)閾值方法,分步調(diào)參或同時(shí)調(diào)參,前者先選擇出“最優(yōu)”的懲罰參數(shù)λ,再調(diào)節(jié)預(yù)測(cè)閾值,后者是同時(shí)選擇懲罰參數(shù)和預(yù)測(cè)閾值,以篩選出關(guān)鍵因素。
三種方法使用了TPR、FPR、AUC、G-Means等模型評(píng)價(jià)指標(biāo)。如果用TP表示實(shí)際為正類的樣本中預(yù)測(cè)為正類的個(gè)數(shù),F(xiàn)N表示實(shí)際為正類的樣本中預(yù)測(cè)為負(fù)類的個(gè)數(shù),F(xiàn)P表示實(shí)際為負(fù)類的樣本預(yù)測(cè)為正類的個(gè)數(shù),TN表示實(shí)際為負(fù)類的樣本預(yù)測(cè)為負(fù)類的個(gè)數(shù),那么:
即真正為正類的樣本被預(yù)測(cè)為正類的比例,又稱為真陽(yáng)性率。
即實(shí)際為負(fù)類的被預(yù)測(cè)為負(fù)類的比例,1-特異度即為假陽(yáng)性率。
對(duì)于很多分類器,最終輸出的是一個(gè)概率,如果閾值選擇不同,那么相應(yīng)的TP、FP等取值就會(huì)改變,由此引出了ROC曲線。ROC曲線以靈敏度(TPR)為橫軸,以1-特異度(FPR)為縱軸,刻畫(huà)了某個(gè)分類器在不同分類閾值下的TPR和FPR變化情況,是對(duì)模型預(yù)測(cè)效果的綜合評(píng)價(jià)。
G-Means是對(duì)靈敏度和特異度的綜合評(píng)價(jià)指標(biāo),公式如下:
2002年,Chawla等提出SMOTE(Synthetic Minority Oversampling Technique)抽樣方法。SMOTE算法的思想主要是:假設(shè)X是一個(gè)少數(shù)類樣本,尋找X的k個(gè)同類最近鄰樣本,假設(shè)采樣的倍率是n,則在這k個(gè)樣本中選擇n個(gè),記為Ci(i=1,2,…,n),在少數(shù)類樣本X和Ci之間隨機(jī)線性插值,生成新的樣本Zi。這種方法一定程度上避免了過(guò)擬合[7]。插值的公式:
本研究采用基于SMOTE抽樣的group lasso方法,方法如下:
第一步:在原始數(shù)據(jù)上進(jìn)行SMOTE抽樣,得到新樣本集合Sj(j=1,2,…,100)
第二步:在Sj中采用5折交叉驗(yàn)證選擇最優(yōu)的λ,得到最優(yōu)的模型Mj和選擇出的變量數(shù)gj。
第三步:由于SMOTE抽樣改變了一部分?jǐn)?shù)據(jù),在平衡的數(shù)據(jù)上選出最優(yōu)的模型后,更關(guān)注的是在原始數(shù)據(jù)上的效果如何。因此利用最優(yōu)模型對(duì)原始數(shù)據(jù)進(jìn)行預(yù)測(cè),得到ROC曲線下面積AUC;
第四步:調(diào)整閾值,計(jì)算不同閾值對(duì)應(yīng)的TPR、FPR以及G-Means。
1.2.1 分步調(diào)參
Logistic模型得到的結(jié)果是預(yù)測(cè)的概率,而預(yù)測(cè)閾值(Cutoff)是最終進(jìn)行預(yù)測(cè)的參考依據(jù)。當(dāng)預(yù)測(cè)概率大于閾值時(shí),預(yù)測(cè)結(jié)果是少數(shù)類(正類),當(dāng)預(yù)測(cè)概率小于閾值時(shí),預(yù)測(cè)結(jié)果是多數(shù)類(負(fù)類)。不同的閾值對(duì)應(yīng)著不同的靈敏度和特異度。2014年,李揚(yáng)等提出了分步驟調(diào)節(jié)參數(shù)和預(yù)測(cè)閾值使得靈敏度和特異度均達(dá)到較高水平的方法。方法如下:
第一步:λ選擇過(guò)程
采用AUC作為模型選擇的標(biāo)準(zhǔn),對(duì)于不同的λ,計(jì)算模型預(yù)測(cè)的AUC。選擇AUC最大時(shí)的λ作為最優(yōu)的Group Lasso的調(diào)節(jié)參數(shù)。
第二步:Group Lasso過(guò)程
根據(jù)第一步選擇的最優(yōu)λ,運(yùn)用Group Lasso Logistic模型選擇變量。由同一個(gè)變量產(chǎn)生的啞變量作為一組。采用分塊坐標(biāo)下降的方法進(jìn)行參數(shù)估計(jì)。
第三步:預(yù)測(cè)過(guò)程
由模型得到的是預(yù)測(cè)的概率,選擇不同的閾值來(lái)劃分多數(shù)類和少數(shù)類,會(huì)得到不同的靈敏度和特異度。閾值越大靈敏度越小而特異度越高。在靈敏度和特異度上進(jìn)行一個(gè)綜合考慮,選擇一個(gè)合適的閾值作為預(yù)測(cè)閾值。
1.2.2 同步調(diào)參
分步調(diào)參的過(guò)程將λ的選擇和閾值的選擇分開(kāi)進(jìn)行,兩個(gè)過(guò)程不一定能夠同時(shí)達(dá)到最優(yōu)。為解決這一問(wèn)題,李揚(yáng)等在分步調(diào)參方法的基礎(chǔ)上進(jìn)行了改進(jìn),提出同時(shí)選擇λ和預(yù)測(cè)閾值的方法[8]。方法如下:
第一步:在不同的λs下運(yùn)用Group Lasso Logisitc模型;
第二步:將數(shù)據(jù)分成K折,X1,X2,…,Xk;
第三步:對(duì)選擇的每一折Xi(i=1,2,…,K)作為驗(yàn)證集,剩下的K-1折作為訓(xùn)練集,在不同的λs下對(duì)訓(xùn)練集建立模型;預(yù)測(cè)閾值選取從0-1,步長(zhǎng)為0.01,在每個(gè)閾值下分別計(jì)算Xi的TP和FP。計(jì)算不同λs和預(yù)測(cè)閾值對(duì)應(yīng)的G-Means;
第四步:計(jì)算平均G-Means:
第五步:根據(jù)計(jì)算的兩個(gè)指標(biāo)選出最優(yōu)的λ和預(yù)測(cè)閾值,將對(duì)應(yīng)的結(jié)果作為最優(yōu)的模型。
全球有70%的人處于亞健康狀態(tài)(Suboptimal Health State,SHS)[6]。傳統(tǒng)中醫(yī)通過(guò)“辨證論治”的理論將人群分成不同的類別進(jìn)行治療,在治療亞健康狀態(tài)方面有非常突出的優(yōu)勢(shì)?!案斡羝⑻摗笔侵嗅t(yī)臨床中一個(gè)常見(jiàn)癥候[4],為尋找“肝郁脾虛”的人群特征,有6家醫(yī)院收集了307例亞健康患者問(wèn)卷數(shù)據(jù),其中診斷為肝郁脾虛的患者有57個(gè),非肝郁脾虛的患者有250個(gè),二者的比例為1∶4.39,數(shù)據(jù)存在不平衡。兩組人群在年齡、性別兩個(gè)維度上沒(méi)有差異。評(píng)估是否為肝郁脾虛的癥狀有22個(gè)(表1),每個(gè)都有5個(gè)水平,最后的啞變量有88個(gè)。使用基于SMOTE抽樣的Group Lasso和閾值調(diào)整的Group Lasso方法來(lái)尋找診斷“肝郁脾虛”的關(guān)鍵因素,并建立診斷模型。
表1 預(yù)測(cè)是否肝郁脾虛的癥狀*
圖2 100次抽樣結(jié)果的AUC
圖3 100次抽樣變量選擇情況
由于SMOTE抽樣具有一定的隨機(jī)性,所以重復(fù)進(jìn)行了100次抽樣,分別得到100個(gè)模型結(jié)果。圖2表示的是SMOTE抽樣方法得到的100個(gè)模型在總體中的AUC結(jié)果,圖3是100次變量選擇中22個(gè)變量被選出的頻數(shù)。從圖2可以看出,100個(gè)AUC大部分在0.85左右,但是個(gè)別抽樣結(jié)果得到的AUC低至0.5,說(shuō)明了單次抽樣結(jié)果不穩(wěn)定,使用抽樣方法解決不平衡問(wèn)題時(shí),不能僅僅根據(jù)一次抽樣得到的結(jié)果下結(jié)論。
三種方法最終選擇的變量結(jié)果如表3,所選擇的變量中大部分都是肝郁脾虛診斷使用較多的癥狀[4]。
表3表示的是閾值調(diào)整的兩種方法得到的預(yù)測(cè)效果。表中的數(shù)字代表靈敏度和1-特異度,例如當(dāng)患有肝郁脾虛的人中有98.2%的被預(yù)測(cè)為患病時(shí),沒(méi)有得肝郁脾虛的人中,有91%的被錯(cuò)誤預(yù)測(cè)為患病。如果更加關(guān)注靈敏度,則需要把閾值調(diào)低。
基于SMOTE抽樣的Group Lasso最終得到的模型結(jié)果顯示,在閾值為0.17時(shí)得到最大的G-means,對(duì)應(yīng)的靈敏度為0.77,特異度為0.76。而同時(shí)調(diào)參的閾值調(diào)整方法在閾值為0.15時(shí)得到最大的G-Means,對(duì)應(yīng)的靈敏度為0.89,特異度為0.64。作為一個(gè)診斷模型,更加關(guān)注的是真正患病的人能否得到診治,也就是更加關(guān)注靈敏度,基于這一點(diǎn)同時(shí)調(diào)參的閾值調(diào)整方法更好。
基于SMOTE抽樣的方法和基于閾值調(diào)整的方法,分別從數(shù)據(jù)角度和模型評(píng)價(jià)的角度來(lái)解決由不平衡帶來(lái)的問(wèn)題。基于抽樣的結(jié)果會(huì)受到抽樣比例的影響,也具有一定的隨機(jī)性,例如從圖2可以看出,有些抽樣結(jié)果表現(xiàn)比較差。當(dāng)少數(shù)類樣本的數(shù)量本身就比較少時(shí),如果生成過(guò)多的新樣本,會(huì)使得噪聲對(duì)模型的干擾增加,這時(shí)不建議使用抽樣方法。通過(guò)抽樣得到的最后結(jié)果,和閾值調(diào)整的思想結(jié)合起來(lái)進(jìn)行判斷才能得到一個(gè)相對(duì)合適的分類模型。基于閾值調(diào)整的方法,在參數(shù)選擇上,顯然使用交叉驗(yàn)證同時(shí)選擇更為合適。從結(jié)果上看,基于SMOTE得到的結(jié)果比閾值調(diào)整中的分步調(diào)參要好??紤]到模型為診斷預(yù)測(cè)模型,更加希望真正患病的病人得到正確診斷,即更加關(guān)注靈敏度,同時(shí)調(diào)參得到的結(jié)果較好。如果在基于SMOTE的方法中使用同時(shí)調(diào)參的思想,或許會(huì)得到更好的結(jié)果。
表2 選擇的變量及其系數(shù)
通過(guò)上述比較,我們可以認(rèn)識(shí)到在建模時(shí),選擇合適的評(píng)價(jià)指標(biāo)非常重要,對(duì)于不平衡數(shù)據(jù)帶來(lái)的問(wèn)題,有很多解決的方法,我們也應(yīng)當(dāng)選合適的方法去解決這個(gè)問(wèn)題,否則會(huì)造成模型得到的結(jié)果實(shí)際上并不能準(zhǔn)確反應(yīng)實(shí)際結(jié)果的情況。通過(guò)抽樣來(lái)改變數(shù)據(jù)的分布是比較方便的解決辦法,但是需要進(jìn)行閾值的判斷才能得到比較好的預(yù)測(cè)效果。在使用其他方法時(shí),引入調(diào)整閾值的思想,比直接使用一個(gè)臨界值作為判斷閾值得到的結(jié)果要好。
實(shí)際數(shù)據(jù)中除了類間不平衡問(wèn)題,還存在類內(nèi)不平衡問(wèn)題,即在某一個(gè)類別內(nèi),不同子集的數(shù)目相差很大。本研究?jī)H僅考慮了類間不平衡問(wèn)題,未來(lái)的工作重點(diǎn)可以放到類內(nèi)不平衡問(wèn)題上。在未來(lái)的應(yīng)用及研究中,如果使用了Lasso的方法,最好將Lasso的參數(shù)選擇和模型的選擇放在一起考慮,同時(shí)調(diào)節(jié)參數(shù)才能得到真正最優(yōu)的結(jié)果,否則只能得到某個(gè)參數(shù)條件下的局部最優(yōu)結(jié)果。實(shí)際上,不僅僅是Lasso,涉及到兩個(gè)及以上的參數(shù)調(diào)節(jié)的問(wèn)題,都需要從全局最優(yōu)的角度考慮。
表3 基于閾值調(diào)整方法得到的TPR和FPR