色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

為什么GBDT用回歸樹不用分類樹?CART決策樹是怎么計算基尼值呢?

冬至子 ? 來源:宅碼 ? 作者:Ai ? 2023-07-28 15:00 ? 次閱讀

一、背景

集成學習Boosting一族將多個弱學習器(或稱基學習器)提升為強學習器,像AdaBoost, GBDT等都屬于“加性模型”(Additive Model),即基學習器的線性組合。1997年Freund和Schapire提出的AdaBoost,它是先從初始訓練集訓練出一個基學習器,然后基于基學習器的在這一輪的表現,在下一輪訓練中給預測錯的訓練樣本更大權重值,以達到逐步減少在訓練集的預測錯誤率。這種訓練機制像不像做一套卷子,有些重難點題做不出來,那下次又給你做同樣的卷子,但不同的是:之前你做錯的重難點題占有很大的分值比重,這樣你會將更多重心放在了這些難題上,從而提高你的學習表現。那除了這種方式,還有沒有其他方法攻克考題上的重難點?有,就是死磕到底,找到這題錯在哪?基于此錯誤繼續去做這道題,直到做對為止。這跟GBDT [1] 的工作機制就很像了,它是先產生一個弱學習器(CART回歸樹模型),訓練后得到輸入樣本的殘差,然后再產生一個弱學習器,基于上一輪殘差進行訓練。不斷迭代,最后加權結合所有弱學習器得到強學習器。GBDT的一個應用示意圖如下(某樣本預測值 = 它在不同弱學習器所在葉子節點輸出值的累加值):

圖片

圖1:GBDT應用示意圖

二、GBDT

第二部分目錄如下:

1.背景知識

  • GBDT弱學習器
  • GBDT模型框架

2.GBDT回歸

3.GBDT分類

  • GBDT二分類
  • GBDT多分類

1. 背景知識

GBDT可用于回歸和分類任務。在深入了解它在回歸或分類任務上的訓練細節之前,我們先了解一些相關的背景知識。

(1)GBDT弱學習器

決策樹是IF-THEN結構,它學習的關鍵在于如何選擇最優劃分屬性。西瓜書 [2] 提到:“隨著劃分過程不斷進行,我們希望決策樹的分支結點所包含的樣本盡可能屬于同一類別,即結點的“純度”(Purity)越來越高”。衡量純度的指標有多種,因此對應有不同類型的決策樹算法,例如ID3決策樹 (以信息增益Information Gain作為屬性劃分標準),C4.5決策樹 (以增益率Gain Ratio選擇最優劃分屬性),CART決策樹 (使用基尼指數Gini Index)來選擇劃分屬性。

決策樹那么多種,為什么GBDT的弱學習器就限定使用CART決策樹?

A: 原因如下所示 (具體細節不展開):

  • ID3決策樹只支持類別型變量,而C4.5和CART支持連續型和類別型變量。
  • C4.5適用于小樣本,CART適用于大樣本。

CART決策樹是怎么計算基尼值呢?

A: 假設當前數據集D中第k類樣本所占比例為圖片 (k=1,2,…,圖片),則基尼值為:

圖片

圖片反映了從數據集D隨機抽取兩個樣本,其類別標記不一致的概念,因此越小,數據集D的純度越高。基于此,屬性a的基尼指數定義為:

圖片

假設屬性a有V個可能的取值{圖片},則圖片是指第v個分支結點包含D中所有在屬性a上取值為圖片的樣本。圖片是給分支結點賦予權重,獲得樣本數更多的結點,影響更大。

舉個具體計算基尼指數的例子,假如按照“芯片高通驍龍865和非高通驍龍865進行機型檔位劃分”:

圖片

表1:基尼指數計算樣例集

當芯片為高通驍龍865時,有旗艦機2個,中端機1個:

圖片

當芯片非高通驍龍865時,有中端機1個,低端機1個:

圖片

最后,特征”芯片”下數據集的基尼指數是:

圖片

為什么GBDT用回歸樹,不用分類樹?

A: 因為GBDT要計算殘差,且預測結果是通過累加所有樹結果得到的。因此分類樹沒法產生連續型結果滿足GBDT的需求。

(2)GBDT模型框架

圖片

圖2:GBDT算法實現流程圖及偽代碼 [3]

GBDT的偽代碼如圖2所示,假設我們有個樣本集圖片,想用M個弱學習器加性組合成GBDT強學習器,我們得按以下步驟進行實現 (詳情參考 [4]):

1)初始化一個弱學習器圖片。它使損失函數圖片最小化,具體如下:

圖片

這里圖片是什么呢?請接著看下去,假設這里損失函數為平方損失,則對圖片求導:

圖片

由于這里的損失函數為凸函數,所以只要令上面這個導數為0即可,那么可以求得:

圖片

因此,圖片是所有訓練樣本標簽值的均值,它是一個常數,所以弱學習器圖片就只有一個根節點。

圖片

注意:圖片因損失函數不同而不同。

2)迭代訓練m = 1, 2, … , M棵樹。

(a)對每個樣本i = 1, 2, …, N,計算負梯度:

圖片

(b)將上步(a)得到的負梯度圖片作為新樣本值,將新數據圖片, I = 1, 2, …, N作為下顆樹的訓練數據,擬合得到新樹,新樹上的葉子節點區域為圖片(j = 1, 2, …,圖片,其中圖片為葉子結點的個數)。

(c)對每個葉子節點j = 1, 2, …,圖片 ,計算最佳擬合(即使損失函數最小,擬合葉子節點最好的輸出值):

圖片

(d)更新強學習器:

圖片

圖片是CART回歸樹模型的表達式,其中J是指數據集被劃分為J個單元(即葉子節點),圖片是第m輪迭代訓練下,CART樹第j個單元的輸出值。而圖片是指示函數,若圖片,則I=1,否則I=0。這里第m輪下的強學習器 = 第m-1輪下的強學習器 + 第m輪的弱學習器。

3)輸出最終學習器GBDT:

圖片

上述公式展示的就是一系列弱學習器累加后得到強學習器的結果。

負梯度和殘差的關系是什么?

A: 負梯度是函數下降最快的方向,也是GBDT目標函數下降最快的方向,所以,我們用負梯度去擬合模型。而殘差只是一個負梯度的特例,當損失函數為均方損失時,負梯度剛好是殘差(這點在上面 "對圖片求導" 處有做假設展示)。

2. GBDT回歸

上面”GBDT通用框架”就是以平方損失為損失函數的一種GBDT回歸模型學習過程,不同損失函數導致使用的負梯度不同,因此也就產生了不同的GBDT回歸算法,總結了下GBDT回歸模型所用的損失和負梯度如下:

圖片

表2:GBDT回歸樹常用損失函數及負梯度 [5]

這里特別說下Huber損失,它對于中間附近的點 (圖片)采用均方誤差,對遠離中心的異常點 (圖片),采用絕對損失。邊界點δ的值受絕對損失函數而不是平方誤差損失控制,定義了這些被認為是“離群點”的殘差值。總的來說,Huber結合了均方差和絕對損失,在抵抗長尾誤差分布和異常值的同時,還保持了對正態分布誤差的高效率。它和分位數損失一樣,適用于穩健回歸,用于減少異常點對損失函數的影響。

3. GBDT分類

由于分類有二分類和多分類任務,所以GBDT分類有所區別,這里分開對它們進行展開解釋:

** (1) GBDT二分類**

我們上面也講到了,GBDT本質上就是一系列弱學習器之和:

圖片

而GBDT分類跟邏輯回歸的思路是類似的,將圖片的作為下列函數的輸入,便可以得到類別概率值:

圖片

假設樣本獨立且同分布,極大似然估計(即選取合適的參數使被選取的樣本在總體中出現的可能性最大)的損失函數為:

圖片

為了方便對損失函數求導,會加入對數,求最大對數似然估計:

圖片

上面的損失函數并非最終的函數,而是最大似然估計函數(數值越大越好),由于損失函數應該使越小越好,所以要對上面的L取相反數,同時為了得到平均到每個樣本的損失值,要除以樣本數N,這樣得到了最終的損失函數:

圖片

對損失函數計算負梯度:

圖片

由此看來,GBDT負梯度即為殘差,表示真實概率和預測概率的差值。接下來計算過程跟著GBDT通用框架進行就好了。

** (2) GBDT多分類**

GBDT多分類原理跟Softmax一樣的,假設我們有k個類別,將圖片作為以下函數的輸入,便可以類別q對應的概率值:

圖片

其損失函數為:

圖片

多類別任務下,只有一個類別是1,其余為0,假設這不為0的一類為q,我們對它Softmax的損失函數求負梯度得:

圖片

跟二分類一樣,本質上負梯度就是真實概率和預測概率的插值。

三、其它

第三部分講下GBDT的其它內容:

1. 正則化

2. 優缺點

3. 與RF的對比

1. 正則化

GBDT采用了三種正則化手段:

(1)學習率v和樹數量M的平衡

我們前面得到,第m輪下的強學習器 = 第m-1輪下的強學習器 + 第m輪的弱學習器,如下:

圖片

GBDT原論文提到,樹數量越多,越容易過擬合,所以限制樹數量可以避免過擬合,但歷史研究又給出:通過收縮 (即學習率v減少) 實現的正則化比通過限制項 (即樹數量M減少) 實現的正則化效果更好。這是什么意思呢?請先看下面的公式:

圖片

該公式加入了學習率v,這里跟神經網絡的學習率相反,如果我們學習率下降,每個樹的貢獻就會減低,反而還實現了正則化,但如果我們放開訓練(即不固定樹數量),只減低學習率的話,GBDT還是會過擬合,因為產生了更多的樹。因此,GBDT作者建議,我們要實現v-M之間的權衡,理想的應該是在正則效果合適下,學習率降低的同時,也能盡可能保證樹數量少些。這里當然也有出于對計算資源的考慮,增加M會帶來計算開銷。

(2)子采樣比例

子采樣是將原數據集中抽樣一定的樣本去擬合GBDT。與隨機森林不同的是,GBDT采樣不放回抽樣,因為GBDT串行訓練要求所有弱學習器使用同一套樣本集,不然在不同抽樣樣本空間計算的殘差,缺乏一致性。

(3)決策樹常用正則化手段

這塊的參數都涉及到弱學習器樹本身的正則化,例如:決策樹最大深度、劃分所需最少樣本數、葉子節點最少樣本數、葉子節點最小樣本權重、最大葉子節點數、節點劃分最小不純度等。

2. 優缺點

優點:

  • 采用基于“殘差”(嚴格來說是負梯度)的Boosting集成手段。
  • 適用于回歸、二分類和多分類任務。
  • 預測精度比RF高。
  • 對異常值的魯棒性強(采用了Huber損失和分位數損失)。

缺點:

  • 串行方式的模型訓練,難并行,造成計算開銷。
  • 不適合高維稀疏離散特征。這是決策樹的痛點,比如動物類別采用one-hot編碼后,會產生是否為狗,是否為貓一系列特征,而若這一系列特征中大量樣本為狗,其它動物很少,那么樹在劃分屬性時,很容易就劃分為“是否為狗”,從而產生過擬合,它不像LR等線性模型f(w,x)的正則化權重是對樣本懲罰(可以實現對狗樣本給與更大的懲罰項),而樹的懲罰項往往是樹結構相關的,因此樣本層面的懲罰較小,使得在高維稀疏特征時,GBDT表現不好。

3. 與RF的對比

[4] 總結的很好,我就不重復造輪子了:

圖片

圖3:GBDT與RF的區別 [4]

四、代碼參考

scikit-learn已提供封裝好的庫直接調用就好了,受限于篇幅,這里不詳細展開,詳見官方文檔 [6]。

from sklearn.datasets import make_regression
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.model_selection import train_test_split


X, y = make_regression(random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)
reg = GradientBoostingRegressor(random_state=0)
reg.fit(X_train, y_train)
reg.predict(X_test[1:2])
reg.score(X_test, y_test)
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 決策樹
    +關注

    關注

    3

    文章

    96

    瀏覽量

    13564
  • 累加器
    +關注

    關注

    0

    文章

    50

    瀏覽量

    9471
  • GBDT
    +關注

    關注

    0

    文章

    13

    瀏覽量

    3906
收藏 人收藏

    評論

    相關推薦

    關于決策樹,這些知識點不可錯過

    的一種算法。它既是分類算法,也是回歸算法,還可以用在隨機森林中。咱們學計算機的同學經常敲if 、else if、else其實就已經在用到決策樹的思想了。
    發表于 05-23 09:38

    基于決策樹CART算法識別印第安人糖尿病患者

    利用決策樹CART算法識別印第安人糖尿病患者
    發表于 05-06 12:16

    分類回歸方法之決策樹

    統計學習方法決策樹
    發表于 11-05 13:40

    決策樹的生成資料

    在本文中,我們將討論一種監督式學習算法。最新一代意法半導體 MEMS 傳感器內置一個基于決策樹分類器的機器學習核心(MLC)。這些產品很容易通過后綴中的 X 來識別(例如,LSM6DSOX)。這種
    發表于 09-08 06:50

    一個基于粗集的決策樹規則提取算法

    一個基于粗集的決策樹規則提取算法:摘要:決策樹是數據挖掘任務中分類的常用方法。在構造決策樹的過程中,分離屬性的選擇標準直接影響到分類的效果,
    發表于 10-10 15:13 ?12次下載

    改進決策樹算法的應用研究

    該方法利用決策樹算法構造決策樹,通過對分類結果中主客觀屬性進行標記并邏輯運算,最終得到較客觀的決策信息,并進行實驗驗證。
    發表于 02-07 11:38 ?27次下載
    改進<b class='flag-5'>決策樹</b>算法的應用研究

    決策樹的介紹

    關于決策樹的介紹,是一些很基礎的介紹,不過是英文介紹。
    發表于 09-18 14:55 ?0次下載

    數據挖掘算法:決策樹算法如何學習及分裂剪枝

    決策樹(decision tree)算法基于特征屬性進行分類,其主要的優點:模型具有可讀性,計算量小,分類速度快。決策樹算法包括了由Quin
    的頭像 發表于 07-21 10:13 ?5810次閱讀
    數據挖掘算法:<b class='flag-5'>決策樹</b>算法如何學習及分裂剪枝

    決策樹的原理和決策樹構建的準備工作,機器學習決策樹的原理

    希望通過所給的訓練數據學習一個貸款申請的決策樹,用于對未來的貸款申請進行分類,即當新的客戶提出貸款申請時,根據申請人的特征利用決策樹決定是否批準貸款申請。
    的頭像 發表于 10-08 14:26 ?6050次閱讀

    決策樹的構成要素及算法

    決策樹是一種解決分類問題的算法,決策樹算法采用樹形結構,使用層層推理來實現最終的分類
    發表于 08-27 09:52 ?4393次閱讀

    使用不純度拆分決策樹的步驟

    決策樹是機器學習中使用的最流行和功能最強大的分類算法之一。顧名思義,決策樹用于根據給定的數據集做出決策。也就是說,它有助于選擇適當的特征以將
    發表于 01-13 09:37 ?1491次閱讀
    使用<b class='flag-5'>基</b><b class='flag-5'>尼</b>不純度拆分<b class='flag-5'>決策樹</b>的步驟

    決策樹的基本概念/學習步驟/算法/優缺點

    本文將介紹決策樹的基本概念、決策樹學習的3個步驟、3種典型的決策樹算法、決策樹的10個優缺點。
    發表于 01-27 10:03 ?2687次閱讀
    <b class='flag-5'>決策樹</b>的基本概念/學習步驟/算法/優缺點

    什么是決策樹模型,決策樹模型的繪制方法

    決策樹是一種解決分類問題的算法,本文將介紹什么是決策樹模型,常見的用途,以及如何使用“億圖圖示”軟件繪制決策樹模型。
    發表于 02-18 10:12 ?1.3w次閱讀
    什么是<b class='flag-5'>決策樹</b>模型,<b class='flag-5'>決策樹</b>模型的繪制方法

    決策樹的結構/優缺點/生成

    決策樹(DecisionTree)是機器學習中一種常見的算法,它的思想非常樸素,就像我們平時利用選擇做決策的過程。決策樹是一種基本的分類回歸
    發表于 03-04 10:11 ?8350次閱讀

    大數據—決策樹

    大數據————決策樹(decision tree) 決策樹(decision tree):是一種基本的分類回歸方法,主要討論分類
    的頭像 發表于 10-20 10:01 ?1244次閱讀
    主站蜘蛛池模板: 999www成人免费视频| 国语自产一区第二页| 成人精品综合免费视频| 哒哒哒影院在线观看免费高清| 国产精品久久久久久久久无码 | 亚洲成人欧美| 最新影音先锋av资源台| 边做边爱BD免费看片| 好紧好湿太硬了我太爽了小说| 六六影院午夜伦理| 色噜噜视频| 在线 国产 欧美 亚洲 天堂| 吃胸亲吻吃奶摸下面免费视频| 精品国产麻豆AV无码| 日本护士喷水| 野花香在线观看免费高清播放视频 | 琪琪伦伦影院理论片| 亚洲国产在线99视频| fryee性欧美18 19| 娇妻在床上迎合男人| 日本黄色官网| 在线播放免费人成毛片视频| 国产成人在线观看免费网站| 邻居的阿2中文字版电影| 午夜宅宅伦电影网| 99久视频只有精品2019| 国产伊人自拍| 日韩欧美中文字幕一区| 中文天堂www资源| 国产午夜人做人免费视频中文 | 交换娇妻呻吟声不停中文字幕| 强奷乱码欧妇女中文字幕熟女| 亚洲日韩国产精品乱-久| 高清大胆欧美videossexo| 老板揉搓秘书丰满大乳| 亚洲 欧美 中文 日韩 另类| 爱做久久久久久| 老头狠狠挺进小莹体内视频| 亚洲国产日韩a精品乱码| 东京热百度影音| 嫩草国产福利视频一区二区|