『機器學習筆記 』GBDT原理-Gradient Boosting Decision Tree
阿新 • • 發佈:2019-01-02
1. 背景
決策樹是一種基本的分類與迴歸方法。決策樹模型具有分類速度快,模型容易視覺化的解釋,但是同時是也有容易發生過擬合,雖然有剪枝,但也是差強人意。
提升方法(boosting)在分類問題中,它通過改變訓練樣本的權重(增加分錯樣本的權重,減小分隊樣本的的權重),學習多個分類器,並將這些分類器線性組合,提高分類器效能。boosting數學表示為:
其中w是權重,是弱分類器的集合,可以看出最終就是基函式的線性組合。
於是決策樹與boosting結合產生許多演算法,主要有提升樹、GBDT等。本文主要是GBDT學習筆記。
1.1 Gradient Boosting
Gradient Boosting是一種Boosting的方法,它主要的思想是,每一次建立模型是在之前建立模型損失函式的梯度下降方向。損失函式是評價模型效能(一般為擬合程度+正則項),認為損失函式越小,效能越好。而讓損失函式持續下降,就能使得模型不斷改性提升效能,其最好的方法就是使損失函式沿著梯度方向下降(講道理梯度方向上下降最快)。
Gradient Boost是一個框架,裡面可以套入很多不同的演算法。
1.2 提升樹-boosting tree
以決策樹為基函式的提升方法稱為提升樹,其決策樹可以是分類樹OR迴歸樹。提升樹模型可以表示為決策樹的加法模型。
其中,表示樹的引數,M為樹的個數。
迴歸問題提升樹演算法
輸入:訓練資料集;為輸出空間。
輸出:提升樹
初始化
對於:
計算殘差(後一棵樹擬合前一顆樹殘差):
擬合殘差學習一個迴歸樹,得到
更新
M次迭代之後得到提升樹:
2 Gradient Boosting Decision Tree
提升樹的學習優化過程中,損失函式平方損失和指數損失時候,每一步優化相對簡單,但對於一般損失函式優化的問題,Freidman提出了Gradient Boosting演算法,其利用了損失函式的負梯度在當前模型的值
作為迴歸問題提升樹演算法的殘差近似值,去擬合一個迴歸樹。
2.1 函式空間的數值優化
優化目標是使得損失函式最小,(N是樣本集合大小):