在“初識集成學習”一文中,筆者用了投票法來整合基學習器的預測結果;其實投票法只是集成學習中基學習器的結合策略之一,為了對集成學習有一個整體的概覽,本文將對集成學習的整個面貌做一個大體描繪,
對于集成學習的研究,主要集中在基學習器的生成方式和預測結果的整合上,因此本文將遵照此思路依次介紹:
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 平均法
對于回歸問題,使用平均法結合各基學習器的預測結果,平均法又分為簡單平均和加權平均,其中簡單平均可視為加權平均的一種特殊情況,即各基學習器的權值都一樣,使用加權平均時,各基學習器的權值可根據在驗證集上的準確率確定,
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并沒有強制限定集成模型只能由初級學習器和次級學習器組成,換句話說,我們還可以往后繼續延伸,添加諸如三級學習器、四級學習器等,但具體效果怎么樣,還要視具體問題而定,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/33771.html
標籤:其他
上一篇:我快 30 了,前途在哪里?
