Gradient Boosting
01-28
Gradient Boosting介紹
之前一直知道Gradient Boosting Decision Tree(GBDT)很強大,但是對其中的原理細節知道的很少,這幾天終於把細節部分了解了一下。介紹主要參考Gradient Boosting。
Gradient Boosting(梯度提升)是一種集成弱學習模型的機器學習方法,例如GBDT就是集成了多個弱決策樹模型。
機器模型主要的目標是得到一個模型,使得預測值與真實值之間的誤差儘可能小,例如在線性回歸中,誤差的衡量標準就是。推廣到有監督學習中,模型的優化目標通常定義為最小化損失函數的期望,因而模型可以定義為。
在Gradient Boosting中,採取分層學習的方法,通過個步驟來得到最終模型,其中第步學習一個較弱的模型,在第步時,不直接優化,而是學習一個基本模型,使得其擬合殘差項,這樣就會使步的模型預測值更接近於真實值,因而目標變成了如何找到,最終就是要找到某類函數空間中的一組使得
具體演算法的步驟可以由以下的方式定義,在第二步中可以看到,演算法將負梯度作為殘差值來學習基本模型(採用了梯度下降的思想,將損失函數看成是的函數)
Gradient Boosting Decision Tree(GBDT)
GBDT與上述演算法有稍許不同,它利用決策樹來學習基本模型,為樹中的每一片子區域學習一個殘差項,具體演算法如下
GBDT訓練經驗方法
- 樹的深度一般在之間
- Shrinkage:定義學習率,使得,其中
- 使用隨機梯度提升的方法,速度更快,還可以使用OOB error指標來評估模型的效果
- 防止過擬合的幾種方法
- 迭代次數取一個較為合適的值
- 如果決策樹的某次劃分使得節點上的實例數小於某個閾值,則丟棄該劃分
- 樹的複雜度作為懲罰項
參考
- Gradient boosting
- 《The Elements of Statistical Learning》Trevor Hastie et al.
推薦閱讀:
※機器學習實戰之決策樹(三)
※某熊周刊系列:一周推薦外文技術資料(2.5)
※機器是怎麼一步步看穿我們的
※機器學習基礎:邏輯回歸