python數據分析——認識GBR梯度提升迴歸模型

GBR——Gradient boosting regression——梯度提升迴歸模型

目 錄

1 Boosting

   集成學習,Boosting與Bagging的區別

2 Gradient Boosting算法

   算法思想,算法實現,殘差與負梯度

 3 終極組合GBR


Boosting

Boosting是一種機器學習算法,常見的機器學習算法有:

決策樹算法、樸素貝葉斯算法、支持向量機算法、隨機森林算法、人工神經網絡算法

Boosting與Bagging算法(迴歸算法)、關聯規則算法、EM(期望最大化)算法、深度學習

1.1 集成學習

背景

我們希望訓練得到的模型是一個各方面都穩定表現良好的模型,但是實際情況中得到的在某方面偏好的模型。集成學習則可以通過多個學習器相結合,來獲得比單一學習器更優越的泛化性能。

原理

一般集成學習會通過重採樣獲得一定數量的樣本,然後訓練多個弱學習器,採用投票法,即少數服從多數原則來選擇分類結果,當少數學習器出現錯誤時,也可以通過多數學習器來糾正結果。

分類

1)個體學習器之間存在較強的依賴性,必須串行生成學習器:boosting類算法;

2) 個體學習器之間不存在強依賴關係,可以並行生成學習器:Bagging類算法

1.2 Boosting與Bagging區別

Boosting

種通用的增強基礎算法性能的迴歸分析算法。它可以將弱學習算法提高爲強學習算法,可以應用到其它基礎迴歸算法,如線性迴歸、神經網絡等,來提高精度。

Boosting由於各基學習器之間存在強依賴關係,因此只能串行處理,也就是說Boosting實際上是個迭代學習的過程。

Boosting的工作機制爲:

1)先從初始訓練集中訓練出一個基學習器,再根據基學習器的表現對訓練樣本分佈進行調整,使得先前基學習器處理不當的樣本在後續的訓練過程中受到更多關注;
2)然後基於調整後的樣本分佈來訓練下一個基學習器;  
3)如此重複,直到基學習器數目達到事先自定的值T,然後將這T個基學習器進行加權結合。

 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)

梯度提升決策樹

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章