孟小燕
摘 要: 提出一種新的回歸算法——基于屬性權(quán)重的Bagging回歸算法。首先使用支持向量機回歸或主成分分析方法對樣本數(shù)據(jù)的屬性賦以一定的權(quán)值,以表明該屬性在回歸過程中的貢獻大??;再根據(jù)不同屬性的權(quán)重大小構(gòu)建訓練使用的多個屬性子集。在構(gòu)建這些屬性子集的過程中,按照不同屬性權(quán)重在總權(quán)重中所占比重為概率進行,使得對回歸貢獻大的屬性有更大的可能被選入屬性子集當中參與訓練;最后,對這些屬性子集進行訓練,生成相應的多個回歸子模型,這些子模型的集合就是通過基于屬性權(quán)重的Bagging回歸算法訓練得到的最終模型。
關(guān)鍵詞: 支持向量機; 屬性權(quán)重; 集成學習; 主成份分析; 回歸算法
中圖分類號: TN911?34; TM417 文獻標識碼: A 文章編號: 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)的回歸方法,通過對自變量和應變量之間統(tǒng)計量的分析,得到一個線性函數(shù)[1]。這種回歸方法能夠很好地擬合線性關(guān)系的數(shù)據(jù),但是,對于非線性關(guān)系的數(shù)據(jù)則無法做到好的擬合。為了應對線性回歸方法的缺陷,提出了支持向量機回歸方法。支持向量機回歸方法能夠解決許多非線性回歸問題[2]。本文通過綜合應用支持向量機回歸方法、屬性權(quán)重方法和集成學習方法,取長補短,提升現(xiàn)有的支持向量機回歸方法的準確度[3]。
1 基于屬性權(quán)重的Bagging回歸方法
1.1 計算屬性的權(quán)重
1.1.1 通過SVM方法計算屬性權(quán)重
1.2 基于屬性權(quán)重對屬性進行選取
對于樣本數(shù)據(jù)屬性的取舍是基于屬性的權(quán)重來決定的。如果一個屬性的權(quán)重比較大,那么認為這個屬性對于最終的模型訓練具有比較大的貢獻,應當讓它有比較大的概率被保留[4]。而一個屬性的權(quán)重比較小,那么就認為這個屬性對于最后的結(jié)果貢獻不大,保留它的概率就比較小了,換句話說,保留這個屬性的可能性就比較低。
對于屬性保留與否的概率判斷,并不是通過權(quán)重感性的決定,而是通過權(quán)重值進行理性的分析后才能做出合理的決定。此處,采用的是不同屬性的權(quán)重在總權(quán)重值中所占比來確定保留這個屬性的概率的,即對于屬性它被賦值的權(quán)重為,是否保留這個屬性的概率為。
1.3 交叉驗證確定屬性子集大小
1.3.1 Holdout驗證
Holdout驗證方法首先是從原始的樣本中隨機選擇一部分數(shù)據(jù)作為驗證集,剩下的樣本則作為訓練集[5]。之后使用一種需要驗證的機器學習方法,利用訓練集訓練得到一個模型,最后用驗證集對這個模型進行驗證,得到這個模型性能的結(jié)果。
1.3.2 折交叉驗證
折交叉驗證的做法是首先將原始的樣本集劃分為份。從其中選擇一個樣本子集作為驗證集使用,而剩下的個樣本子集則合起來作為一個訓練集。接下來,使用需要驗證的機器學習方法對訓練集進行訓練并得到模型,最后,使用這個模型對驗證集進行驗證,得到結(jié)果。之后重新選擇一個新的樣本子集(j≠i)作為新的驗證集使用,并使用剩下的個樣本子集作為訓練集[6]。使用同樣的方法能夠得到新的驗證結(jié)果。如此重復,直至所有的樣本子集都被選作驗證集使用過一次,得到了驗證結(jié)果集。對于這個機器學習算法效果的判斷就是對個驗證結(jié)果的平均,或者使用這個驗證結(jié)果集與別的數(shù)學方法進行結(jié)合。
1.3.3 留一驗證
留一驗證實際上是折交叉驗證的一個特例。假設(shè)原始樣本集中具有個樣本,那么,所謂的留一驗證就是折交叉驗證。首先需要從原始樣本集中選擇一個樣本作為驗證,剩余的所有樣本作為訓練集使用,如此重復,直到所有的樣本都被用作驗證一次,并將驗證的結(jié)果平均,得到機器學習方法的性能結(jié)果。
1.4 Bagging方法訓練回歸模型
對于回歸模型的訓練,采用集成學習Bagging方法,其流程圖如圖1所示。Bagging方法需要對不同的子模型進行訓練后形成一個模型集[7]。測試時,根據(jù)這個模型集中不同子模型的測試結(jié)果,綜合給出整個模型的最終結(jié)果。
1.5 基于屬性權(quán)重的Bagging回歸方法
1.5.1 A基于SVM的屬性權(quán)重賦值方法
(1) 將統(tǒng)計得到的原始樣本數(shù)據(jù)集組成樣本列矩陣
(2) 使用SVM回歸方法對數(shù)據(jù)進行預處理,得到回歸直線的切向量信息,并對數(shù)據(jù)第個屬性賦權(quán)重值為。
(3) 以為第個屬性的概率對樣本數(shù)據(jù)的屬性進行無放回的抽取,組成新的屬性子集。屬性子集的大小從1開始直至完全選擇所有的屬性進入屬性子集。對于每一個不同大小的屬性子集,需要構(gòu)建適當數(shù)量的屬性子集,并對訓練集進行交叉驗證[8]。驗證時,對每個屬性子集經(jīng)過訓練后得到的模型測試結(jié)果進行平均,取得最終的驗證結(jié)果。通過交叉驗證確定性能最優(yōu)的屬性子集大小。
(4) 依照上一步的方法,結(jié)合概率無放回地抽取樣本數(shù)據(jù)的屬性,組成屬性子集,直至屬性子集大小為最優(yōu)。反復這個步驟,直到有了足夠多的屬性子集可用作集成學習。使用支持向量機回歸方法對每一個屬性子集進行訓練得到回歸模型。保留所有的回歸模型和相對應的屬性信息,得到最終的回歸器。
(5) 測試時,測試樣本需要經(jīng)過每一個回歸模型的檢驗。測試樣本保留在回歸模型中保存的屬性信息所包含的屬性,組成一個屬性子集,將屬性子集送入回歸模型進行測試,得到單個回歸模型的回歸結(jié)果。反復以上步驟,直至所有的回歸模型都對樣本進行了測試,得到了結(jié)果。對這些結(jié)果求平均值,便是利用SVM確定權(quán)重,是基于屬性權(quán)重的Bagging回歸方法的最終回歸結(jié)果。
1.5.2 基于PCA的屬性權(quán)重賦值方法
(1) 將統(tǒng)計得到的原始樣本數(shù)據(jù)集組成樣本列矩陣
對這個協(xié)方差矩陣求解特征值和特征向量,得到相應的特征向量矩陣和特征值向量,與是一對相對應的特征向量和特征值。對數(shù)據(jù)第個屬性賦權(quán)重值為。
(3) 以為第個屬性的概率對特征向量矩陣進行無放回的選擇,被選擇的矩陣向量加入到屬性變換矩陣中。屬性變換矩陣的列數(shù)從1開始直至完全選擇所有的特征向量進入屬性變換矩陣。對于每一個不同的屬性變換矩陣列數(shù),需要構(gòu)建適當數(shù)量的屬性變換矩陣,使用屬性變換矩陣對原數(shù)據(jù)矩陣進行變換,得到新的屬性子集,并對訓練集進行交叉驗證。驗證時,每個屬性子集經(jīng)過訓練后對得到的模型測試結(jié)果進行平均,取得最終的驗證結(jié)果。通過驗證確定性能最優(yōu)的屬性子集大小,即屬性變換矩陣的列數(shù)。
(4) 依照上一步的方法,結(jié)合概率無放回地選擇特征向量加入屬性變換矩陣當中去,組成屬性變換矩陣,直至屬性變換矩陣的列數(shù)達到最優(yōu)。使用屬性變換矩陣對原數(shù)據(jù)矩陣進行變換,得到屬性子集。重復這個過程,指導足夠多的屬性子集用作集成學習。使用支持向量機回歸方法對每個屬性子集進行訓練,得到回歸模型。保留回歸模型和相對應的屬性變換矩陣,得到最終回歸器。
(5) 測試時,測試樣本需要經(jīng)過每一個回歸模型的檢驗。測試樣本經(jīng)過屬性回歸矩陣的變換得到一個屬性子集,將屬性子集送入回歸模型進行測試,得到單個回歸模型的回歸結(jié)果。反復以上步驟,直至所有的回歸模型都對樣本進行了測試,得到了結(jié)果。對這些結(jié)果求平均值,便是利用PCA確定權(quán)重,是基于屬性權(quán)重的Bagging回歸方法的最終回歸結(jié)果。
2 實驗平臺和數(shù)據(jù)
2.1 試驗過程
此次實驗使用“housing_scale”和“eunite2001”兩個樣本數(shù)據(jù)集進行?!癶ousing_scale”樣本集已經(jīng)過歸一化處理,但未區(qū)分訓練集和測試集。因此,在對這個樣本集進行實驗時,就需要從中選擇一部分數(shù)據(jù)作為測試集使用。在實驗前,需要先做歸一化處理,這兩個樣本數(shù)據(jù)集的概況如表1所示。
2.1.1 確定屬性權(quán)重
屬性權(quán)重賦值的方法有兩種:一是需要對樣本數(shù)據(jù)進行預處理的支持向量機方法;二是根據(jù)樣本數(shù)據(jù)統(tǒng)計學特性進行賦值的主成分分析方法。使用支持向量機方法得到的housing_scale,eunite2001樣本集中各個屬性的權(quán)重如圖2,圖3所示。
從圖2中可以看出,housing_scale樣本集數(shù)據(jù)的各個屬性中,具有最高權(quán)重的三個屬性權(quán)重被選擇的概率和為42.97%,相對應地,權(quán)重最低的三個屬性被選中的概率和僅為9.01%。僅從概率上來說,具有最高權(quán)重的三個屬性被選擇的可能性是最低權(quán)重的三個屬性的5倍,形成了鮮明對比。
eunite2001樣本數(shù)據(jù)集的各個屬性的權(quán)重差異更為明顯,最高的三個權(quán)重被選擇的概率和為37.33%,而最低的三個被選擇的概率則僅為0.256 5%,相差高達145倍之多。這表示在進行屬性子集構(gòu)建的過程中,權(quán)重最低的那些屬性幾乎沒有可能被抽取。
使用主成分分析方法得到的housing_scale樣本最終確定的權(quán)重值在各個屬性之間的差異巨大,權(quán)重最大的屬性占到權(quán)重總和的61.27%,換句話說,在構(gòu)建屬性子集的過程中,有超過一半的可能性會將這個屬性選擇在內(nèi)。
eunite2001樣本雖不像housing_scale屬性權(quán)重之間有非常大的差異,但它的差異也決不能輕視。被選擇概率超過10%的屬性僅存在5個,而剩余的11個屬性需要共享剩余16.29%的概率,這就會導致最終在屬性子集構(gòu)建的過程中不同的屬性被選入的可能性大不相同。
2.1.2 對最佳屬性子集的實驗
在進行實驗的過程中,除了之前提到的支持向量機屬性權(quán)重賦值方法和主成份分析屬性權(quán)重賦值方法外,還將對隨機屬性權(quán)重賦值方法進行實驗。實驗將使用10折交叉驗證進行,讓屬性子集的大小從1開始逐步增長,直至所有的屬性都被選入屬性子集中。對于每一個屬性子集的大小進行50次交叉驗證,對這50次驗證的結(jié)果求平均得到最終的性能評價。其中,性能最優(yōu)的屬性子集大小即為需要的結(jié)果。
通過實驗可以看出,隨著屬性子集大小的增加,模型的性能也得到了不斷的提升。但當模型的性能提升到最優(yōu)點后,模型的性能便開始下降,直至屬性子集為樣本屬性全集。隨著屬性子集的大小接近樣本屬性的總數(shù),回歸結(jié)果的方差變得越來越小,即穩(wěn)定性增強了。因此,不同次實驗間的差異性也就減小了。
2.1.3 通過集成學習訓練回歸模型
采用最優(yōu)的屬性子集大小來構(gòu)建子模型的訓練集,并對1~100個子模型的數(shù)量進行回歸性能的實驗。每一個子模型數(shù)量需要進行50次實驗并求取平均和方差。通過實驗數(shù)據(jù)可以發(fā)現(xiàn),當Bagging方法集成的子模型數(shù)量較少時,回歸模型的準確度不高,但隨著參與到Bagging方法中的子模型數(shù)量的增長,整個回歸模型的準確度迅速提升。但回歸模型的性能并不會發(fā)生太大的變化。
2.2 實驗分析
在這次實驗中,通過對housing_scale和eunite2001兩個樣本集使用基于屬性權(quán)重的Bagging回歸算法,統(tǒng)計在不同屬性子集大小和不同集成規(guī)模情況下的實驗數(shù)據(jù),分析通過支持向量機方法確定屬性權(quán)重方法和主成分分析方法確定屬性權(quán)重方法之間的差異。
對屬性的權(quán)重進行賦值,使其能夠按照不同的概率被選入屬性子集中,這使得權(quán)重高的屬性即對回歸結(jié)果貢獻大的屬性,在訓練時能夠得到更多的訓練。而權(quán)重低的屬性,雖無法得到與高權(quán)重屬性相同的訓練機會,但在訓練時并未被忽略,這一點是通過集成學習得到的保證。這樣的操作使得回歸模型在訓練時更關(guān)注主要信息,兼顧次要信息,提升模型的性能。
3 結(jié) 論
支持向量機方法自從被提出以來,已經(jīng)在許多領(lǐng)域得到了廣泛的應用,并得到了不少的好評與支持。因此,本文選擇支持向量機方法進行回歸?;趯傩詸?quán)重的屬性子集的構(gòu)建對于最終回歸結(jié)果的影響,通過使用權(quán)重來區(qū)別不同重要性的屬性有實驗依據(jù)。高權(quán)重的屬性比低權(quán)重的屬性更能反映樣本的性質(zhì),有目的的選擇高權(quán)重的屬性參與訓練的回歸方法比隨機選擇屬性參與訓練的回歸方法在準確度上能夠提升10%的性能。
通過實驗,集成學習方法中的Bagging方法的重要性也得到了體現(xiàn)。在實驗中使用Bagging方法,消除了樣本中噪聲對最終回歸的影響,使得最終的回歸結(jié)果在提升準確度的同時,保證了穩(wěn)定性。最重要的是,使用Bagging方法能夠讓低權(quán)重的屬性不被忽略,同樣能夠參與到模型的訓練中,使模型能夠更好地反應樣本的真實情況。
參考文獻
[1] 杜樹新,吳鐵軍.用于回歸估計的支持向量機方法[J].系統(tǒng)仿真學報,2003,15(11):1580?1585.
[2] 姚明海,趙連朋,劉維學.基于特征選擇的Bagging分類算法研究[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].微電子學與計算機,2005,22(5):17?19.
[5] 華德宏,劉剛,蘭家隆.一種改進的一元線性回歸算法[J].現(xiàn)代電子技術(shù),2006,29(7):63?65.
[6] 于玲,吳鐵軍.集成學習:Boosting算法綜述[J].模式識別與人工智能,2004,17(1):52?59.
[7] 張春霞,張講社.選擇性集成學習算法綜述[J].計算機學報,2011,34(8):1399?1410.
[8] 丁里,毛力,王曉鋒.應用于P2P流分類的一種改進Bagging學習算法[J].軟件導刊,2014(5):71?73.