Boosting是串行式集成學習方法的代表,它使用加法模型和前向分步算法,將弱學習器提升為強學習器。Boosting系列算法里最著名的算法主要有AdaBoost和梯度提升系列算法(Gradient Boost,GB),梯度提升系列算法里面應用最廣泛的是梯度提升樹(Gradient Boosting Decision Tree,GBDT)。
一、Adaboost
1、Adaboost介紹
Adaboost算法通過在訓練集上不斷調整樣本權重分布,基於不同的樣本權重分布,重復訓練多個弱分類器,最后通過結合策略將所有的弱分類器組合起來,構成強分類器。Adaboost算法在訓練過程中,注重減少每個弱學習器的誤差,在訓練下一個弱學習器時,根據上一次的訓練結果,調整樣本的權重分布,更加關注那些被分錯的樣本,使它們在下一次訓練中得到更多的關注,有更大的可能被分類正確。
Adaboost算法框架圖
2、Adaboost算法過程
1)初始化樣本權重,一共有n個樣本,則每個樣本的權重為1/n
2)在樣本分布Dt上,訓練弱分類器,for t=1,2,……T:
a、訓練分類器ht
b、計算當前弱分類器的分類誤差率
c、判斷誤差率是否小於0.5,是則繼續,否則退出循環
d、計算當前弱分類器的權重系數alpha值
e、根據alpha值調整樣本分布Dt+1
如果樣本被正確分類,則該樣本的權重更改為:
如果樣本被錯誤分類,則該樣本的權重更改為:
3)組合弱分類器得到強分類器
3、算法偽代碼:
AdaBoost算法每一輪都要判斷當前基學習器是否滿足條件,一旦條件不滿足,則當前學習器被拋棄,且學習過程停止。Adaboost算法使用指數損失函數,通過最小化指數損失函數,得到在每次迭代中更新的權重參數計算公式。AdaBoost算法使用串行生成的序列化方法,多個基學習器之間存在強依賴關系。Adaboost的每一個弱分類器的目標,都是為了最小化損失函數,下一個弱分類器是在上一個分類器的基礎上對錯分樣本進行修正,所以, AdaBoost算法是注重減小偏差的算法。
Adaboost提供的是一種框架,可使用任何分類器作為基學習器,適用很多分類場景,通常可以獲得不錯的分類效果,例如,基於Adaboost的人臉檢測算法。
二、GBDT
1、GBDT介紹
GBDT在競賽和工業中都經常使用,能有效的應用於分類,回歸,排序問題,通常能有不錯的效果,是一種應用非常廣泛的算法。GBDT是梯度提升算法,也是采用加法模型。GBDT以CART回歸樹作為基學習器,通過迭代,每次通過擬合負梯度來構建新的CART回歸樹,通過構建多顆CART樹來降低模型的偏差,實現更好的分類性能。GBDT的核心思想是在每次創建新的CART回歸樹時,通過擬合當前模型損失函數的負梯度,來最小化損失函數。GBDT用於分類和回歸時都使用CART回歸樹,分類時使用指數損失或對數損失,回歸時使用平方誤差損失函數,絕對值損失函數,Huber損失函數等。當GBDT使用平方誤差作為損失函數時,負梯度正好是殘差。
GBDT用CART回歸樹為基分類器,在每次構建新樹時,將樣本在當前模型的殘差作為樣本標簽來訓練下一顆樹,經過多次迭代提升模型的分類性能。決策樹和GBDT雖然結果相同,但是決策樹容易過擬合,泛化能力差,可能在當前訓練集上表現較好,在其他數據集上效果較差,而GBDT是結合了多顆樹模型,具有較好的泛化能力。
2、GBDT回歸算法
GBDT算法過程就是創建多顆CART回歸樹的過程,只是在創建下一顆樹的時候擬合當前模型的負梯度,就是將樣本在當前模型的負梯度作為標簽,去構建下一顆樹。GBDT用於分類時也使用CART回歸樹,輸出類別值,不能直接擬合負梯度,這里只介紹GBDT回歸算法。
輸入:訓練集D={(x1,y1),(x2,y2),……,(xm,ym)},最大迭代次數T,損失函數L
輸出:強學習器f(X)
1) 初始化弱學習器
2) 對迭代次數t=1,2,……,T有:
a.對樣本i=1,2,……,m,計算負梯度
b.利用(xi,rti),擬合一顆CART回歸樹,得到第t可回歸樹,其對應的葉子節點區域為Rtj,J=1,2,……,J。其中J表示回歸樹t的葉子節點的個數。
c.對葉子區域j=1,2,……,J,計算最佳擬合值
d.更新強學習器
3) 得到強學習器表達式
3、GBDT算法負梯度擬合
GBDT是加法模型,當前模型可表示為
其中,是第m顆樹。
當前損失函數為
泰勒一階展開公式為:
對當前損失函數泰勒一階展開
梯度下降公式
其中,表示損失函數,是關於參數的式子
在梯度方向損失函數減少最快,最小化損失函數,用梯度下降法求解參數
同理,最小化損失函數,用梯度下降法求解,則
故
所以GBDT算法每次迭代創建新的CART樹ht(x),實質上是在擬合損失函數的負梯度,利用梯度下降算法在函數空間求解。當GBDT使用均方誤差作為損失函數時,此時的負梯度正好是殘差。
GBDT的優點:
(1)可用於所有回歸問題(包括線性和非線性問題)
(2)可構造組合特征,通常用GBDT構造的組合特征加上原來的特征一起輸入LR模型做分類
(3)可得到特征的重要權重值
GBDT的正則化有三種方式:
(1)子采樣
(2)步長
(3)CART樹剪枝
4、CART回歸樹
CART假設決策樹是二叉樹,遞歸地二分每個特征,將輸入空間划分為有限個單元,並在這些單元上確定預測的概率分別,也就是在輸入給定的條件下輸出的條件概率分布。
CART算法由兩步組成:
(1)決策樹生成
(2)決策樹剪枝
CART回歸樹的建樹過程和其他決策樹一樣,同樣是尋找最優划分特征和最優切分點。
CART回歸樹用平方誤差最小化划分節點
當輸入空間的划分確定時,用平方誤差來表示回歸樹對於訓練數據的預測誤差,用平方誤差最小的准則求解每個單元上的最優輸出值。所以,單元Rm上的cm的最優值是Rm上的所有輸入實例xi對應的輸出yi的均值,在一個划分單元Rm上的樣本的取值相同。
故單元Rm的值cm是
回歸樹生成過程:
(1)尋找最優切分變量和最優切分點,遍歷所有特征j的所有划分點s,求解
c1、c2是左右兩個節點上的實例的y的平均值。
(2)用選定的(j,s)對划分區域並計算相應的輸出值:
(3)繼續對兩個子區域調用步驟(1),(2),直至滿足停止條件。
(4)將輸入空間划分為M個區域R1,R2,……,RM,生成決策樹: