李順勇,趙永勝
(山西大學(xué) 數(shù)學(xué)科學(xué)學(xué)院,山西 太原 030006)
大數(shù)據(jù)時(shí)代,為獲取更多的數(shù)據(jù)提供了便利條件,也給數(shù)據(jù)研究帶來(lái)了挑戰(zhàn).當(dāng)數(shù)據(jù)維數(shù)遠(yuǎn)遠(yuǎn)高于樣本量時(shí),很多常用的經(jīng)典算法往往舉步維艱.面對(duì)巨多雜亂的數(shù)據(jù),如何處理,才能為研究做數(shù)據(jù)支撐?統(tǒng)計(jì)學(xué)者把變量選擇作為解決這一問(wèn)題的突破口.選擇出相關(guān)性高的變量,為進(jìn)一步對(duì)模型進(jìn)行預(yù)測(cè)和解釋埋下伏筆.Fan和Lv[1]將變量選擇作為處理超高維數(shù)據(jù)的突破口.目前最常用的變量選擇方法有:基于統(tǒng)計(jì)學(xué)方法的主成分分析、充分降維、偏最小二乘回歸、全部子集法等.其中,李正欣等[2]提出了一種基于共同主成分的降維方法;解洪勝等[3]介紹3種非線性降維算法的概念和實(shí)現(xiàn)步驟;李向杰等[4]提出了一種穩(wěn)健的降維方法,使用了切片逆回歸方法.基于范數(shù)的變量選擇方法有:嶺回歸、Lasso回歸、彈性網(wǎng)回歸及SCAD等.其中,Tibshirani[5]提出的Lasso方法已經(jīng)得到了廣泛的運(yùn)用;Efron 等[6]提出了LARS算法;Sherwood[7]利用 SCAD估計(jì)方法和MCP估計(jì)算法進(jìn)行變量選擇;Zhang[8]在進(jìn)行降維的過(guò)程中,既保留了數(shù)據(jù)的代表性又節(jié)省了運(yùn)算空間.
上述方法適用于線性回歸的變量選擇,而對(duì)于復(fù)雜的模型,尤其當(dāng)數(shù)據(jù)維數(shù)比較大的時(shí)候,會(huì)出現(xiàn)消耗時(shí)間過(guò)長(zhǎng)的問(wèn)題.并且當(dāng)數(shù)據(jù)的維數(shù)大于樣本量時(shí),變量選擇的效果比較差.針對(duì)這一問(wèn)題運(yùn)用split-and-conquer加向前選擇法對(duì)非參數(shù)可加模型進(jìn)行研究,以解決傳統(tǒng)方法在處理超高維數(shù)據(jù)時(shí)耗時(shí)過(guò)長(zhǎng)的問(wèn)題.
Stone[9]首次提出非參數(shù)可加模型,具體的表達(dá)式為
(1)
其中,X表示解釋變量,Xij表示向量Xi的第j個(gè)變量,Y表示被解釋變量,(Yi,Xi),i=1,...,n與(Y,X)獨(dú)立同分布.μ在這里是常數(shù),作為截距項(xiàng).εi是一個(gè)隨機(jī)變量,其均值為0,方差為σ2.fj(j=1,…,p)表示函數(shù)項(xiàng).當(dāng)E(Xij)=0,Var(Xij)=1,E(Yi)=0,Var(Yi)=1時(shí),常數(shù)項(xiàng)變?yōu)?,即μ=0.本文假設(shè)函數(shù)滿足Efj(Xj)=0,1≤j≤p使得函數(shù)展開(kāi)時(shí)具有唯一性,即使得被解釋變量的均值為0.我們定義指標(biāo)集P1={1,2,…,p},|P1|=p=pn,使得fj(Xj)≠0時(shí)的變量為相關(guān)聯(lián)的變量,與之對(duì)應(yīng)的集合為M0={j:Efj(Xj)2>0},那么此時(shí)得到的稀疏模型就為p0=|M0|.
(2)
面對(duì)大量的高維數(shù)據(jù),尤其當(dāng)數(shù)據(jù)維數(shù)高于樣本量的時(shí),進(jìn)行變量選擇迭代次數(shù)很大,會(huì)浪費(fèi)很長(zhǎng)的時(shí)間.而split-and-conquer方法進(jìn)行變量選擇前的數(shù)據(jù)處理可以解決耗時(shí)長(zhǎng)的問(wèn)題.
Chen提出的split-and-conquer方法[10],不僅能夠很好的去除錯(cuò)誤模型選擇帶來(lái)的偽相關(guān),而且可以極大地降低計(jì)算時(shí)間.計(jì)算機(jī)產(chǎn)生的時(shí)間復(fù)雜度正比于O(na,pb),a>1,b≥0.
(3)
相應(yīng)的懲罰估計(jì)為:
(4)
其中ρ(β;λk)訓(xùn)練參數(shù)λk的懲罰函數(shù),可參見(jiàn)文獻(xiàn)[11].當(dāng)數(shù)據(jù)量比較大的時(shí)候,此方法不僅能夠選擇出關(guān)聯(lián)特征,還能很大程度上節(jié)省時(shí)間.
秦玲曄[12]提出了非參數(shù)向前選擇法.向前選擇方法一般用于參數(shù)回歸中,將其用到非參數(shù)回歸中,運(yùn)用殘差平方和進(jìn)行選擇,得到使殘差平方和最小的變量.篩選的變量集合為:
具體步驟為:
1)設(shè)t1=0,S0=0.
2)進(jìn)行迭代.當(dāng)t1次迭代,St1-1和P1﹨St1-1中的各個(gè)元素為備選模型Mj,t1-1=St1-1∪{j},計(jì)算每個(gè)j值的RSSMj,t1-1,選擇出RSS最小時(shí)的j值記為at1=arg minj∈P1﹨St1-1RSSMj,t1 - 1,迭代得到St1-1∪{at1}.
由于非參數(shù)向前選擇法比較復(fù)雜,會(huì)消耗很長(zhǎng)時(shí)間,所以本文通過(guò)設(shè)置殘差平方和的大小來(lái)控制迭代.設(shè)迭代次數(shù)為D0時(shí)可以停止,記BIC準(zhǔn)則為:
(5)
非參數(shù)向前選擇法具有變量選擇一致性的特點(diǎn).
本文考慮真正例、假正例、R23個(gè)指標(biāo)來(lái)衡量模型的好壞.
真正例表示預(yù)測(cè)值和真實(shí)值同為1,而假正例表示真實(shí)值為0,預(yù)測(cè)值為1的情況,在文章中我們希望真正例越大越好,而盡量避免假正例的存在.
平均模型大小可以看做變量選擇模型好壞的評(píng)價(jià)指標(biāo),可通過(guò)計(jì)算樣本的R2,即
(6)
當(dāng)R2越大,則表示模型的擬合效果越好.
考慮模型1:Y=g1(X)+g2(X)+g3(X)+g4(X)+ε
其中g(shù)1(X)=-sin(2x),g2(X)=x2-25/12,g3(X)=x,
g4(X)=exp(-x)-2/5×sin(2.5),X~U(-2.5,2.5),ε~N(0,1).
定義信噪比為3.可得到函數(shù)與非參數(shù)可加模型的擬合結(jié)果圖如圖1所示.
圖1中是通過(guò)變量選擇后前 4個(gè)得出來(lái)的圖,虛線是函數(shù)的真實(shí)值,實(shí)線是預(yù)測(cè)值,2條外部的實(shí)線表示預(yù)測(cè)值的置信區(qū)間.圖1、2中橫坐標(biāo)表示自變量,縱坐標(biāo)表示預(yù)測(cè)值.從模擬圖c中可以明顯地看出來(lái),當(dāng)預(yù)測(cè)的函數(shù)比較簡(jiǎn)單,呈一條直線時(shí),預(yù)測(cè)效果較好,預(yù)測(cè)曲線與真實(shí)曲線都比較接近;當(dāng)預(yù)測(cè)的函數(shù)為一條簡(jiǎn)單曲線,如擬合圖d,預(yù)測(cè)值與真實(shí)值會(huì)在曲線的地方發(fā)生較小偏離;從擬合圖a和b中可以看出,非參數(shù)向前選擇法在預(yù)測(cè)曲線的拐角處時(shí)會(huì)發(fā)生較大偏離,預(yù)測(cè)效果較差.總的來(lái)說(shuō),隨著真實(shí)曲線的曲度不同,非參數(shù)向前選擇法預(yù)測(cè)的效果稍有差別,但總體預(yù)測(cè)效果較好.
圖2中預(yù)測(cè)曲線與真實(shí)曲線都比較接近.當(dāng)曲線比較簡(jiǎn)單時(shí),模型擬合的比較好;當(dāng)曲線比較復(fù)雜時(shí),模型模擬的稍微差一點(diǎn).但是總的來(lái)說(shuō),選擇出的變量還是與真實(shí)曲線的走勢(shì)一致,如模擬圖f1,當(dāng)真實(shí)曲線發(fā)生較多拐彎,雖然在拐彎處發(fā)生了偏離,但預(yù)測(cè)曲線仍可以適應(yīng)其正確的走勢(shì).根據(jù)模擬1和2,得出模型在時(shí)間和預(yù)測(cè)準(zhǔn)確度方面的結(jié)果.為了對(duì)比,加入split-and-conquer(SAC)方法對(duì)數(shù)據(jù)處理,以驗(yàn)證是否在保持模型準(zhǔn)確性的同時(shí),能節(jié)省時(shí)間.非參數(shù)向前選擇法,文獻(xiàn)[12]給出了詳細(xì)的解釋.本節(jié)得出的數(shù)據(jù)結(jié)果,如表1所示.
表1 模擬數(shù)據(jù)效果對(duì)比
表1中,模擬1的數(shù)據(jù)通過(guò)非參數(shù)向前選擇法得到的正確率為0.936,消耗時(shí)間為 12.12 min.通過(guò) SAC 方法處理數(shù)據(jù)后,再使用非參數(shù)向前選擇法得到的準(zhǔn)確率為 0.923,消耗時(shí)長(zhǎng)為4.31 min.結(jié)果表明,數(shù)據(jù)通過(guò)SAC方法處理后準(zhǔn)確率減小了,但是影響程度不大.從消耗時(shí)長(zhǎng)的角度來(lái)看,有很好的效果,節(jié)省了 7.81 min;模擬 2的數(shù)據(jù)通過(guò)非參數(shù)向前選擇法得到的正確率為 0.797,消耗時(shí)長(zhǎng)為 15.68 min.通過(guò)SAC方法處理數(shù)據(jù)后,再使用非參數(shù)向前選擇法得到的準(zhǔn)確率為 0.824,消耗時(shí)長(zhǎng)為 3.96 min.結(jié)果表明,數(shù)據(jù)通過(guò)SAC方法處理后準(zhǔn)確率增加了,但是影響程度也不大,而從消耗時(shí)長(zhǎng)來(lái)看,節(jié)省了 11.72 min.總之,數(shù)據(jù)進(jìn)行SAC處理后,通過(guò)非參數(shù)向前選擇方法進(jìn)行變量選擇,對(duì)模型的準(zhǔn)確率影響不大,能保證處理前后結(jié)果的一致性,然而對(duì)數(shù)據(jù)進(jìn)行SAC方法處理后,能較好地節(jié)省時(shí)間.
變量選擇是解決大數(shù)據(jù)的一種方法,但是有效地處理高維數(shù)據(jù)有一定難度.本文針對(duì)這一問(wèn)題提出了一種新的方法進(jìn)行變量選擇.首先使用split-and-conquer方法將數(shù)據(jù)進(jìn)行拆分,然后使用B樣條函數(shù)逼近的非參數(shù)向前選擇法進(jìn)行研究.模擬實(shí)驗(yàn)表明,基于split-and-conquer的非參數(shù)向前選擇法可以將變量選擇出來(lái),并且節(jié)省了大量時(shí)間.