孟小燕
摘 要: 提出一種新的回歸算法——基于屬性權(quán)重的Bagging回歸算法。首先使用支持向量機(jī)回歸或主成分分析方法對(duì)樣本數(shù)據(jù)的屬性賦以一定的權(quán)值,以表明該屬性在回歸過程中的貢獻(xiàn)大??;再根據(jù)不同屬性的權(quán)重大小構(gòu)建訓(xùn)練使用的多個(gè)屬性子集。在構(gòu)建這些屬性子集的過程中,按照不同屬性權(quán)重在總權(quán)重中所占比重為概率進(jìn)行,使得對(duì)回歸貢獻(xiàn)大的屬性有更大的可能被選入屬性子集當(dāng)中參與訓(xùn)練;最后,對(duì)這些屬性子集進(jìn)行訓(xùn)練,生成相應(yīng)的多個(gè)回歸子模型,這些子模型的集合就是通過基于屬性權(quán)重的Bagging回歸算法訓(xùn)練得到的最終模型。
關(guān)鍵詞: 支持向量機(jī); 屬性權(quán)重; 集成學(xué)習(xí); 主成份分析; 回歸算法
中圖分類號(hào): TN911?34; TM417 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2017)01?0095?04
Abstract: An attribute weight based new regression algorithm called Bagging regression algorithm is proposed. The support vector regression or principal component analysis is used to value a certain weight for the sample data to show the attribute contribution in the regression process. And then the multiple attribute subsets for training were constructed according to the weights of different attributes. The constructing process of the attribute subsets is conducted in accordance with the weights of different attributes as a percentage of the total weight to determine the probability, which makes the attribute with great regression contribution possibly be selected in the attribute subsets for training. The attribute subsets are trained to generate the corresponding multiple regression sub?models. The assembly of these sub?models is the final model trained by the Bagging regression algorithm based on attribute weight.
Keywords: support vector machine; attribute weight; ensemble learning; principal component analysis; regression algorithm
在諸多回歸方法中,線性回歸方法是一種比較傳統(tǒng)的回歸方法,通過對(duì)自變量和應(yīng)變量之間統(tǒng)計(jì)量的分析,得到一個(gè)線性函數(shù)[1]。這種回歸方法能夠很好地?cái)M合線性關(guān)系的數(shù)據(jù),但是,對(duì)于非線性關(guān)系的數(shù)據(jù)則無法做到好的擬合。為了應(yīng)對(duì)線性回歸方法的缺陷,提出了支持向量機(jī)回歸方法。支持向量機(jī)回歸方法能夠解決許多非線性回歸問題[2]。本文通過綜合應(yīng)用支持向量機(jī)回歸方法、屬性權(quán)重方法和集成學(xué)習(xí)方法,取長(zhǎng)補(bǔ)短,提升現(xiàn)有的支持向量機(jī)回歸方法的準(zhǔn)確度[3]。
1 基于屬性權(quán)重的Bagging回歸方法
1.1 計(jì)算屬性的權(quán)重
1.1.1 通過SVM方法計(jì)算屬性權(quán)重
1.2 基于屬性權(quán)重對(duì)屬性進(jìn)行選取
對(duì)于樣本數(shù)據(jù)屬性的取舍是基于屬性的權(quán)重來決定的。如果一個(gè)屬性的權(quán)重比較大,那么認(rèn)為這個(gè)屬性對(duì)于最終的模型訓(xùn)練具有比較大的貢獻(xiàn),應(yīng)當(dāng)讓它有比較大的概率被保留[4]。而一個(gè)屬性的權(quán)重比較小,那么就認(rèn)為這個(gè)屬性對(duì)于最后的結(jié)果貢獻(xiàn)不大,保留它的概率就比較小了,換句話說,保留這個(gè)屬性的可能性就比較低。
對(duì)于屬性保留與否的概率判斷,并不是通過權(quán)重感性的決定,而是通過權(quán)重值進(jìn)行理性的分析后才能做出合理的決定。此處,采用的是不同屬性的權(quán)重在總權(quán)重值中所占比來確定保留這個(gè)屬性的概率的,即對(duì)于屬性它被賦值的權(quán)重為,是否保留這個(gè)屬性的概率為。
1.3 交叉驗(yàn)證確定屬性子集大小
1.3.1 Holdout驗(yàn)證
Holdout驗(yàn)證方法首先是從原始的樣本中隨機(jī)選擇一部分?jǐn)?shù)據(jù)作為驗(yàn)證集,剩下的樣本則作為訓(xùn)練集[5]。之后使用一種需要驗(yàn)證的機(jī)器學(xué)習(xí)方法,利用訓(xùn)練集訓(xùn)練得到一個(gè)模型,最后用驗(yàn)證集對(duì)這個(gè)模型進(jìn)行驗(yàn)證,得到這個(gè)模型性能的結(jié)果。
1.3.2 折交叉驗(yàn)證
折交叉驗(yàn)證的做法是首先將原始的樣本集劃分為份。從其中選擇一個(gè)樣本子集作為驗(yàn)證集使用,而剩下的個(gè)樣本子集則合起來作為一個(gè)訓(xùn)練集。接下來,使用需要驗(yàn)證的機(jī)器學(xué)習(xí)方法對(duì)訓(xùn)練集進(jìn)行訓(xùn)練并得到模型,最后,使用這個(gè)模型對(duì)驗(yàn)證集進(jìn)行驗(yàn)證,得到結(jié)果。之后重新選擇一個(gè)新的樣本子集(j≠i)作為新的驗(yàn)證集使用,并使用剩下的個(gè)樣本子集作為訓(xùn)練集[6]。使用同樣的方法能夠得到新的驗(yàn)證結(jié)果。如此重復(fù),直至所有的樣本子集都被選作驗(yàn)證集使用過一次,得到了驗(yàn)證結(jié)果集。對(duì)于這個(gè)機(jī)器學(xué)習(xí)算法效果的判斷就是對(duì)個(gè)驗(yàn)證結(jié)果的平均,或者使用這個(gè)驗(yàn)證結(jié)果集與別的數(shù)學(xué)方法進(jìn)行結(jié)合。
1.3.3 留一驗(yàn)證
留一驗(yàn)證實(shí)際上是折交叉驗(yàn)證的一個(gè)特例。假設(shè)原始樣本集中具有個(gè)樣本,那么,所謂的留一驗(yàn)證就是折交叉驗(yàn)證。首先需要從原始樣本集中選擇一個(gè)樣本作為驗(yàn)證,剩余的所有樣本作為訓(xùn)練集使用,如此重復(fù),直到所有的樣本都被用作驗(yàn)證一次,并將驗(yàn)證的結(jié)果平均,得到機(jī)器學(xué)習(xí)方法的性能結(jié)果。
1.4 Bagging方法訓(xùn)練回歸模型
對(duì)于回歸模型的訓(xùn)練,采用集成學(xué)習(xí)Bagging方法,其流程圖如圖1所示。Bagging方法需要對(duì)不同的子模型進(jìn)行訓(xùn)練后形成一個(gè)模型集[7]。測(cè)試時(shí),根據(jù)這個(gè)模型集中不同子模型的測(cè)試結(jié)果,綜合給出整個(gè)模型的最終結(jié)果。
1.5 基于屬性權(quán)重的Bagging回歸方法
1.5.1 A基于SVM的屬性權(quán)重賦值方法
(1) 將統(tǒng)計(jì)得到的原始樣本數(shù)據(jù)集組成樣本列矩陣
(2) 使用SVM回歸方法對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,得到回歸直線的切向量信息,并對(duì)數(shù)據(jù)第個(gè)屬性賦權(quán)重值為。
(3) 以為第個(gè)屬性的概率對(duì)樣本數(shù)據(jù)的屬性進(jìn)行無放回的抽取,組成新的屬性子集。屬性子集的大小從1開始直至完全選擇所有的屬性進(jìn)入屬性子集。對(duì)于每一個(gè)不同大小的屬性子集,需要構(gòu)建適當(dāng)數(shù)量的屬性子集,并對(duì)訓(xùn)練集進(jìn)行交叉驗(yàn)證[8]。驗(yàn)證時(shí),對(duì)每個(gè)屬性子集經(jīng)過訓(xùn)練后得到的模型測(cè)試結(jié)果進(jìn)行平均,取得最終的驗(yàn)證結(jié)果。通過交叉驗(yàn)證確定性能最優(yōu)的屬性子集大小。
(4) 依照上一步的方法,結(jié)合概率無放回地抽取樣本數(shù)據(jù)的屬性,組成屬性子集,直至屬性子集大小為最優(yōu)。反復(fù)這個(gè)步驟,直到有了足夠多的屬性子集可用作集成學(xué)習(xí)。使用支持向量機(jī)回歸方法對(duì)每一個(gè)屬性子集進(jìn)行訓(xùn)練得到回歸模型。保留所有的回歸模型和相對(duì)應(yīng)的屬性信息,得到最終的回歸器。
(5) 測(cè)試時(shí),測(cè)試樣本需要經(jīng)過每一個(gè)回歸模型的檢驗(yàn)。測(cè)試樣本保留在回歸模型中保存的屬性信息所包含的屬性,組成一個(gè)屬性子集,將屬性子集送入回歸模型進(jìn)行測(cè)試,得到單個(gè)回歸模型的回歸結(jié)果。反復(fù)以上步驟,直至所有的回歸模型都對(duì)樣本進(jìn)行了測(cè)試,得到了結(jié)果。對(duì)這些結(jié)果求平均值,便是利用SVM確定權(quán)重,是基于屬性權(quán)重的Bagging回歸方法的最終回歸結(jié)果。
1.5.2 基于PCA的屬性權(quán)重賦值方法
(1) 將統(tǒng)計(jì)得到的原始樣本數(shù)據(jù)集組成樣本列矩陣
對(duì)這個(gè)協(xié)方差矩陣求解特征值和特征向量,得到相應(yīng)的特征向量矩陣和特征值向量,與是一對(duì)相對(duì)應(yīng)的特征向量和特征值。對(duì)數(shù)據(jù)第個(gè)屬性賦權(quán)重值為。
(3) 以為第個(gè)屬性的概率對(duì)特征向量矩陣進(jìn)行無放回的選擇,被選擇的矩陣向量加入到屬性變換矩陣中。屬性變換矩陣的列數(shù)從1開始直至完全選擇所有的特征向量進(jìn)入屬性變換矩陣。對(duì)于每一個(gè)不同的屬性變換矩陣列數(shù),需要構(gòu)建適當(dāng)數(shù)量的屬性變換矩陣,使用屬性變換矩陣對(duì)原數(shù)據(jù)矩陣進(jìn)行變換,得到新的屬性子集,并對(duì)訓(xùn)練集進(jìn)行交叉驗(yàn)證。驗(yàn)證時(shí),每個(gè)屬性子集經(jīng)過訓(xùn)練后對(duì)得到的模型測(cè)試結(jié)果進(jìn)行平均,取得最終的驗(yàn)證結(jié)果。通過驗(yàn)證確定性能最優(yōu)的屬性子集大小,即屬性變換矩陣的列數(shù)。
(4) 依照上一步的方法,結(jié)合概率無放回地選擇特征向量加入屬性變換矩陣當(dāng)中去,組成屬性變換矩陣,直至屬性變換矩陣的列數(shù)達(dá)到最優(yōu)。使用屬性變換矩陣對(duì)原數(shù)據(jù)矩陣進(jìn)行變換,得到屬性子集。重復(fù)這個(gè)過程,指導(dǎo)足夠多的屬性子集用作集成學(xué)習(xí)。使用支持向量機(jī)回歸方法對(duì)每個(gè)屬性子集進(jìn)行訓(xùn)練,得到回歸模型。保留回歸模型和相對(duì)應(yīng)的屬性變換矩陣,得到最終回歸器。
(5) 測(cè)試時(shí),測(cè)試樣本需要經(jīng)過每一個(gè)回歸模型的檢驗(yàn)。測(cè)試樣本經(jīng)過屬性回歸矩陣的變換得到一個(gè)屬性子集,將屬性子集送入回歸模型進(jìn)行測(cè)試,得到單個(gè)回歸模型的回歸結(jié)果。反復(fù)以上步驟,直至所有的回歸模型都對(duì)樣本進(jìn)行了測(cè)試,得到了結(jié)果。對(duì)這些結(jié)果求平均值,便是利用PCA確定權(quán)重,是基于屬性權(quán)重的Bagging回歸方法的最終回歸結(jié)果。
2 實(shí)驗(yàn)平臺(tái)和數(shù)據(jù)
2.1 試驗(yàn)過程
此次實(shí)驗(yàn)使用“housing_scale”和“eunite2001”兩個(gè)樣本數(shù)據(jù)集進(jìn)行?!癶ousing_scale”樣本集已經(jīng)過歸一化處理,但未區(qū)分訓(xùn)練集和測(cè)試集。因此,在對(duì)這個(gè)樣本集進(jìn)行實(shí)驗(yàn)時(shí),就需要從中選擇一部分?jǐn)?shù)據(jù)作為測(cè)試集使用。在實(shí)驗(yàn)前,需要先做歸一化處理,這兩個(gè)樣本數(shù)據(jù)集的概況如表1所示。
2.1.1 確定屬性權(quán)重
屬性權(quán)重賦值的方法有兩種:一是需要對(duì)樣本數(shù)據(jù)進(jìn)行預(yù)處理的支持向量機(jī)方法;二是根據(jù)樣本數(shù)據(jù)統(tǒng)計(jì)學(xué)特性進(jìn)行賦值的主成分分析方法。使用支持向量機(jī)方法得到的housing_scale,eunite2001樣本集中各個(gè)屬性的權(quán)重如圖2,圖3所示。
從圖2中可以看出,housing_scale樣本集數(shù)據(jù)的各個(gè)屬性中,具有最高權(quán)重的三個(gè)屬性權(quán)重被選擇的概率和為42.97%,相對(duì)應(yīng)地,權(quán)重最低的三個(gè)屬性被選中的概率和僅為9.01%。僅從概率上來說,具有最高權(quán)重的三個(gè)屬性被選擇的可能性是最低權(quán)重的三個(gè)屬性的5倍,形成了鮮明對(duì)比。
eunite2001樣本數(shù)據(jù)集的各個(gè)屬性的權(quán)重差異更為明顯,最高的三個(gè)權(quán)重被選擇的概率和為37.33%,而最低的三個(gè)被選擇的概率則僅為0.256 5%,相差高達(dá)145倍之多。這表示在進(jìn)行屬性子集構(gòu)建的過程中,權(quán)重最低的那些屬性幾乎沒有可能被抽取。
使用主成分分析方法得到的housing_scale樣本最終確定的權(quán)重值在各個(gè)屬性之間的差異巨大,權(quán)重最大的屬性占到權(quán)重總和的61.27%,換句話說,在構(gòu)建屬性子集的過程中,有超過一半的可能性會(huì)將這個(gè)屬性選擇在內(nèi)。
eunite2001樣本雖不像housing_scale屬性權(quán)重之間有非常大的差異,但它的差異也決不能輕視。被選擇概率超過10%的屬性僅存在5個(gè),而剩余的11個(gè)屬性需要共享剩余16.29%的概率,這就會(huì)導(dǎo)致最終在屬性子集構(gòu)建的過程中不同的屬性被選入的可能性大不相同。
2.1.2 對(duì)最佳屬性子集的實(shí)驗(yàn)
在進(jìn)行實(shí)驗(yàn)的過程中,除了之前提到的支持向量機(jī)屬性權(quán)重賦值方法和主成份分析屬性權(quán)重賦值方法外,還將對(duì)隨機(jī)屬性權(quán)重賦值方法進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)將使用10折交叉驗(yàn)證進(jìn)行,讓屬性子集的大小從1開始逐步增長(zhǎng),直至所有的屬性都被選入屬性子集中。對(duì)于每一個(gè)屬性子集的大小進(jìn)行50次交叉驗(yàn)證,對(duì)這50次驗(yàn)證的結(jié)果求平均得到最終的性能評(píng)價(jià)。其中,性能最優(yōu)的屬性子集大小即為需要的結(jié)果。
通過實(shí)驗(yàn)可以看出,隨著屬性子集大小的增加,模型的性能也得到了不斷的提升。但當(dāng)模型的性能提升到最優(yōu)點(diǎn)后,模型的性能便開始下降,直至屬性子集為樣本屬性全集。隨著屬性子集的大小接近樣本屬性的總數(shù),回歸結(jié)果的方差變得越來越小,即穩(wěn)定性增強(qiáng)了。因此,不同次實(shí)驗(yàn)間的差異性也就減小了。
2.1.3 通過集成學(xué)習(xí)訓(xùn)練回歸模型
采用最優(yōu)的屬性子集大小來構(gòu)建子模型的訓(xùn)練集,并對(duì)1~100個(gè)子模型的數(shù)量進(jìn)行回歸性能的實(shí)驗(yàn)。每一個(gè)子模型數(shù)量需要進(jìn)行50次實(shí)驗(yàn)并求取平均和方差。通過實(shí)驗(yàn)數(shù)據(jù)可以發(fā)現(xiàn),當(dāng)Bagging方法集成的子模型數(shù)量較少時(shí),回歸模型的準(zhǔn)確度不高,但隨著參與到Bagging方法中的子模型數(shù)量的增長(zhǎng),整個(gè)回歸模型的準(zhǔn)確度迅速提升。但回歸模型的性能并不會(huì)發(fā)生太大的變化。
2.2 實(shí)驗(yàn)分析
在這次實(shí)驗(yàn)中,通過對(duì)housing_scale和eunite2001兩個(gè)樣本集使用基于屬性權(quán)重的Bagging回歸算法,統(tǒng)計(jì)在不同屬性子集大小和不同集成規(guī)模情況下的實(shí)驗(yàn)數(shù)據(jù),分析通過支持向量機(jī)方法確定屬性權(quán)重方法和主成分分析方法確定屬性權(quán)重方法之間的差異。
對(duì)屬性的權(quán)重進(jìn)行賦值,使其能夠按照不同的概率被選入屬性子集中,這使得權(quán)重高的屬性即對(duì)回歸結(jié)果貢獻(xiàn)大的屬性,在訓(xùn)練時(shí)能夠得到更多的訓(xùn)練。而權(quán)重低的屬性,雖無法得到與高權(quán)重屬性相同的訓(xùn)練機(jī)會(huì),但在訓(xùn)練時(shí)并未被忽略,這一點(diǎn)是通過集成學(xué)習(xí)得到的保證。這樣的操作使得回歸模型在訓(xùn)練時(shí)更關(guān)注主要信息,兼顧次要信息,提升模型的性能。
3 結(jié) 論
支持向量機(jī)方法自從被提出以來,已經(jīng)在許多領(lǐng)域得到了廣泛的應(yīng)用,并得到了不少的好評(píng)與支持。因此,本文選擇支持向量機(jī)方法進(jìn)行回歸。基于屬性權(quán)重的屬性子集的構(gòu)建對(duì)于最終回歸結(jié)果的影響,通過使用權(quán)重來區(qū)別不同重要性的屬性有實(shí)驗(yàn)依據(jù)。高權(quán)重的屬性比低權(quán)重的屬性更能反映樣本的性質(zhì),有目的的選擇高權(quán)重的屬性參與訓(xùn)練的回歸方法比隨機(jī)選擇屬性參與訓(xùn)練的回歸方法在準(zhǔn)確度上能夠提升10%的性能。
通過實(shí)驗(yàn),集成學(xué)習(xí)方法中的Bagging方法的重要性也得到了體現(xiàn)。在實(shí)驗(yàn)中使用Bagging方法,消除了樣本中噪聲對(duì)最終回歸的影響,使得最終的回歸結(jié)果在提升準(zhǔn)確度的同時(shí),保證了穩(wěn)定性。最重要的是,使用Bagging方法能夠讓低權(quán)重的屬性不被忽略,同樣能夠參與到模型的訓(xùn)練中,使模型能夠更好地反應(yīng)樣本的真實(shí)情況。
參考文獻(xiàn)
[1] 杜樹新,吳鐵軍.用于回歸估計(jì)的支持向量機(jī)方法[J].系統(tǒng)仿真學(xué)報(bào),2003,15(11):1580?1585.
[2] 姚明海,趙連朋,劉維學(xué).基于特征選擇的Bagging分類算法研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2014(4):103?106.
[3] TAX D M J, DUIN R P W. Support vector domain description [J]. Pattern recognition letters, 1999, 20(11): 1191?1199.
[4] 谷雨,鄭錦輝,戴明偉,等.基于Bagging支持向量機(jī)集成的入侵檢測(cè)研究[J].微電子學(xué)與計(jì)算機(jī),2005,22(5):17?19.
[5] 華德宏,劉剛,蘭家隆.一種改進(jìn)的一元線性回歸算法[J].現(xiàn)代電子技術(shù),2006,29(7):63?65.
[6] 于玲,吳鐵軍.集成學(xué)習(xí):Boosting算法綜述[J].模式識(shí)別與人工智能,2004,17(1):52?59.
[7] 張春霞,張講社.選擇性集成學(xué)習(xí)算法綜述[J].計(jì)算機(jī)學(xué)報(bào),2011,34(8):1399?1410.
[8] 丁里,毛力,王曉鋒.應(yīng)用于P2P流分類的一種改進(jìn)Bagging學(xué)習(xí)算法[J].軟件導(dǎo)刊,2014(5):71?73.