呂治政,李揚定,雷 聰
(廣西師范大學計算機科學與信息工程學院,廣西 桂林 541004)
隨著云計算和大數據技術的發(fā)展,大量高維數據易于獲取,高維數據隨處可見。高維特征數據樣本準確且能夠多樣性地表現樣本的特性[1],但由于其維數過高,不僅增大了數據存儲容量,而且在數據處理過程中容易導致“維數災難”問題[2]。屬性選擇技術的興起,使得其能夠按照某種評價指標,選出最優(yōu)的屬性子集對數據進行稀疏重構,保持了數據內在的關聯信息,使得分類器在低維子空間上進行訓練,很大程度上提高了在分類器上的訓練效率和預測準確率[3]。屬性選擇既可以使我們更加清楚地知道是哪種屬性導致了分類類別的不同,又可以有效地降低分類算法的計算復雜度,提高分類準確率。
針對數據“維數災難”問題,我們真正要解決的就是數據降維,通俗地講就是屬性選擇。近幾年對于屬性選擇的研究主要集中在線性屬性選擇算法和非線性屬性選擇算法。Luebke等人[4]提出了一種新的線性自適應屬性選擇算法,自適應的屬性選擇算法的優(yōu)點是對數據屬性選擇分類任務處理過程是自適應的,而且它也適用于各種數據類型的數據集,缺點就是在處理含有較多噪聲屬性的數據集時,從分類準確率的角度,還需要對算法進一步優(yōu)化。Magdalinos等人[5]提出了一種屬性選擇效果好且性能優(yōu)的屬性選擇算法,該算法的優(yōu)點是時間和空間復雜度小,但是目前該算法只在分類任務和聚類任務中得到了驗證,在處理高維大數據集時需要進一步加以驗證。Lee等人[6]基于統(tǒng)計學的方法提出了一種“內在”距離概念的屬性選擇算法。該算法的缺點是需要引入1個參數t,參數t的選取不是固定的,需要手動調節(jié),同時該方法需要在較大的數據集上進一步驗證?,F有的大多數關于屬性選擇的方法研究基本都是在傳統(tǒng)的方法上加以改進,依然存在很大的局限性。在最近也有了一些其他的屬性選擇方法出現,如:最小二乘回歸、樣本依賴圖、圖優(yōu)化的局部保持投影等。然而這些方法對參數是非常敏感的,在實際問題當中參數值的選擇是非常困難的,特別在處理高維數據集時,參數選擇對實驗結果的影響會很大,不能很好地反映屬性和類標簽之間的關系。
本文針對以上問題運用了稀疏表示(Sparse Representation)的思想,提出一種基于核稀疏表示的屬性選擇算法KSFS(Feature Selection based on Kernel Sparse representation)。該算法將核函數與稀疏學習相結合,通過核函數將原始數據映射到高維核空間中,使得在低維空間線性不可分的數據,在高維核空間中具有更高程度的可分性[7]。同時,對核空間的高維數據進行稀疏表示,按照評價指標找出最優(yōu)的屬性子集,在一定程度上降低了分類算法的計算量,提高了分類算法的穩(wěn)定性和準確率。具體地,該算法首先運用核函數構建與屬性相關聯的屬性核矩陣,屬性核矩陣數目與屬性數目一致,從而可以挖掘屬性核矩陣和類標簽之間的非線性關系;同時利用L1范數有效地構建屬性評分選擇機制來確定稀疏向量元素取值為0或非0,對應著數據屬性的取舍(0代表不選此屬性),得到原始數據集的一種稀疏表示方式;在算法優(yōu)化過程中引入了低秩約束方法,既去除了噪聲樣本和冗余屬性的影響,又考慮了數據之間的全局結構,從而選出最優(yōu)的屬性結構子集[2]。最終將最優(yōu)的屬性結構子集用于分類實驗得到分類準確率。
只要任何1個對稱函數所對應的核矩陣是半正定的,那么就可以稱之為核函數,可以通過核函數構建原始樣本的1個高維特征空間——核空間。核函數的1個非常重要的作用就是將原始樣本在低維空間線性不可分的問題轉化為高維核空間中的線性可分問題[8]。
定義k(xi,xj)是在Rn×n上的對稱函數,則k是核函數當且僅當對于任意數據X∈Rn×d,“核矩陣”K總是半正定的,通過核函數k(xi,xj),將數據集每1個列向量xi∈Rn×1=[x11,x21,…,xn1]T,i=1,2,…,d映射到核空間得到如下形式:
(1)
其中,K(i)∈Rn×n,i=1,2,…,d;m=1,2,…,n。
常用的核函數主要有以下幾種形式:
多項式核:
(2)
線性核:
(3)
拉普拉斯核:
k(xi,xj)=exp(-‖xi-xj‖2/σ)
(4)
高斯核:
k(xi,xj)=exp(-‖xi-xj‖2/(2σ2))
(5)
稀疏表示理論由于具有堅實的內在理論和重要的實際應用價值,使得稀疏表示得到了快速的發(fā)展,并且已經在數據挖掘和機器學習等重要領域得到了廣泛的應用。
在稀疏學習的基礎上,引入核函數將訓練樣本數據X∈Rn×d分解成為d個列向量xi∈Rn×1,i=1,2,…,d,通過核函數k(xi,xj)將每1個列向量xi投影到核空間生成新的屬性核矩陣K(i)∈Rn×n,i=1,2,…,d,進一步對核空間數據進行稀疏表示,稱為核稀疏表示,即解決問題:
(6)
其中,Y表示訓練集類標簽,W為系數矩陣,ε為最大誤差容忍變量。式(6)是一個典型的凸優(yōu)化問題,可以通過優(yōu)化L1范數得到問題的最優(yōu)解[9]。計算求解其最優(yōu)的稀疏向量α=[α1,α2,…,αd]T。
假設給定1個訓練集X∈Rn×d,其中n和d分別表示訓練集樣本數目和屬性數目,Y∈Rn×c表示訓練集類標簽,n和c分別表示類標簽樣本個數和類標簽類別數。通常情況下,在有監(jiān)督學習情況,屬性選擇的模型為:
(7)
其中,φ(W)是關于W∈Rd×c的正則化因子。式(7)通常情況下不能表示數據之間的非線性關系[10],因此我們需要引入核函數,通過核函數把數據映射到高維核空間。理論已經證明核空間的數據是線性可劃分的[9],利用該方法在核空間上執(zhí)行線性的屬性選擇從而實現低維空間上的非線性屬性選擇。
本文結合核函數和稀疏學習模型,將訓練樣本數據集X∈Rn×d分解成為d個列向量xi∈Rn×1,i=1,2,…,d,把列向量xi通過核函數k(xi,xj)投影到核空間生成新的屬性核矩陣K(i)∈Rn×n,i=1,2,…,d。對于整個數據集X∈Rn×d通過核函數映射會生成d個與屬性相關的核矩陣K(i)∈Rn×n,則核矩陣K(i)中的每1個元素為ki,j=k(xi,xj),其中k(xi,xj)為高斯核函數,具體如式(5)所示,其中σ>0為核函數的帶寬。
由于屬性和類標簽之間存在某種聯系,在此本文引入核函數考慮屬性與類標簽之間的非線性關系,把類標簽Y作為響應矩陣,把X通過核函數投影后形成屬性核矩陣K(i),i=1,2,…,d,通過矩陣Z和屬性選擇系數αi來表示響應矩陣Y與核矩陣K(i)之間的關系:
(8)
其中,Y∈Rn×c表示響應矩陣,K(i)∈Rn×n表示核矩陣,Z∈Rn×c表示系數矩陣。
為了使式(8)等號右邊的式子盡量擬合響應矩陣Y,用LF范數計算兩者之間的偏差,即可得到如下關系:
(9)
在式(9)基礎上引入Z的L2,p范數正則化項調整類標簽和屬性核矩陣之間的關系,避免模型過擬合,減少計算誤差,因此可得到如下關系:
(10)
(11)
其中,λ1,λ2為控制參數,0
因為噪聲樣本和冗余屬性會增加系數矩陣的秩,所以假設rank(Z)=r≤min(n,d),低秩限制的Z可以表示為Z=AB,其中A∈Rn×r,B∈Rr×c。綜上所述,最后可以得到如下目標函數:
s.t.rank(AB)≤min(n,d)
(12)
其中,K(i)∈Rn×n,Y∈Rn×c,AB∈Rn×c,α∈Rd×1,AB為重構系數矩陣,α為屬性選擇向量。
本文提出的KSFS算法具有以下優(yōu)點:
(1)KSFS算法采用有監(jiān)督方式建立模型,在目標函數中充分利用類標簽信息,將類標簽作為目標函數的響應矩陣,從而很好地考慮了類標簽和屬性之間的相關性;其次,在線性回歸模型下引入低秩約束方法來去除一些噪聲和冗余數據,從而實現了子空間學習的效果;同時提高了模型對高維數據分類的準確率。所以,KSFS算法相對于單一子空間學習方法具有更好的效果。
(2)KSFS算法在稀疏學習模型的基礎之上引入了核函數,通過核函數將原始數據映射到高維核空間,使得原始數據在高維核空間具有更高的可分性,在高維核空間上充分考慮了屬性與類標簽之間的非線性關系,屬性選擇效果比在低維空間要好很多。
(3)KSFS算法在目標函數中引入了向量α的L1范數,利用L1范數對模型具有很好的稀疏效果,從而使得稀疏向量α元素取值為0或非0,分別對應著數據屬性的取舍(0代表不選此屬性)。所以,在模型中把L1范數作為屬性選擇評分機制會起到良好的屬性選擇作用。
本文算法的偽代碼如下所示:
算法1KSFS算法
輸入:訓練集X∈Rn×d,Y∈Rn×c;正則化參數λ1,λ2;SVM分類器中參數(c,g)∈[-10:2:10],分類器選擇非線性模式。
輸出:樣本分類準確率。
步驟1根據目標函數式(12),調用算法2,求解目標函數全局最優(yōu)解屬性選擇向量α;
步驟2根據最優(yōu)解向量α,對原始數據集X∈Rn×d進行屬性選擇后得到的數據集,作為新的樣本數據集;
步驟3對新的樣本數據集樣本采用SVM分類。
目標函數式(12)中需要優(yōu)化的3個參數分別是A,B,α。由于目標函數中有L1范數的存在,且目標函數是非凸的,所以需要去分步迭代求解最優(yōu)的參數A,B,α。
s.t.rank(AB)≤min(n,d)
(13)
根據矩陣論知識[11],可以將目標函數的每1項表示為如下形式:
(14)
λ1‖AB‖2,p=λ1tr(BTATDAB)
(15)
(16)
式(15)中的D∈Rm×m是一個對角矩陣,且D中的對角元素根據參考文獻[11,12]可知為如下形式:
dii=1/(2/p)(‖gi‖2)2-p
s.t.i=1,2,…,m;0
(17)
其中,gi表示矩陣AB的第i行。
那么我們的目標函數可以進一步表示為如下形式:
(18)
(1)固定α,優(yōu)化A,B。
由于優(yōu)化B的過程實質是1個求導的過程,所以可以將目標函數中不包含B的項視為常數項,即在求導時此項為零,且令目標函數式(18)為J(A,B,α),那么可以得到:
(19)
對B求偏導,并令其所得偏導數等于零:
ATDTA)B-2ATPTY=0
(20)
從式(20)可以求解得到B:
B=(AT(PTP+λ1D)A)-1ATPTY
(21)
然后,把求解得到的矩陣B代入目標函數式(18)中可得到:
λ1‖A(AT(PTP+λ1D)A)-1ATPTY‖2,p+λ2‖α‖1
(22)
最后通過一系列的化簡可以得到:
(23)
在固定α的同時,式(23)要達到最小值,那么需要:
(24)
從式(24)中注意到:
St=PTP+λ1D,Sb=PTYYTP
(25)
其中,St和Sb分別表示線性判別分析LDA(Linear Discriminant Analysis)中的類內離散矩陣和類間離散矩陣,所以可以將式(25)代入式(24)求解得到A:
(26)
(2)固定A,B,優(yōu)化α。
因為只是優(yōu)化α,所以可以將目標函數式(12)進一步化簡展開為:
(27)
我們可以進一步令K(i)AB=Q(i)∈Rn×c,那么式(27)可以表示為:
(28)
αTS(i)(S(i))Tα)+λ2‖α‖1?
(29)
式(29)中f(α)定義如下:
(30)
進一步定義F(α):
F(α)=f(α)+λ2‖α‖1
(31)
很明顯,f(α)是可導的,而且▽f(α)滿足L-Lipschitz條件,那么就存在1個常數L>0,使得:
(32)
則在第t次迭代的向量αt附近可將f(α)通過二階泰勒展開式近似為如下:
(33)
很顯然,式(33)的最小值在式(34)中取得:
(34)
通過梯度下降法[8]對f(α)進行最小化,同時在每1步對f(α)進行梯度下降迭代考慮α的L1范數最小化,最終可以得到使F(α)最小化的向量α,即可得到如下表達式:
αt+1=
(35)
定義Ut:
(36)
然后將其代入式(35)得:
(37)
(38)
根據以上目標函數優(yōu)化過程,優(yōu)化算法能夠確保目標函數值在每1次迭代過程中逐步收斂,最終獲取全局最優(yōu)解。
算法2優(yōu)化求解表達式(12)的偽代碼
輸入:訓練集X∈Rn×d,Y∈Rn×c;屬性關聯結構度參數p;正則化參數λ1,λ2;梯度下降參數L。
輸出:矩陣AB,屬性選擇向量α。
1.初始化t=0;
2.初始化矩陣A,D,α為單位向量;
3.計算屬性核矩陣K(i)∈Rn×n;
4.repeat
4.1.根據式(21),更新B(t+1);/*表示第t+1次迭代的B*/
4.2.根據式(26),更新A(t+1);/*表示第t+1次迭代的A*/
4.3.更新對角矩陣D(t+1);/*表示第t+1次迭代的D*/
4.4.根據式(37)和式(38),更新α(t+1);
4.5.更新t=t+1;
4.6.Until目標函數式(12)收斂;
5.end
因為從目標函數式(12)中可以很清楚地看到它是非平滑的,它不僅有3個變量A,B,α需要優(yōu)化求解,而且它的正則化項也是非平滑的,所以在目標函數收斂性證明上還是存在一定的難度。但是,本文提出了一種有效的方法,下面是目標函數收斂性證明的具體過程。
從算法2中4.1到4.6迭代到第t次產生的結果:
〈A(t+1),B(t+1),α(t+1)〉=
λ1tr(BTATD(t)AB)+λ2‖α‖1
(39)
從而可以得到:
(40)
其中,令G(t)=A(t)B(t),G(t+1)=A(t+1)B(t+1),由式(17)構成的對角矩陣D,代入式(40)可以得到:
(41)
(42)
然后,結合式(42)就可以得到:
(43)
綜合以上所述,可以得到如下結果:
(44)
接下來,證明α優(yōu)化的收斂性。
定理1假設{αt}是由算法1產生的序列,那么對于任意t≥1時,就有以下式子成立:
(45)
定理1的證明可以參考文獻[13],該定理表明了近端梯度下降算法收斂計算復雜度為O(1/t2),其中t表示的迭代次數,同時也表明了式(31)是收斂的。
結合以上不等式和定理1就能證明目標函數是單調遞減的,所以目標函數是收斂的。
本文采用了10個常用的做屬性選擇的數據集,并且在數據集上測試本文提出的KSFS算法和近幾年比較優(yōu)秀的屬性選擇對比算法,通過實驗結果比較算法的性能和效果。實驗數據集的具體相關信息如表1所示。
Table 1 Data set information statistics表1 數據集信息統(tǒng)計
本文所有實驗都在Windows 7系統(tǒng)環(huán)境下運行的,使用Matlab 2014a編譯器編寫實驗算法和測試實驗效果性能。對比實驗選取了5種對比算法,將其實驗所得的結果與本文提出的KSFS算法所的結果進行比較。本文所有算法都采用10折交叉驗證方法和選擇不同的參數對實驗結果進行評估,實驗所選擇的分類器為Matlab工具箱中的SVM分類器,且分類器中參數(c,g)∈[-10:2:10],分類器類型都選擇非線性模式。
以下分別介紹5種對比算法:
(1)FSPG(Feature Selection for linear SVM with Provable Guarantees)算法[14]:是一種改進的SVM的屬性選擇算法。它可以用來做有監(jiān)督的學習算法,也可以用來做無監(jiān)督的學習算法,通過調節(jié)參數來選擇屬性選擇模型,從而確定它是有監(jiān)督的還是無監(jiān)督的,本文選擇有監(jiān)督學習模型作為對比算法。它是基于支持向量來提取特征的,在最壞的情況,保證了局部特征空間的邊緣距離在全局特征空間的邊緣距離誤差范圍之內,從而達到屬性選擇的目的。
(2)Lasso(high-dimensional feature selection by feature-wise kernelized Lasso)算法[15]:是一個有監(jiān)督學習屬性選擇算法,是在輸入特征和輸出值之間建立一種非線性依賴關系來進行高效的屬性選擇,其目的是通過引入核函數挖掘輸入特征數據與輸出值之間的非線性關系。通過求解非負約束的Lasso優(yōu)化問題、對偶增廣拉格朗日方法有效地求解問題,最終得到全局最優(yōu)解。
(3)FSSL(joint Feature Selection and Subspace Learning for cross-modal retrieval)算法[16]:是一種有監(jiān)督學習模型的算法。它是在跨模態(tài)檢索領域為了解決數據相關性度量和特征選擇問題所提出的一種屬性選擇算法,通過投影矩陣將數據投影到一個公共的子空間上,并在投影過程中同時選擇不同空間的相關性特征和判別特征,保證了數據間和數據內的結構相似性,此外在映射時引入L2,1范數正則項實現稀疏化,達到屬性選擇的效果。
(4)ERFS(Efficient and Robust Feature Selection via jointL2,1-norm minimization)算法[17]:是一種具有高效和魯棒性的有監(jiān)督屬性選擇算法。它的損失函數是基于L2,1范數回歸的損失函數,在數據特征提取和消除噪聲特征方面有很大作用。正則項部分也是基于L2,1范數,能夠對所有數據點特征進行關聯性稀疏,從而實現特征選擇的效果。
(5)CSFS(a Convex formulation for Semi-supervised multi-label Feature Selection)算法[18]:是一種利用半監(jiān)督學習方式結合了稀疏學習模型,并引入L2,1范數的正則化項來進行屬性選擇的算法。但是,并沒有考慮數據的全局結構和屬性之間的關系,所以屬性選擇效果也不是很理想。
本文中對比算法的實驗參數按照參考文獻設置,本文的KSFS算法實驗相關參數分別有r,λ1∈{108,109,1010,1011},λ2∈{0.05,0.06,0.07,0.08,0.09},L2,p范數中參數p取值為0
在進行分類任務之前,在10個數據集上測試本文算法,同時也證明了本文 KSFS算法的目標函數是收斂的。從圖1~圖10我們可以看出,本文提出的屬性選擇模型可以很好地擬合屬性和類標簽之間的關系,通過實驗發(fā)現,當梯度下降的參數在可控的范圍之內,L選取最大值時,目標函數的收斂速度越快,梯度下降參數L為10時,目標函數的收斂速度是最快的,圖1~圖10是L為10時目標函數在每個數據集上的收斂圖。
Figure 1 Convergence plot of the target function on Colon圖1 目標函數在Colon上的收斂圖
Figure 2 Convergence plot of the target function on Ecoli圖2 目標函數在Ecoli上的收斂圖
Figure 3 Convergence plot of the target function on Yale圖3 目標函數在Yale上的收斂圖
Figure 4 Convergence plot of the target function on Isolets圖4 目標函數在Isolets上的收斂圖
Figure 5 Convergence plot of the target function on PCMAC圖5 目標函數在PCMAC上的收斂圖
Figure 6 Convergence plot of the target function on Madelon圖6 目標函數在Madelon上的收斂圖
Figure 7 Convergence plot of the target function on Multiple圖7 目標函數在Multiple上的收斂圖
Figure 8 Convergence plot of the target function on SECOM圖8 目標函數在SECOM上的收斂圖
Figure 9 Convergence plot of the target function on CNAE圖9 目標函數在CNAE上的收斂圖
Figure 10 Convergence plot of the target function on CCUDS圖10 目標函數在CCUDS 上的收斂圖
實驗采用樣本分類準確率作為屬性選擇效果好壞評價的指標,樣本分類準確率越高,表明屬性選擇算法性能越好,反之屬性選擇算法性能越差。本文所有實驗采用10折交叉驗證方法,來驗證KSFS算法和對比算法的性能,把數據集按照10折交叉驗證方法分為10折,其中9折作為訓練集,1折作為測試集,并且選用SVM分類器進行分類,就可以得到不同屬性選擇算法的分類準確率。為了確保實驗的公平性和準確性,本文所有算法都在同一實驗環(huán)境下進行。最終把實驗10次運行結果的平均值和均方誤差作為屬性選擇算法性能評價的指標。最后把每個算法的實驗結果在10個公開數據集上繪制成對比圖,如圖11~圖20所示,相關算法具體實驗數據結果,如表2所示。
Figure 11 Accuracy of algorithms on Colon圖11 各算法在Colon上的準確率
通過圖11~圖20和表2所示的實驗結果可以看出,本文所有算法在10個公開數據集上的分類準確率,因為10折交叉驗證的隨機性,所以并不能確保KSFS算法每次的實驗結果都高于其他算法。但是,KSFS算法在每個數據集上的10次實驗結果大部分比對比算法要好,而且最終的平均準確率也是最高的。通過表2分析得出,KSFS算法與其他5種對比算法相比,其平均分類準確率均高于其他算法,同時通過表3可知,KSFS算法在10個數據集上運行所用的時間比對比算法所用的時間要少很多。與半監(jiān)督屬性選擇CSFS算法相比較,平均分類準確率提高了近7%,說明充分利用好數據的類標簽,對提高分類準確率是非常重要的;與經典的FSSL算法相比較,平均分類準確率提高了2%,從而更好地證明了本文KSFS算法比單純的子空間學習算法性能要好很多,同時運用了低秩約束的方法,去除冗余的屬性和噪聲樣本,充分考慮數據之間的全局結構,不斷調整屬性選擇的結果,從而使之達到最優(yōu)。在龐大樣本數量的Isolets和PCMAC等數據集上低秩約束的方法效果比較顯著,分類準確率提高了2%~3%;其次與近幾年比較優(yōu)秀的屬性選擇算法FSPG和Lasso、ERFS相比都有比較好的效果。通過引入核函數進行屬性選擇充分挖掘了屬性與類標簽之間的非線性關系,采用低秩約束的方法充分考慮了數據之間的全局結構,所以本文提出的算法有比較好的效果。
Table 2 Statistical results of classification accuracy表2 分類準確率(±均值方差)統(tǒng)計結果
Table 3 Running time statistics of the algorithm on data sets 表3 算法在數據集上的運行時間統(tǒng)計結果 s
Figure 12 Accuracy of algorithms on Ecoli圖12 各算法在Ecoli上的準確率
Figure 13 Accuracy of algorithms on Yale圖13 各算法在Yale上的準確率
Figure 14 Accuracy of algorithms on Isolets圖14 各算法在Isolets上的準確率
Figure 15 Accuracy of algorithms on PCMAC圖15 各算法在PCMAC上的準確率
Figure 16 Accuracy of algorithms on Madelon圖16 各算法在Madelon上的準確率
Figure 17 Accuracy of algorithms on Multiple圖17 各算法在Multiple上的準確率
Figure 18 Accuracy of algorithms on SECOM圖18 各算法在SECOM上的準確率
Figure 19 Accuracy of algorithms on CNAE圖19 各算法在CNAE上的準確率
Figure 20 Accuracy of algorithms on CCUDS圖20 各算法在CCUDS 上的準確率
本文結合核函數和稀疏學習提出了一種新穎的有監(jiān)督屬性選擇算法—KSFS算法。該算法將核函數嵌入到稀疏學習模型中,將原始數據集投影到高維核空間,使得原始數據集在高維核空間中具有更高的可分性,進一步在核空間上進行屬性選擇;在此基礎上利用L1范數正則化懲罰模型,避免模型過擬合,減小了計算誤差;同時,利用L1范數作為屬性選擇評分機制,選出重要的樣本屬性。該算法在回歸模型的基礎上,結合低秩約束的方法彌補了數據幾何結構方面的不足之處。實驗結果顯示,本文算法在分類準確率和穩(wěn)定性上都有了較大的提升,所以KSFS算法可以得到比較好的屬性選擇效果。在接下來的工作中,將嘗試用半監(jiān)督學習的屬性選擇方法擴展本文所提出的算法,并嘗試使用更好的方法來降低算法的計算復雜度和提高算法的穩(wěn)定性。