關(guān)紅鈞,王 蕾
(1.沈陽大學(xué) 師范學(xué)院,遼寧 沈陽 110044;2.沈陽師范大學(xué) 數(shù)學(xué)與系統(tǒng)科學(xué)學(xué)院,遼寧 沈陽 110034)
分類問題是機器學(xué)習(xí)的主要任務(wù)之一,醫(yī)療診斷、用戶檢測、遙感圖像分類和垃圾分類等都會用到分類算法[1-4].針對分類問題,已有很多學(xué)者提出多種經(jīng)典算法,例如樸素貝葉斯和支持向量機等.高速發(fā)展的科技使獲取數(shù)據(jù)的方式越來越簡單,然而現(xiàn)實數(shù)據(jù)集的各類樣本通常是不平衡的,總會有某一類明顯多于其他類,形成不平衡數(shù)據(jù)集.傳統(tǒng)分類算法默認各類別樣本分布相對平衡,應(yīng)用在不平衡數(shù)據(jù)上分類結(jié)果是偏的,影響后續(xù)分析決策.因此如何提高不平衡數(shù)據(jù)的分類精度已成為熱點問題.
copula理論是Sklar[5]最先提出的,連接邊緣分布和多元聯(lián)合分布的函數(shù)就是copula函數(shù).此后Joe[6]和Nelsen[7]進一步拓展完善copula理論,總結(jié)并介紹了常用copula族函數(shù)及其性質(zhì).Embrechts等[8]首次將copula理論應(yīng)用到金融領(lǐng)域上.Bedford等[9-10]引入“Vine ”結(jié)構(gòu),建立R-Vine copula模型來應(yīng)對多維數(shù)據(jù)帶來的維數(shù)災(zāi)難.Aas等[11]提出了2種特殊Vine結(jié)構(gòu),即C-Vine(canonical Vine)和D-Vine(drawable Vine).Maugis等[12]闡述了Vine 結(jié)構(gòu)的性質(zhì),研究了pair copula的選擇方法和Vine 結(jié)構(gòu)的算法.由于C-Vine和D-Vine 結(jié)構(gòu)相對簡單,且能夠描述多維變量的相關(guān)結(jié)構(gòu),被廣泛應(yīng)用在金融問題的研究中.Di?mann[13]利用赤池信息量準(zhǔn)則(AIC)確定R-Vine結(jié)果中的copula函數(shù),以研究金融數(shù)據(jù)間的相關(guān)結(jié)構(gòu).Brechmann等[14]提出截斷與簡化高維Vine copula模型,并應(yīng)用在財務(wù)數(shù)據(jù)中,結(jié)果證明該方法能夠描述高維數(shù)據(jù)的重要相關(guān)結(jié)構(gòu).
為提高不平衡數(shù)據(jù)分類精度,本文提出了一種基于C-Vine copula的虛擬樣本生成算法.首先,對不平衡數(shù)據(jù)的少數(shù)類構(gòu)建C-Vine copula模型,得到條件分布函數(shù)和pair copula的類型及參數(shù).然后,結(jié)合多元逆采樣方法對少數(shù)類數(shù)據(jù)生成包含數(shù)據(jù)特征的虛擬樣本,將虛擬樣本與原始數(shù)據(jù)進行整合,得到平衡數(shù)據(jù)集.最后,利用傳統(tǒng)分類算法對平衡數(shù)據(jù)集進行分類,對算法進行分析和驗證.與SMOTE、Borderline-SMOTE和ADASYN相比,本文提出的算法在傳統(tǒng)分類器上表現(xiàn)較好,能夠提高分類器在不平衡數(shù)據(jù)上的分類性能.
Sklar定理是copula理論能夠廣泛應(yīng)用的理論基礎(chǔ).根據(jù)Sklar定理可知,一個n維聯(lián)合分布函數(shù)可以分解為n個邊緣分布和一個n維copula函數(shù)乘積的形式,其中copula函數(shù)描述了變量間的相依結(jié)構(gòu),簡化原有的多元函數(shù)建模問題.假設(shè)n維隨機向量X=(X1,X2,…,Xn)的聯(lián)合概率分布為F,邊緣分布函數(shù)為F1(x1),…,Fn(xn),則存在一個copula函數(shù)C使得
F(x1,…,xn)=C(F1(x1),…,Fn(xn))
成立.邊緣分布函數(shù)是連續(xù)函數(shù)時,copula函數(shù)C是唯一的.如果copula函數(shù)可微,X的聯(lián)合密度函數(shù)可以表示為
(1)
式中,fi(xi)是Fi(xi)的密度函數(shù)(i=1,…,n),c是C的概率密度函數(shù).令ui=Fi(xi),則有
n維隨機向量X=(X1,X2,…,Xn)的聯(lián)合密度函數(shù)表示為多個pair copula密度函數(shù)和邊緣分布函數(shù)的乘積,寫作
f(x1,…,xn)=f(xn)·f(xn-1|xn)·f(xn-2|xn-1,xn)·…·f(x1|x2,…,xn).
(2)
結(jié)合式(1)和式(2)可得:
f(x|v)=cxvj|v-j(F(x|v-j),F(vj|v-j))f(x|v-j),
式中,vj是向量v的一個分量,v-j是剔除vj后得到的向量,cxvj|v-j是pair copula函數(shù),條件分布函數(shù)F(x|v)表示為
(3)
當(dāng)v-j=?,式(3)寫作
copula函數(shù)在二元變量建模中發(fā)揮了重要作用,但在多維變量中,其待估參數(shù)的個數(shù)過多,導(dǎo)致維數(shù)災(zāi)難.而Vine copula函數(shù)能夠克服上述困難,更加準(zhǔn)確地描述多元變量之間的相關(guān)結(jié)構(gòu)[15].Vine結(jié)構(gòu)包括樹、邊和節(jié)點,每棵樹由若干條邊構(gòu)成,每條邊連接2個節(jié)點.一個n維Vine結(jié)構(gòu)可表示為T=(T1,…,Tn-1),其中第i棵樹Ti的邊是樹Ti+1的節(jié)點(i=1,…,n-1).C-Vine和D-Vine模型都可以在樹狀結(jié)構(gòu)下分解隨機變量的聯(lián)合分布,是應(yīng)用最廣泛的2類Vine模型[16-17].本文采用C-Vine copula結(jié)構(gòu)對數(shù)據(jù)進行建模.
C-Vine copula模型的聯(lián)合密度函數(shù)可以表示為
C-Vine copula模型的條件分布函數(shù)可以表示為
本文對于C-Vine copula模型中心節(jié)點的選擇及節(jié)點順序,參考Aas[11]等提出的基于Kendall秩相關(guān)系數(shù)排序的方法進行判斷.利用極大似然估計法對C-Vine copula模型的參數(shù)進行估計.根據(jù)AIC準(zhǔn)則選擇節(jié)點間pair copula函數(shù)類型.概率密度函數(shù)通過核密度方法得到.核密度方法是一種用于概率密度估計的非參數(shù)方法,對于n個獨立同分布的樣本x1,x2,…,xn,未知類樣本x的概率密度估計值為
其中K(·)取高斯核函數(shù),帶寬h>0.
逆采樣(inverse sampling)是偽隨機數(shù)采樣的一種方法.在已知任意概率分布的分布函數(shù)時,利用該方法可以生成隨機樣本.假設(shè)F是上連續(xù)遞增的分布函數(shù),它的廣義逆F-1表示為
F-1:(0,1)→,F-1(x)=inf{y∈:F(y)≥x}.
若隨機變量U~U[0,1],那么F-1(U)有分布函數(shù)F.若F是X的分布函數(shù),則F(X)~U[0,1],即X=F-1(U).
Xs=(xs,1,…,xs,T)表示原始樣本的少數(shù)類樣本,其中s=1,…,n為n個變量,T表示少數(shù)類樣本個數(shù).首先,對原始樣本的少數(shù)類樣本Xs構(gòu)建C-Vine copula模型,得到分布函數(shù)F、條件分布函數(shù)F2|1,F3|12,…,Fs|1,…,s-1和相應(yīng)的copula參數(shù).然后,生成m個服從均勻分布的隨機數(shù)Uo(o=1,…,m),m由多數(shù)類樣本與少數(shù)類樣本的數(shù)量差決定,利用條件分布函數(shù)的逆函數(shù),結(jié)合多元逆采樣方法進行抽樣,得到虛擬樣本V=(V1,…,Vm)~F.
最后,將原始樣本和得到的虛擬樣本V進行組合,得到平衡數(shù)據(jù)集,利用平衡數(shù)據(jù)集訓(xùn)練分類器.
傳統(tǒng)分類器通常采用整體分類準(zhǔn)確率和錯誤率作為評價標(biāo)準(zhǔn),但是對于不平衡數(shù)據(jù)分類問題,這些標(biāo)準(zhǔn)無法準(zhǔn)確評價分類結(jié)果.為此,學(xué)者們針對不平衡數(shù)據(jù)分類問題提出了合適的評價指標(biāo):G -mean(幾何平均值)和F-measure(F值)等.本文選擇G -mean、F-measure和Recall(查全率)來評價不平衡數(shù)據(jù)的分類情況.表1給出了二分類問題的混淆矩陣.
表1 混淆矩陣Table 1 Confusion Matrix
根據(jù)混淆矩陣可以得到查全率、查準(zhǔn)率(Precision)、G -mean和F-measure.
式中,G -mean用來衡量分類器對于兩類樣本分類的平均性能,兼顧了多數(shù)類準(zhǔn)確率和少數(shù)類準(zhǔn)確率,比整體準(zhǔn)確率更加適合評價不平衡數(shù)據(jù)的分類情況.F-measure比G -mean更加關(guān)注少數(shù)類分類性能,能夠兼顧少數(shù)類的查準(zhǔn)率和查全率,也被廣泛應(yīng)用在不平衡數(shù)據(jù)分類性能評價中,β表示調(diào)節(jié)Recall和Precision的系數(shù),其取值通常為1[18].
在KEEL存儲庫和UCI機器學(xué)習(xí)數(shù)據(jù)庫選擇了3個實際數(shù)據(jù)集進行實驗,表2給出了數(shù)據(jù)集的基本信息.對于多類別的數(shù)據(jù)集,選擇某一類作為正類,其余所有類別作為負類.實驗中訓(xùn)練集和測試集按照7∶3的比例劃分.
表2 數(shù)據(jù)集基本信息Table 2 Basic information of datasets
實驗先處理不平衡數(shù)據(jù)集,利用SMOTE、Borderline-SMOTE、ADASYN和C-Vine copula虛擬樣本生成算法得到平衡數(shù)據(jù)集,再用SVM和RPART兩個分類器對平衡數(shù)據(jù)集進行分類.表3~表5分別給出了數(shù)據(jù)集在SVM和RPART上的分類結(jié)果,其中CVI表示C-Vine copula虛擬樣本生成算法,BLSMOTE表示BorderLine-SMOTE虛擬樣本生成算法.根據(jù)表3~表5可知,由CVI得到的平衡數(shù)據(jù)集在2個分類器上的分類結(jié)果優(yōu)于其他方法.說明基于C-Vine copula模型生成的虛擬樣本的質(zhì)量好于SMOTE、Borderline-SMOTE和ADASYN所生成的樣本質(zhì)量.
表3 數(shù)據(jù)集1的分類結(jié)果Table 3 Classification results of dataset 1
表4 數(shù)據(jù)集2的分類結(jié)果Table 4 Classification results of dataset 2
表5 數(shù)據(jù)集3的分類結(jié)果Table 5 Classification results of dataset 3
本文提出了一種基于C-Vine copula的虛擬樣本生成算法,以實現(xiàn)對不平衡數(shù)據(jù)分類精度的有效提高.該方法通過對少數(shù)類數(shù)據(jù)構(gòu)建C-Vine copula模型,結(jié)合逆采樣方法生成包含數(shù)據(jù)特征的虛擬樣本,從而得到平衡數(shù)據(jù)集,對平衡數(shù)據(jù)集進行分類,得到分類結(jié)果.與其他方法相比,C-Vine copula虛擬樣本生成算法能夠有效提高不平衡數(shù)據(jù)分類的精度,為不平衡數(shù)據(jù)分類問題提供算法層面的解決方法.
圖2 Dijkstra算法與A*算法路徑搜索Fig.2 Path search of Dijkstra and A* algorithm
(a) A*搜索結(jié)果
圖7 最小化snap優(yōu)化效果Fig.7 Minimum snap optimization graphics