最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

05-機器學(xué)習(xí)-GBDT-梯度提升決策樹

2023-03-05 20:37 作者:三哥的平凡生活  | 我要投稿

視頻詳解:

1.GBDT算法

GBDT(Gradient Boosting Decision Tree),全名叫梯度提升決策樹,是一種迭代的決策樹算法,又叫 MART(Multiple Additive Regression Tree),它通過構(gòu)造一組弱的學(xué)習(xí)器(樹),并把多顆決策樹的結(jié)果累加起來作為最終的預(yù)測輸出。該算法將決策樹與集成思想進行了有效的結(jié)合。

GBDT中的樹是回歸樹(不是分類樹),GBDT用來做回歸預(yù)測,調(diào)整后也可以用于分類。

1.1 應(yīng)用場景

  • 1、用于自動挖掘有效特征、特征組合

  • 2、作為LR模型中的特征,提高CTR預(yù)估

  • 3、GBDT應(yīng)用于淘寶的搜索及預(yù)測業(yè)務(wù)

1.2 Boosting核心思想

Boosting方法訓(xùn)練基分類器時采用串行的方式,各個基分類器之間有依賴。它的基本思路是將基分類器層層疊加,每一層在訓(xùn)練的時候,對前一層基分類器分錯的樣本,給予更高的權(quán)重。測試時,根據(jù)各層分類器的結(jié)果的加權(quán)得到最終結(jié)果。

Bagging 與 Boosting 的串行訓(xùn)練方式不同,Bagging 方法在訓(xùn)練過程中,各基分類器之間無強依賴,可以進行并行訓(xùn)練。

2、GBDT詳解

GBDT的原理

  • 所有弱分類器的結(jié)果相加等于預(yù)測值。

  • 每次都以當(dāng)前預(yù)測為基準(zhǔn),下一個弱分類器去擬合誤差函數(shù)對預(yù)測值的殘差(預(yù)測值與真實值之間的誤差)。

  • GBDT的弱分類器使用的是樹模型(cart)。

如圖是一個非常簡單的幫助理解的示例,我們用 GBDT 去預(yù)測年齡:

  • 第一個弱分類器(第一棵樹)預(yù)測一個年齡(如20歲),計算發(fā)現(xiàn)誤差有10歲;

  • 第二棵樹預(yù)測擬合殘差,預(yù)測值 6,計算發(fā)現(xiàn)差距還有 4 歲;

  • 第三棵樹繼續(xù)預(yù)測擬合殘差,預(yù)測值 3,發(fā)現(xiàn)差距只有 1 歲了;

  • 第四課樹用 1 歲擬合剩下的殘差,完成。

最終,四棵樹的結(jié)論加起來,得到30歲這個標(biāo)注答案(實際工程實現(xiàn)里,GBDT 是計算負(fù)梯度,用負(fù)梯度近似殘差)

GBDT計算流程

1、GBDT與負(fù)梯度近似殘差

回歸任務(wù)下,GBDT在每一輪的迭代時對每個樣本都會有一個預(yù)測值,此時的損失函數(shù)為均方差損失函數(shù):

損失函數(shù)的負(fù)梯度計算如下:

可以看出,當(dāng)損失函數(shù)選用「均方誤差損失」時,每一次擬合的值就是(真實值-預(yù)測值),即殘差。

2、GBDT訓(xùn)練過程

我們來借助1個簡單的例子理解一下 GBDT 的訓(xùn)練過程。假定訓(xùn)練集只有4個人(A、B、C、D),他們的年齡分別是(14,16,24,26)。其中,A、B分別是高一和高三學(xué)生;C、D分別是應(yīng)屆畢業(yè)生和工作兩年的員工。

我們先看看用回歸樹來訓(xùn)練,得到的結(jié)果如下圖所示:

接下來改用 GBDT 來訓(xùn)練。由于樣本數(shù)據(jù)少,我們限定葉子節(jié)點最多為2(即每棵樹都只有一個分枝),并且限定樹的棵樹為2。 最終訓(xùn)練得到的結(jié)果如下圖所示:

上圖中的樹很好理解:A、B年齡較為相近,C、D年齡較為相近,被分為左右兩支,每支用平均年齡作為預(yù)測值。

  • 我們計算殘差(即「實際值」-「預(yù)測值」),所以 A 的殘差 14-15=-1 。

  • 這里 A的「預(yù)測值」是指前面所有樹預(yù)測結(jié)果累加的和,在當(dāng)前情形下前序只有一棵樹,所以直接是15 ,其他多樹的復(fù)雜場景下需要累加計算作為 A 的預(yù)測值。

上圖中的樹就是殘差學(xué)習(xí)的過程了:

  • 把 A、B、C、D 的值換作殘差 -1、1、-1、1,再構(gòu)建一棵樹學(xué)習(xí),這棵樹只有兩個值 1 和 -1,直接分成兩個節(jié)點:A、C 在左邊,B、D在右邊。

  • 這棵樹學(xué)習(xí)殘差,在我們當(dāng)前這個簡單的場景下,已經(jīng)能保證預(yù)測值和實際值(上一輪殘差)相等了。

  • 我們把這棵樹的預(yù)測值累加到第一棵樹上的預(yù)測結(jié)果上,就能得到真實年齡,這個簡單例子中每個人都完美匹配,得到了真實的預(yù)測值。

最終的預(yù)測過程是這樣的:

  • A:高一學(xué)生,購物較少,經(jīng)常問學(xué)長問題,真實年齡 14 歲,預(yù)測年齡A=15-1=14

  • B:高三學(xué)生,購物較少,經(jīng)常被學(xué)弟提問,真實年齡 16 歲,預(yù)測年齡B=15+1=16

  • C:應(yīng)屆畢業(yè)生,購物較多,經(jīng)常問學(xué)長問題,真實年齡 24 歲,預(yù)測年齡C=25-1=24

  • D:工作兩年員工,購物較多,經(jīng)常被學(xué)弟提問,真實年齡 26 歲,預(yù)測年齡D=25+1=26

綜上,GBDT 需要將多棵樹的得分累加得到最終的預(yù)測得分,且每輪迭代,都是在現(xiàn)有樹的基礎(chǔ)上,增加一棵新的樹去擬合前面樹的預(yù)測值與真實值之間的殘差。

3.梯度提升 vs 梯度下降

下面我們來對比一下「梯度提升」與「梯度下降」。這兩種迭代優(yōu)化算法,都是在每1輪迭代中,利用損失函數(shù)負(fù)梯度方向的信息,更新當(dāng)前模型,只不過:

  • 梯度下降中,模型是以參數(shù)化形式表示,從而模型的更新等價于參數(shù)的更新。


  • 梯度提升中,模型并不需要進行參數(shù)化表示,而是直接定義在函數(shù)空間中,從而大大擴展了可以使用的模型種類。


3.GBDT優(yōu)缺點

1)優(yōu)點

  • 預(yù)測階段,因為每棵樹的結(jié)構(gòu)都已確定,計算速度快。

  • 適用稠密數(shù)據(jù),泛化能力和表達能力都不錯,數(shù)據(jù)科學(xué)競賽榜首常見模型。

  • 可解釋性不錯,魯棒性亦可,能夠自動發(fā)現(xiàn)特征間的高階關(guān)系。

2)缺點

  • GBDT 在高維稀疏的數(shù)據(jù)集上,效率較差,且效果表現(xiàn)不如 SVM 或神經(jīng)網(wǎng)絡(luò)。

  • 適合數(shù)值型特征,在 NLP 或文本特征上表現(xiàn)弱。

  • 訓(xùn)練過程無法并行,工程加速只能體現(xiàn)在單顆樹構(gòu)建過程中。

4.隨機森林 vs GBDT

1)相同點

  • 都是集成模型,由多棵樹組構(gòu)成,最終的結(jié)果都是由多棵樹一起決定。

  • RF?和?GBDT?在使用?CART?樹時,可以是分類樹或者回歸樹。

2)不同點

  • 訓(xùn)練過程中,隨機森林的樹可以并行生成,而?GBDT?只能串行生成。

  • 隨機森林的結(jié)果是多數(shù)表決表決的,而?GBDT?則是多棵樹累加之。

  • 隨機森林對異常值不敏感,而?GBDT?對異常值比較敏感。

  • 隨機森林降低模型的方差,而?GBDT?是降低模型的偏差。

代碼演示-GBDT

  • 數(shù)據(jù)集 隨機生成

  • sklearn

  • 可視化決策樹插件 Download:https://graphviz.org/download/

  • 決策樹插件安裝文檔:https://blog.csdn.net/u012744245/article/details/103360769


05-機器學(xué)習(xí)-GBDT-梯度提升決策樹的評論 (共 條)

分享到微博請遵守國家法律
宁蒗| 云阳县| 和田县| 兴义市| 公安县| 珲春市| 南通市| 买车| 海南省| 云浮市| 舞阳县| 高淳县| 尤溪县| 包头市| 昌都县| 洞头县| 凯里市| 全南县| 乐山市| 黄龙县| 安塞县| 枣强县| 获嘉县| 大厂| 苏尼特右旗| 孟州市| 韶山市| 石首市| 甘南县| 舞阳县| 烟台市| 天气| 华容县| 政和县| SHOW| 屏东县| 罗甸县| 托克逊县| 赤壁市| 南充市| 邯郸市|