gb, 梯度提公升,通過進行m次迭代,每次迭代產生乙個回歸樹模型,我們需要讓每次迭代生成的模型對訓練集的損失函式最小,而如何讓損失函式越來越小呢?我們採用梯度下降的方法,在每次迭代時通過向損失函式的負梯度方向移動來使得損失函式越來越小,這樣我們就可以得到越來越精確的模型。
假設gbdt模型t有4棵回歸樹構成:t1,t2,t3,t4,樣本標籤為y(y1,y2,y3,.....yn)
設定該模型的誤差函式為l,並且為squarederror,則整體樣本的誤差推導如下:
對於首棵樹,可以看出,擬合的就是訓練樣本的標籤,並且得到t1**後的殘差,從誤差函式的公式中可以看出,後面的殘差r2 = r1 - t2, r3 = r2 - t3, r4 = r3 - t4....,由此可以得出,後面的回歸樹t2, t3, t4建立時 都是為了擬合前一次留下的殘差,可以看出,殘差不斷在減小,直至達到可接受的閾值為止。
對於梯度版本,採用誤差函式的當前負梯度值作為當前模型**留下的殘差,因此建立新的一棵回歸樹來擬合該殘差,更新後,整體gbdt模型的殘差將進一步降低,也帶來l的不斷降低
gbdt樹分為兩種,
(1)殘差版本
殘差其實就是真實值和**值之間的差值,在學習的過程中,首先學習一顆回歸樹,然後將「真實值-**值」得到殘差,再把殘差作為乙個學習目標,學習下一棵回歸樹,依次類推,直到殘差小於某個接近0的閥值或回歸樹數目達到某一閥值。其核心思想是每輪通過擬合殘差來降低損失函式。
總的來說,第一棵樹是正常的,之後所有的樹的決策全是由殘差來決定。
(2)梯度版本
與殘差版本把gbdt說成乙個殘差迭代樹,認為每一棵回歸樹都在學習前n-1棵樹的殘差不同,gradient版本把gbdt說成乙個梯度迭代樹,使用梯度下降法求解,認為每一棵回歸樹在學習前n-1棵樹的梯度下降值。總的來說兩者相同之處在於,都是迭代回歸樹,都是累加每顆樹結果作為最終結果(multiple additive regression tree),每棵樹都在學習前n-1棵樹尚存的不足,從總體流程和輸入輸出上兩者是沒有區別的;
兩者的不同主要在於每步迭代時,是否使用gradient作為求解方法。前者不用gradient而是用殘差—-
殘差是全域性最優值
,gradient是區域性最優方向*步長,即前者每一步都在試圖讓結果變成最好,後者則每步試圖讓結果更好一點。
兩者優缺點。看起來前者更科學一點–有絕對最優方向不學,為什麼捨近求遠去估計乙個區域性最優方向呢?原因在於靈活性。前者最大問題是,由於它依賴殘差,cost function一般固定為反映殘差的均方差,因此很難處理純回歸問題之外的問題。而後者求解方法為梯度下降,只要可求導的cost function都可以使用。
GBDT 梯度提公升決策樹
gbdt gradient boosting decision tree 又叫 mart multiple additive regression tree 是一種迭代的決策樹演算法,該演算法由多棵決策樹組成,所有樹的結論累加起來做最終答案。它在被提出之初就和svm一起被認為是泛化能力較強的演算法。...
梯度提公升決策樹 GBDT
整合學習經典一類演算法,屬於個體學習器間存在較強依賴關係的一類,需以序列的序列化生成方法構建。原理 所有弱分類器結果相加等於 值,下乙個弱分類器去擬合誤差函式對 值的殘差 值與真實值的誤差 這裡的弱分類器是決策樹。舉例 用gbdt的方法 年齡 step1 在第乙個弱分類器中隨機選擇乙個數字擬合,發現...
梯度提公升決策樹 GBDT)
以決策樹為基函式的提公升方法稱為提公升樹。決策樹可以分為分類樹和回歸樹。提公升樹模型可以表示為決策樹的加法模型。針對不同的問題的提公升術演算法的主要區別就是損失函式的不同,對於回歸問題我們選用平方損失函式,對於分類問題,我們使用指數損失函式。特別的,對於二分類問題,我們提公升樹就是把adaboost...