再探集成學習

在「初識集成學習」一文中,筆者用了投票法來整合基學習器的預測結果;其實投票法只是集成學習中基學習器的結合策略之一,爲了對集成學習有一個總體的概覽,本文將對集成學習的整個面貌作一個大致描繪。算法

對於集成學習的研究,主要集中在基學習器的生成方式和預測結果的整合上,所以本文將遵守此思路依次介紹:學習

1 基學習器的生成

1.1 bagging算法

Bagging算法做爲集成學習中生成基學習器的算法之一,最初由Leo Breiman於1996年提出。Bagging算法可與其餘分類、迴歸算法結合,在提升預測準確率、穩定性的同時,經過下降結果的方差以免過擬合的發生。測試

使用bagging時,個體學習器之間不存在強依賴關係,而且個體學習器能夠並行生成,提升訓練效率。其訓練思路以下:
給定包含m個樣本的數據集,先從樣本中取出一個放入採樣集中,再把該樣本返回原數據集,使得下次採樣時該樣本仍能夠被選中;通過m次隨機採樣,便獲得包含m個樣本的採樣集。依照該方法操做T次,獲得T個含有m個訓練樣本的採樣集,而後基於這T個採樣集訓練出T個基學習器,將T個基學習器結合,便可獲得最終的集成學習器。
bagging的表明模型即是熟知的隨機森林,它是bagging的一個擴展體。效率

1.2 boosting算法

Boosting是一個將弱學習器提高爲強學習器的算法。其訓練思路爲:
先從初始訓練集訓練出一個基學習器,再根據基學習器的表現對樣本分佈進行調整,使得前一個基學習器預測錯誤的訓練樣本在後續獲得更多關注,而後基於調整後的樣本分佈來訓練下一個基學習器;如此重複,直至基學習器數目達到指定值,或整個集成結果達到給定條件。擴展

實現boosting的表明算法有:
1 adaboost
2 提高樹(boosting tree)
3 梯度提高樹(GBDT)並行

2 基學習器的結合策略

經過上述方法獲得衆多基學習器後,在後續測試或應用中,須要把基學習器的預測結果進行合成,從而獲得整個集成學習器的結果。經常使用的結合策略以下:方法

2.1 平均法

對於迴歸問題,使用平均法結合各基學習器的預測結果,平均法又分爲簡單平均和加權平均,其中簡單平都可視爲加權平均的一種特殊狀況,即各基學習器的權值都同樣。使用加權平均時,各基學習器的權值可根據在驗證集上的準確率肯定。im

2.2 投票法

對於分類問題,使用投票法結合各基學習器的預測結果,投票法又分爲絕對多數投票(即如某標記的投票過半數則預計爲該標記,不然拒絕預測,該方法可能對某些輸入得不到輸出)、相對多數投票( 即預測得票最多的標記,若同時出現多個票數最多,則任選其一)以及加權投票(相似於迴歸問題中的加權平均,也是預測得票最多的標記)。技術

3 獨特的stacking

Stacking技術就是選取幾個簡單的模型(通常稱爲初級學習器),將它們在訓練集上進行K折交叉驗證輸出預測結果,而後將每一個模型輸出的預測結果合併爲新的特徵,並使用另外的的模型(通常稱爲次級學習器)在新的特徵上進行訓練。數據

舉例說明:對於一個二分類問題(標籤記爲0,1),選取邏輯迴歸(LR)、支持向量機(SVM)、k最近鄰(kNN)做爲初級學習器,先用這三個初級學習器分別在原訓練集上進行訓練調參驗證,完成以後再讓全部初級學習器總體預測一次訓練集;好比對訓練集中的某一個樣本三者的預測分別爲0,0,1,則將這三個預測值組成一個向量(0,0,1)做爲一個新的訓練樣本,假設原訓練集有M個訓練樣本,則通過此次總體預測,將獲得M個相似於(0,0,1)這樣的3維向量,視這M個新獲得的數據爲一個新的訓練集,再選取一個分類模型(次級學習器)在新的訓練集上進行訓練擬合,如此便獲得整個集成分類器。
在利用上述集成分類器進行預測時,先讓原始樣本過一遍前三個初級學習器,將初級學習器預測獲得的結果向量做爲次級學習器的輸入,最後將次級學習器的輸出做爲整個集成學習器的預測輸出。

stacking既能夠與bagging、boosting比肩做爲構成集成學習的三個重要組成部分之一,也能夠被視爲整合基學習器的策略之一。須要注意的是,stacking並無強制限定集成模型只能由初級學習器和次級學習器組成,換句話說,咱們還能夠日後繼續延伸,添加諸如三級學習器、四級學習器等,但具體效果怎麼樣,還要視具體問題而定。

相關文章
相關標籤/搜索