機器學習 GBDT演算法與stacking演算法

2022-04-29 00:51:09 字數 2102 閱讀 2521

gbdt(梯度提公升迭代決策樹)

總結

優先解決回歸問題,將第乙個資料的殘差傳入到第二個資料中去

詳述

gbdt也是boosting演算法的一種,但是和adaboost演算法不同;區別如下:

adaboost演算法是利用前一輪的弱學習器的誤差來更新樣本權重值,然後一輪一輪

的迭代;

gbdt也是迭代,但是gbdt要求弱學習器必須是回歸cart模型,而且

gbdt在模型訓練的時候,是要求模型**的樣本損失盡可能的小。優先做回歸問題。

要求:把boosting演算法的第一棵樹,第二棵樹...看成一種迭代,隨著迭代加深,損失函式在逐漸減小,哪個方向上損失函式減小最快,負梯度方向。因此,構建下乙個學習器時,傳入的值就是負梯度值,僅此而已。也是殘差

gbdt通過多輪迭代,每輪迭代產生乙個弱分類器,每個分類器在上一輪分類器的殘差基礎上進行訓練。對弱分類器的要求一般是足夠簡單,並且是低方差和高偏差的。因為訓練的過程是通過降低偏差來不斷提高最終分類器的精度。 方差越高,模型越複雜,越容易過擬合;偏差越高,模型越簡單,越容易欠擬合。

備註:所有gbdt演算法中,底層都是回歸樹。

原理如下圖

所有樹的結果累加起來就是最終結果。

gbdt與隨機森輪的區別

a.隨機森林使用抽取不同的樣本構建不同的子樹,也就是說第m棵樹的構建和前m-1棵樹的結果是沒有關係的。

b.迭代決策樹在構建子樹的時候,使用之前子樹構建結果後形成的殘差作為輸入資料構建下乙個子樹;然後最終**的時候按照子樹構建的順序進行**,並將**結果相加梯度提公升迭代決策樹gbdt。

原理詳述:

f(x)是所有樹加一起的回歸值,我們要求的是下一棵樹f*(x),argmin意思是f*(x)是多少的時候能達到損失函式最小,後面的f(x)是前m個回歸器y的回歸值之和。

我們要找的就是fm(xi)是多少的時候,損失函式最小

以某乙個葉子節點舉例:

來個完整的例題!

stacking是指訓練乙個模型用於組合(combine)其它模型(基模型/基學習器)的技術。即首先訓練出多個不同的模型,然後再以之前訓練的各個模型的輸出作為輸入來新訓練乙個新的模型,從而得到乙個最終的模型。一般情況下使用單層的logistic回歸作為組合模型。

機器學習(五) GBDT演算法

gbdt也是整合學習boosting家族的成員,gbdt也是迭代,使用了前向分布演算法,但是弱學習器限定了只能使用cart回歸樹模型。在gbdt的迭代中,假設我們前一輪迭代得到的強學習器是 f t 1 x 損失函式是l y,ft 1 x 我們本輪迭代的目標是找到乙個cart回歸樹模型的弱學習器ht ...

機器學習 GBDT演算法梳理

學習任務 前向分步演算法 負梯度擬合 損失函式 回歸二分類,多分類 正則化優缺點 sklearn引數 應用場景 前言 提公升 boosting 方法是整合學習方法的一種,在分類問題中,它通過改變訓練樣本的權重,學習多個分類器,將弱分類器組裝成乙個強分類器,提高分類的效能。其最具代表性的是adaboo...

機器學習 GBDT

在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...