GBR——Gradient boosting regression——梯度提升迴歸模型
目 錄
集成學習,Boosting與Bagging的區別
算法思想,算法實現,殘差與負梯度
1 Boosting
Boosting是一種機器學習算法,常見的機器學習算法有:
決策樹算法、樸素貝葉斯算法、支持向量機算法、隨機森林算法、人工神經網絡算法
Boosting與Bagging算法(迴歸算法)、關聯規則算法、EM(期望最大化)算法、深度學習
1.1 集成學習
背景
我們希望訓練得到的模型是一個各方面都穩定表現良好的模型,但是實際情況中得到的卻是僅在某方面偏好的模型。集成學習則可以通過多個學習器相結合,來獲得比單一學習器更優越的泛化性能。
原理
一般集成學習會通過重採樣獲得一定數量的樣本,然後訓練多個弱學習器,採用投票法,即“少數服從多數”原則來選擇分類結果,當少數學習器出現錯誤時,也可以通過多數學習器來糾正結果。
分類
1)個體學習器之間存在較強的依賴性,必須串行生成學習器:boosting類算法;
2) 個體學習器之間不存在強依賴關係,可以並行生成學習器:Bagging類算法
1.2 Boosting與Bagging區別
Boosting
是一種通用的增強基礎算法性能的迴歸分析算法。它可以將弱學習算法提高爲強學習算法,可以應用到其它基礎迴歸算法,如線性迴歸、神經網絡等,來提高精度。
Boosting由於各基學習器之間存在強依賴關係,因此只能串行處理,也就是說Boosting實際上是個迭代學習的過程。
Boosting的工作機制爲:
Bagging
首先從數據集中採樣出T個數據集,然後基於這T個數據集,每個訓練出一個基分類器,再將這些基分類器進行組合做出預測。Bagging在做預測時,對於分類任務,使用簡單的投票法。對於迴歸任務使用簡單平均法。若分類預測時出現兩個類票數一樣時,則隨機選擇一個。Bagging非常適合並行處理。
2 Gradient Boosting算法
任何監督學習算法的目標是定義一個損失函數並將其最小化。
Gradient Boosting 的基本思想是:串行地生成多個弱學習器,每個弱學習器的目標是擬合先前累加模型的損失函數的負梯度,使加上該弱學習器後的累積模型損失往負梯度的方向減少。
舉個簡單的例子
假設有個樣本真實值爲 10,第一個弱學習器擬合結果爲7,則殘差爲10-7=3;
使殘差 3 作爲下一個學習器的擬合目標,第二個弱學習其擬合結果爲2;
則這兩個弱學習器組合而成的 Boosting 模型對於樣本的預測爲7+2=9;
以此類推可以繼續增加弱學習器以提高性能。
和其他boost方法一樣,梯度提升方法也是通過迭代的方法聯合弱”學習者”聯合形成一個強學習者。
2.1 算法思想
2.2 算法實現
1)初始化模型函數:
2)For m = 1 to M:
使用損失函數的負梯度在當前模型 Fm-1(x)上的值近似代替殘差:
使用基學習器 h(x)擬合近似的殘差值:
計算最優的ɤ:
3)更新模型 :
4)返回Fm(x)
2.3 殘差與負梯度
3 終極組合GBR
GBR就是弱學習器是迴歸算法。
常見的迴歸算法:
線性迴歸(Linear Regression)
邏輯迴歸(Logistic Regression)
多項式迴歸(Polynomial Regression)
逐步迴歸(Stepwise Regression)
嶺迴歸(Ridge Regression)
套索迴歸(Lasso Regression)
彈性迴歸(ElasticNet Regression)
其他GB算法:
GBRT (Gradient BoostRegression Tree)
梯度提升迴歸樹
GBDT (Gradient BoostDecision Tree)
梯度提升決策樹