整合學習Boosting思想之AdaBoost

2021-10-07 17:35:19 字數 2906 閱讀 9403

對於 bagging 思想整合的隨機森林,是可以並行訓練的,正是因為每個弱分類器之間不相互影響;而 boosting 是通過序列訓練而獲得的,每個分類器要根據以前訓練出的分類器的效能來進行訓練。

boosting 常用模型:

adaboost

gradient boosting(gbt/gbdt/gbrt)

xgboost

二、adaboost

1、adaboost 執行過程

adaboost 是一種迭代演算法,整個迭代過程直到錯誤率足夠小或者達到一定的迭代次數為止;每輪迭代中會在修改後的訓練集上產生乙個新的弱學習器,然後使用該弱學習器對所有樣本進行**,以評估每個樣本的重要性。

1在每一輪如何改變訓練資料的權重或概率分布

adaboost演算法會為每個樣本賦予乙個權重,其做法是:

提高那些被前一輪弱分類器錯誤分類樣本的權值,而降低那些被正確分類樣本的權值。

這樣一來,在那些沒有得到正確分類的資料,由於其權值的加大而受到後一輪的弱分類器的更大關注,也就是說 越難區分 的樣本在訓練過程中會變得越重要。於是,分類問題被一系列的弱分類器「分而治之」。

2如何將弱分類器組合成乙個強分類器

adaboost 採取加權多數表決的方法:

具體地,加大分類誤差率小的弱分類器的權值,使其在表決中起較大的作用,減小分類誤差率大的弱分類器的權值,使其在表決中起較小的作用。

3樣本加權、弱學習器組合

如圖1,訓練乙個弱分類器,由中間虛線決策;

如圖2,將分類錯誤的樣本加權,圖中由大小區分,再訓練乙個弱分類器,由左側虛線決策;

如圖3,再將分類錯誤的樣本權重加大,再訓練弱分類器;

如圖4,將之前學習的弱學習器決策線組合,形成最終的分類器

2、adaboost 演算法推導

adaboost演算法將基分類器的線性組合作為強分類器,同時給分類誤差率較小的基本分類器以大的權重值,給分類誤差率較大的基分類器以小的權重值;

3、adaboost 演算法的構建過程:

4、簡單例項進一步理解 adaboost演算法

通過具體資料了解 adaboost 演算法

訓練資料集如下表:

三、adaboost 案例

sklearn 庫中 ensemble.adaboostclassifier 以及 ensemble.adaboostregressor api:

分類:

sklearn.ensemble.

adaboostclassifier

(base_estimator=none, n_estimators=

50,

learning_rate=

1.0, algorithm=』samme.r』, random_state=none)

回歸:

資料量大的時候,可以增加內部分類器的樹深度,也可以不限制樹深 max_depth,一般範圍在10-100之間

資料量小的時候,一般可以設定樹深度較小,或者 n_estimators 較小迭代次數或者最大弱分類器數:200次

1、adaboost 分類演算法

本案例將 adaboosted 決策樹樁擬合到由兩個「高斯分位數」 聚類組成的非線性可分類分類資料集,並繪製決策邊界和決策分數

2、adaboost引數algorithm取值比較

本案例通過更改引數algorithm的取值比較"asmme"和"samme.r" 的收斂速度,錯誤率

可以看出,samme.r 的收斂速度明顯比 samme 快,錯誤率也比 samme 低,所以一般推薦使用 samme.r

總結adaboost 的優點如下:

可以處理連續值和離散值;

模型的魯棒性比較強;

解釋強,結構簡單。

adaboost 的缺點如下:

對異常樣本敏感,異常樣本可能會在迭代過程中獲得較高的權重值,最終影響模型效果。

參考;

整合學習之Boosting

boosting是整合演算法之一,通過整合多個弱分類器,從而形成乙個強分類器。任一弱學習演算法可以通過加強提公升到乙個任意正確率的強學習演算法,並通過構造一種多項式級的演算法來實現這一加強過程,這就是最初的boosting演算法的原型。boosting是一種將弱分類器通過某種方式結合起來得到乙個分類...

整合學習 bagging和boosting

bagging boostrap aggregating 對樣本再取樣 boostrap 對每一重取樣的子樣本訓練乙個模型,最後取平均,所以是降低模型的variance。bagging比如random forest這種先天並行的演算法都有這個效果。boosting則是迭代演算法,每一次迭代都根據上一...

整合學習 Boosting和Bagging異同

整合學習 ensemble learning 有時也被籠統地稱作提公升 boosting 方法,廣泛用於分類和回歸任務。它最初的思想很簡單 使用一些 不同的 方法改變原始訓練樣本的分布,從而構建多個不同的分類器,並將這些分類器線性組合得到乙個更強大的分類器,來做最後的決策。也就是常說的 三個臭皮匠頂...