在gbdt的迭代中,假設前一輪迭代得到的強學習器:ft−
1(x)
f_(x)
ft−1(
x), 損失函式:l(y
,ft−
1(x)
)l(y,f_(x))
l(y,ft
−1(
x)), 本輪迭代的目標是找到乙個cart回歸樹模型的弱學習器ht(
x)
h_t(x)
ht(x)
,讓本輪的損失函式l(y
,ft(
x)=l
(y,f
t−1(
x)+h
t(x)
)l(y,f_t(x)=l(y,f_(x)+h_t(x))
l(y,ft
(x)
=l(y
,ft−
1(x
)+ht
(x)
)最小。即本輪迭代找到決策樹要滿足這樣的條件:讓樣本的損失盡量變得更小。
gbdt的思想可以用乙個通俗的例子解釋,假如有個人30歲,第一輪用20歲去擬合,損失10歲,第二輪用6歲去擬合剩下的損失,損失有4歲,第三輪用3歲擬合剩下的差距,差距就只有一歲了。如果迭代輪數還沒有完,可以繼續迭代下面,每一輪迭代,擬合的歲數誤差都會減小。
損失的擬合不好度量,損失函式各種各樣,怎麼找到一種通用的擬合方法呢?
當gbdt的損失函式是平方損失時,即l(y
,f(x
))=1
2(y−
f(x)
)2
l(y,f(x))=\frac12(y-f(x))^2
l(y,f(
x))=
21(
y−f(
x))2
,負梯度為:−∂l
∂f(x
)=y−
f(x)
-\frac=y-f(x)
−∂f(x)
∂l=
y−f(
x),y −f
(x
)y-f(x)
y−f(x)
即為殘差。gbdt的思想是在每次迭代中擬合殘差來學習乙個弱學習器,而殘差的方向即為我們全域性的方向。但是當損失函式不是平方誤差時候,如何擬合弱分類器?friedman提出使用損失函式的負梯度方向代替殘差,此時稱損失函式的負梯度為偽殘差,或者也可以理解為殘差是偽殘差的一種特殊情況。當損失函式不是平方誤差時候,用每次迭代的區域性最優方向代替全域性最優方向。
機器學習 GBDT
基礎概念 gbdt gradient boosting decision tree 全稱梯度提公升決策樹,是一種迭代的決策樹演算法。gbdt是整合學習boosting的家族成員,gbdt中的樹是回歸樹,用於回歸 調整後也可以用於分類。分類樹與回歸樹的差異 分類樹大致的實現過程是 窮舉每乙個屬性特徵的...
機器學習 整合學習GBDT
gbdt也是整合學習boosting的其中一種,boosting是由多個弱學習器組成,與bagging不同,boosting學習器之間有關聯的關係。adaboost是通過前面的學習器模型來決定當前的學習器模型的每個樣本的權重,然後計算出當前學習器組合權重,最後將學習器線性組合起來。而gbdt則是通過...
機器學習 整合學習(GBDT)
形式 第一輪,確定n 90 gbdt gradientboostingclassifier model gbdt1 gridsearchcv gbdt,param grid cv 5 model gbdt1.fit x train,y train print model gbdt1.best par...