GBDT演算法梳理

2021-09-16 22:28:52 字數 3153 閱讀 1227

人工智慧之gbdt演算法

前言:人工智慧之機器學習主要有三大類:1)分類;2)回歸;3)聚類。今天我們重點**一下gbdt演算法。 ^_^ 

我們知道,gbm[請參見人工智慧(51)]是乙個改善弱學習器效果的計算框架gbm梯度提公升模組可以根據需要任意插入各種各樣的弱分類器。若弱學習器限定了只能使用cart回歸樹模型[請參見人工智慧(43)],則變成了gbdt梯度提公升決策樹。

gbdt梯度提公升決策樹也是整合學習boosting家族的成員,但是卻和傳統的adaboost[請參見人工智慧(40)]有很大的不同。adaboost是一種傳統而重要的boost演算法,它利用前一輪迭代弱學習器的誤差率來更新訓練集的權重。gbdt也是迭代,使用了前向分布演算法,且限定使用cart作為弱學習器,另外兩者迭代思路也不同。

gbdt梯度提公升決策樹是gbm的一種具體例項,只不過這裡的弱分類器是決策樹。friedman於2023年在其**中最早提出gbdt。

gbdt演算法概念:

gbdt(gradient boosting decision tree)演算法,翻譯成梯度提公升決策樹演算法。gbdt重點首先是gradient boosting,其次才是decision tree決策樹

gbdt是gbm框架下使用較多的一種模型,在gbdt中,其基學習器是cart分類回歸樹,使用的是cart樹中的回歸樹。gbdt中的樹都是回歸樹,不是分類樹。儘管gbdt調整後也可用於分類,但不代表gbdt的樹是分類樹。

理論上,gbm可以選擇各種不同的學習演算法作為基學習器。現實中,用得最多的基學習器是決策樹。為什麼梯度提公升方法傾向於選擇決策樹(通常是cart樹)作為基學習器呢?這與決策樹演算法自身的優點有很大的關係。我們知道,單獨使用決策樹演算法時,容易出現過擬合問題。假如通過方法來抑制決策樹的複雜性,降低單顆決策樹的擬合能力,再通過梯度提公升方法整合多個決策樹,最終能很好地解決過擬合問題。由此可見,梯度提公升方法和決策樹演算法可以取長補短,是一對完美搭檔。

gbdt演算法核心:

gbdt在迭代的每一步構建乙個能夠沿著梯度最陡的方向降低損失的學習器來彌補已有模型的不足。gbdt在函式空間中利用梯度下降法進行優化

在gbdt的迭代中,假設前一輪迭代得到的強學習器是ft-1(x)損失函式是l(y,ft-1(x)) 。本輪迭代的目標是找到乙個cart回歸樹模型的弱學習器ht(x),讓本輪的損失l(t,ft-1(x)+ht(x))最小。也就是說,本輪迭代找到決策樹,要讓樣本的損失盡量變得更小

gbdt損失函式:

對於回歸演算法,常用損失函式有如下4種:

1)   均方差,最常見的損失函式。

2)   絕對損失,這個損失函式也很常見。

3)   huber損失,是均方差和絕對損失的折衷產物,對於遠離中心的異常點,採用絕對損失,而中心附近的點採用均方差。這個界限一般用分位數點度量。

4)   分位數損失,對應的是分位數回歸的損失函式。

對於huber損失和分位數損失,主要用於健壯回歸,即減少異常點對損失函式的影響。

gbdt演算法模型:

1)f定義為加法模型:

其中,x為輸入樣本,h為分類回歸樹,w是分類回歸樹的引數,是每棵樹的權重。

2)通過最小化損失函式求解最優模型:

通過貪心法,迭代求區域性最優解。

gbdt演算法流程:

gbdt演算法流程如下:

gbdt演算法引數:

gbdt演算法的超引數還是比較多的,應用過程中需要精心調參,並用交叉驗證的方法選擇最佳引數。

gbdt演算法優點:

1)靈活處理各種型別的資料,包括連續值和離散值;

2)在相對少的調參時間情況下,**的準確率也可以比較高;

3)抵禦訓練資料中的噪音,具有更好的健壯性;

4)使用一些健壯的損失函式,對異常值的魯棒性非常強;

5)效能最好的機器學習演算法之一;

6)適用面非常廣。

gbdt演算法缺點:

1)    由於弱學習器之間存在依賴關係,難以並行訓練資料;

2)    缺乏平滑性;

3)    在高維稀疏特徵上表現一般。

gbdt演算法應用:

gbdt 演算法可以用於回歸模型,同樣它也可以用於分類模型。gbdt 演算法現已被廣泛應用於眾多領域。

gbdt 演算法近年來被提及比較多的乙個演算法,有種觀點認為gbdt是效能最好的機器學習演算法,得益於該演算法在各類資料探勘以及機器學習比賽中卓越表現

結語:

gbdt梯度提公升決策樹演算法是近年來被提及比較多的乙個演算法,這主要得益於其演算法效能。該演算法能夠有效地抵禦訓練資料中的噪音,具有更好的健壯性。通常各類機器學習演算法比賽的贏家們都非常青睞gbdt演算法,由此可見該演算法的實力不可小覷。gbdt 演算法現已被廣泛應用於眾多領域。gbdt演算法在眾多資料探勘和機器學習競賽中有著卓越表現。

GBDT演算法梳理

table of contents 1 gbdt概述 2 前向分布演算法 2.1 加法模型 2.2 前向分布演算法 2.2.1 思想 2.2.2 策略 2.2.3 加法模型求解 3 損失函式 4 負梯度擬合 5 回歸 6 gbdt分類 6.1 二分類 6.2 多分類 7 正則化 8 優缺點 9 sk...

gbdt演算法 演算法梳理五 GBDT

真正開始動手寫,才發現以前理解的不夠深。弄懂乙個演算法,要想明白哪些問題?集合裡有m個樣本,n個特徵,gbdt每棵回歸樹怎麼構造 選取多少樣本,多少特徵 它的損失函式怎麼擬合,殘差是怎麼回事,梯度在其中的作用。gbdt有很多簡稱,有gbt gradient boosting tree gtb gra...

演算法梳理之GBDT

gbdt是整合學習boosting演算法中的一種,它與adaboost相比,adaboost演算法利用前一輪迭代弱學習器的誤差率來更新訓練集的權重,這樣一輪輪的迭代下去,gbdt也是一輪一輪迭代弱學習器,使用前向分布演算法,但是它限定弱學習器只能是決策樹 cart回歸樹 決策樹分為兩大類,回歸樹和分...