整合學習(四) GBDT

2022-07-30 13:48:15 字數 1461 閱讀 5782

gbdt演算法:

所謂的gbdt(gradient boost desicison tree)就是值在每一步迭代時我們難以真正求得乙個新的模型使得其加上原有模型得到的損失最小,但是我們可以用所謂的梯度下降法使得損失減小。

輸入:訓練資料集$d+\lbrace(x_,y_),...,(x_,y_)\rbrace$,$x_\in\mathbb^$,$y_\in\mathbb$; 損失函式$l(f(x),y)$; 正整數$m$;

輸出:某回歸模型

step1.令$f_=argmin_\sum_^l(c,y_)$

step2.$m=1,...,m$, 執行:

1) 計算$g_=\partial_ l(f_(x_),y_)$;

2) 對資料$\lbrace(x_,-g_),...,(x_-g_)\rbrace$ 用cart演算法進行擬合,得到一回歸樹,並且對每個葉節點得到乙個葉節點區域$r_,$

$j=1,...,j$;

3) 計算: \beginc_=argmin_\sum_\in r_}l(f_(x_)+c, y_)\end

4) 令:

\beginf_=f_+c_i(\lbrace x\in r_\rbrace)\end

step3.輸出$f_$

學習率收縮shrinkage

為了防止過擬合,也為了給後續的弱學習器留下更多學習空間,我們可以選擇某個常數$\nu\in(0,1)$ 甚至是乙個單調遞減的數列$\lbrace \nu_\in(0,1)\rbrace_^$來作為學習率,具體說來就是在上述演算法的step2的4)中令:

\beginf_=f_+\nu c_i(\lbrace x\in r_\rbrace)\end

或者:\beginf_=f_+\nu_ c_i(\lbrace x\in r_\rbrace)\end

一般說來,更低的學習率意味著更高的運算開銷,我們應該選擇更大的$m$, 在實踐中我們一般選擇學習率$\nu\leq 0.1$,而如果選擇的學習率過大的話模型會很快過擬合。

子取樣subsampling,袋外誤差,特徵重要性

gbdt也可以每次隨機取樣若干樣本而不是樣本總體進行訓練,我們在隨機森林,baggging演算法中已經看到,子取樣有助於減小模型方差,同時我們也可以計算袋外誤差。和隨機森林一樣,我們也可以得到特徵的重要性。

參考文獻

[1] trevor hastie,robert tibshirani,jerome friedman: the elements of statistical learning data mining,inference,and prediction, second edition, springer verleg, 2009

機器學習 整合學習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...

整合學習專題之GBDT面試

題目和答案來自於網路,相關鏈結已貼。春招不易,且學且珍惜 q1 gbdt的演算法流程?a gbdt是通過採用加法模型 基函式的線性組合 不斷減小訓練過程產生的殘差來達到將資料分類或者回歸的演算法。針對一般損失函式優化困難問題,利用損失函式的負梯度在當前模型的值作為殘差的近似值進行求解。q2 gbdt...