整合演算法目標:整合演算法會考慮多個評估器的建模結果,彙總之後得到乙個綜合的結果,以此來獲取比單個模型更好的回歸或分類表現。
整合學習(ensemble learning)通過構建並結合多個學習器來完成學習任務。一般結構為:先產生一組「個體學習器」,再用某種策略將它們結合起來。但要獲得好的整合,個體學習器應「好而不同」,即個體學習器要有一定的「準確性」,即學習器不能太壞,並且要有多樣性,即個體學習器間具有差異。多個模型整合成為的模型叫做整合評估器(ensemble estimator),組成整合評估器的每個模型都叫做基評估器(base estimator)。
根據個體學習器的生成方式,目前的整合學習方法大致可以分為2類:
1.bagging(裝袋法):個體學習器間不存在強依賴關係、可同時生成的並行化方法。
2.boosting(提公升法):個體學習器間存在強依賴關係、必須序列生成的序列化方法。
注:所謂序列生成的序列化方法就是除了訓練第乙個之外,其他的學習器學習都需要依賴於前面生成的學習的結果。
bagging演算法原理圖如下:
演算法過程如下:
1.自助取樣:假設訓練資料集包含m個樣本,隨機從樣本集中可放回的抽取m次,得到與訓練集數量相同的訓練集。經過k輪自助取樣,可以得到k個包含m個訓練樣本的取樣集。
2.模型訓練:基於每個取樣集訓練出乙個最優模型(基學習器),k個訓練集就得到k個訓練模型。
3.模型輸出:k個基學習器進行組合,得到整合模型。分類問題:對k個模型採取投票的方式得到分類結果。回歸問題:對k個模型的值取平均得到回歸值。
即對於$m$個樣本的原始訓練集,我們每次先隨機採集乙個樣本放入取樣集,接著把該樣本放回,這樣採集$m$次,最終可以得到$m$個樣本的取樣集,由於是隨機取樣,這樣每次的取樣集是和原始訓練集不同的,和其他取樣集也是不同的。
對於乙個樣本,它每次被採集到的概率是$\frac$。不被採集到的概率為$1-\frac$。如果m次取樣都沒有被採集中的概率是$(1-\frac 1 m)^m$。則
即當抽樣的樣本量足夠大時,在bagging的每輪隨機取樣中,訓練集中大約有36.8%的資料沒有被採集中。對於這部分大約36.8%的沒有被取樣到的資料,我們常常稱之為袋外資料(out of bag, 簡稱oob)。這些資料未參與訓練集模型的擬合,可以用來檢測模型的泛化能力。
boosting演算法原理圖如下:
演算法過程如下:
1.從初始訓練集訓練出乙個基學習器。
3.如此重複進行訓練,直至基學習器數目達到實現指定的值t,或整個整合結果達到退出條件,然後將這些學習器進行加權結合。(每一輪訓練都提公升那些錯誤率小的基礎模型權重,同時減小錯誤率高的模型權重。)
整合學習得到多個學習器後,需要用結合策略對多個結果進行分類或彙總輸出。其主要會用到3種方法:平均法、投票法和學習法。
平均法主要用於數值類的回歸**。假定我得到的$k$個弱學習器是$h_1,h_2,h_3...h_k$
1.完全平均
將所有弱學習的值求算數平均值,即$h(x)=\frac\sum_^k$
2.加權平均
給每個學習器設定乙個權重求加權平均值,即$h(x)=\sum_^k$,且$0\leq\leq,\sum_^k=1$。
投票法主要用於分類問題的**,即是少數服從多數。主要有以下三種方法:
相對多數投票法:也就是少數服從多數,即**結果中票數最高的分類類別。如果不止乙個類別獲得最高票,則隨機選擇乙個作為最終類別。
絕對多數投票法:即不光要求獲得最高票,還要求票過半數。
加權投票法:每個弱學習器的分類票數要乘以乙個權重,最終將各個類別的加權票數求和,最大的值對應的類別為最終類別。
通常考慮的是異質弱學習器,並行地學習它們,並通過訓練乙個「元模型」將它們組合起來,根據不同弱模型的**結果輸出一最終的**結果。即是將k個學習器的分類結果再次作為輸入,將訓練集的輸出作為輸出,重新訓練乙個學習器來得到最終結果。
1.訓練樣本集
bagging:訓練集是有放回抽樣,從原始集中選出的k組訓練集是相互獨立的。
boosting:每一次迭代的訓練集不變。
2.訓練樣本權重
bagging:每個訓練樣本的權重相等,即1/n。
boosting:根據學習器的錯誤率不斷調整樣例的權值,錯誤率越大,權值越大。
3.**函式的權重
bagging:k組學習器的權重相等,即1/k。
boosting:學習器效能好的分配較大的權重,學習器效能差的分配較小的權重。
4.平行計算
bagging:k組學習器模型可以並行生成。
boosting:k組學習器只能順序生成,因為後乙個模型的樣本權值需要前乙個學習器模型的結果。
整合學習 bagging和boosting
bagging boostrap aggregating 對樣本再取樣 boostrap 對每一重取樣的子樣本訓練乙個模型,最後取平均,所以是降低模型的variance。bagging比如random forest這種先天並行的演算法都有這個效果。boosting則是迭代演算法,每一次迭代都根據上一...
整合學習 Boosting和Bagging異同
整合學習 ensemble learning 有時也被籠統地稱作提公升 boosting 方法,廣泛用於分類和回歸任務。它最初的思想很簡單 使用一些 不同的 方法改變原始訓練樣本的分布,從而構建多個不同的分類器,並將這些分類器線性組合得到乙個更強大的分類器,來做最後的決策。也就是常說的 三個臭皮匠頂...
整合學習 boosting和bagging異同
整合學習 整合學習通過構建並結合多個學習器來完成學習任務.只包含同種型別的個體學習器,這樣的整合是 同質 的 包含不同型別的個體學習器,這樣的整合是 異質 的.整合學習通過將多個學習器進行結合,常可獲得比單一學習器顯著優越的泛化效能.根據個體學習器的生成方式,目前的整合學習方法大致可分為兩大類,即個...