日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Boosted Tree:一篇很有见识的文章

發布時間:2025/3/21 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Boosted Tree:一篇很有见识的文章 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Boosted Tree:一篇很有見識的文章 6,125 次閱讀 - 文章

作者:陳天奇,畢業于上海交通大學ACM班,現就讀于華盛頓大學,從事大規模機器學習研究。

注解:truth4sex?

編者按:本文是對開源xgboost庫理論層面的介紹,在陳天奇原文《梯度提升法和Boosted Tree》的基礎上,做了如下注解:1)章節劃分;2)注解和參考鏈接(以藍色和紅色字體標注)。備注:圖片可點擊查看清晰版。

1. 前言
應 @龍星鏢局 ?兄邀請寫這篇文章。作為一個非常有效的機器學習方法,Boosted Tree是數據挖掘和機器學習中最常用的算法之一。因為它效果好,對于輸入要求不敏感,往往是從統計學家到數據科學家必備的工具之一,它同時也是kaggle比賽冠軍選手最常用的工具。最后,因為它的效果好,計算復雜度不高,也在工業界中有大量的應用。

2. Boosted Tree的若干同義詞
說到這里可能有人會問,為什么我沒有聽過這個名字。這是因為Boosted Tree有各種馬甲,比如GBDT, GBRT (gradient boosted regression tree),MART1,LambdaMART也是一種boosted tree的變種。網上有很多介紹Boosted tree的資料,不過大部分都是基于Friedman的最早一篇文章Greedy Function Approximation: A Gradient Boosting Machine的翻譯。個人覺得這不是最好最一般地介紹boosted tree的方式。而網上除了這個角度之外的介紹并不多。這篇文章是我個人對于boosted tree和gradient boosting 類算法的總結,其中很多材料來自于我TA UW機器學習時的一份講義2。

3. 有監督學習算法的邏輯組成
要講boosted tree,要先從有監督學習講起。在有監督學習里面有幾個邏輯上的重要組成部件3,初略地分可以分為:模型,參數 和 目標函數。

i. 模型和參數
模型指給定輸入xi如何去預測 輸出 yi。我們比較常見的模型如線性模型(包括線性回歸和logistic regression)采用了線性疊加的方式進行預測。其實這里的預測y可以有不同的解釋,比如我們可以用它來作為回歸目標的輸出,或者進行sigmoid 變換得到概率,或者作為排序的指標等。而一個線性模型根據y的解釋不同(以及設計對應的目標函數)用到回歸,分類或排序等場景。參數指我們需要學習的東西,在線性模型中,參數指我們的線性系數w

ii. 目標函數:損失 + 正則
模型和參數本身指定了給定輸入我們如何做預測,但是沒有告訴我們如何去尋找一個比較好的參數,這個時候就需要目標函數登場了。一般的目標函數包含下面兩項

常見的誤差函數有比如平方誤差,logistic誤差函數(等。而對于線性模型常見的正則化項有L2正則和L1正則。這樣目標函數的設計來自于統計學習里面的一個重要概念叫做Bias-variance tradeoff4。比較感性的理解,Bias可以理解為假設我們有無限多數據的時候,可以訓練出最好的模型所拿到的誤差。而Variance是因為我們只有有限數據,其中隨機性帶來的誤差。目標中誤差函數鼓勵我們的模型盡量去擬合訓練數據,這樣相對來說最后的模型會有比較少的 bias。而正則化項則鼓勵更加簡單的模型。因為當模型簡單之后,有限數據擬合出來結果的隨機性比較小,不容易過擬合,使得最后模型的預測更加穩定。

iii. 優化算法
講了這么多有監督學習的基本概念,為什么要講這些呢? 是因為這幾部分包含了機器學習的主要成分,也是機器學習工具設計中劃分模塊比較有效的辦法。其實這幾部分之外,還有一個優化算法,就是給定目標函數之后怎么學的問題。之所以我沒有講優化算法,是因為這是大家往往比較熟悉的“機器學習的部分”。而有時候我們往往只知道“優化算法”,而沒有仔細考慮目標函數的設計的問題,比較常見的例子如決策樹的學習,大家知道的算法是每一步去優化gini entropy,然后剪枝,但是沒有考慮到后面的目標是什么。

4. Boosted Tree
i. 基學習器:分類和回歸樹(CART)
話題回到boosted tree,我們也是從這幾個方面開始講,首先講模型。Boosted tree 最基本的組成部分叫做回歸樹(regression tree),也叫做CART5。

上面就是一個CART的例子。CART會把輸入根據輸入的屬性分配到各個葉子節點,而每個葉子節點上面都會對應一個實數分數。上面的例子是一個預測一個人是否會喜歡電腦游戲的 CART,你可以把葉子的分數理解為有多可能這個人喜歡電腦游戲。有人可能會問它和decision tree的關系,其實我們可以簡單地把它理解為decision tree的一個擴展。從簡單的類標到分數之后,我們可以做很多事情,如概率預測,排序。

ii. Tree Ensemble
一個CART往往過于簡單無法有效地預測,因此一個更加強力的模型叫做tree ensemble。

在上面的例子中,我們用兩棵樹來進行預測。我們對于每個樣本的預測結果就是每棵樹預測分數的和。到這里,我們的模型就介紹完畢了?,F在問題來了,我們常見的隨機森林和boosted tree和tree ensemble有什么關系呢?如果你仔細的思考,你會發現RF和boosted tree的模型都是tree ensemble,只是構造(學習)模型參數的方法不同。第二個問題:在這個模型中的“參數”是什么。在tree ensemble中,參數對應了樹的結構,以及每個葉子節點上面的預測分數。

最后一個問題當然是如何學習這些參數。在這一部分,答案可能千奇百怪,但是最標準的答案始終是一個:定義合理的目標函數,然后去嘗試優化這個目標函數。在這里我要多說一句,因為決策樹學習往往充滿了heuristic。 如先優化吉尼系數,然后再剪枝啦,限制最大深度,等等。其實這些heuristic的背后往往隱含了一個目標函數,而理解目標函數本身也有利于我們設計學習算法,這個會在后面具體展開。
對于tree ensemble,我們可以比較嚴格的把我們的模型寫成是:

其中每個f是一個在函數空間6(F)里面的函數,而F對應了所有regression tree的集合。我們設計的目標函數也需要遵循前面的主要原則,包含兩部分

iii. 模型學習:additive training
其中第一部分是訓練誤差,也就是大家相對比較熟悉的如平方誤差, logistic loss等。而第二部分是每棵樹的復雜度的和。這個在后面會繼續講到。因為現在我們的參數可以認為是在一個函數空間里面,我們不能采用傳統的如SGD之類的算法來學習我們的模型,因此我們會采用一種叫做additive training的方式(另外,在我個人的理解里面7,boosting就是指additive training的意思)。每一次保留原來的模型不變,加入一個新的函數$f$到我們的模型中。

現在還剩下一個問題,我們如何選擇每一輪加入什么f呢?答案是非常直接的,選取一個f來使得我們的目標函數盡量最大地降低8。

這個公式可能有些過于抽象,我們可以考慮當l是平方誤差的情況。這個時候我們的目標可以被寫成下面這樣的二次函數9

更加一般的,對于不是平方誤差的情況,我們會采用如下的泰勒展開近似來定義一個近似的目標函數,方便我們進行這一步的計算。

當我們把常數項移除之后,我們會發現如下一個比較統一的目標函數。這一個目標函數有一個非常明顯的特點,它只依賴于每個數據點的在誤差函數上的一階導數和二階導數10。有人可能會問,這個材料似乎比我們之前學過的決策樹學習難懂。為什么要花這么多力氣來做推導呢?

因為這樣做使得我們可以很清楚地理解整個目標是什么,并且一步一步推導出如何進行樹的學習。這一個抽象的形式對于實現機器學習工具也是非常有幫助的。傳統的GBDT可能大家可以理解如優化平法a殘差,但是這樣一個形式包含可所有可以求導的目標函數。也就是說有了這個形式,我們寫出來的代碼可以用來求解包括回歸,分類和排序的各種問題,正式的推導可以使得機器學習的工具更加一般。

iv. 樹的復雜度
到目前為止我們討論了目標函數中訓練誤差的部分。接下來我們討論如何定義樹的復雜度。我們先對于f的定義做一下細化,把樹拆分成結構部分q和葉子權重部分w。下圖是一個具體的例子。結構函數q把輸入映射到葉子的索引號上面去,而w給定了每個索引號對應的葉子分數是什么。

當我們給定了如上定義之后,我們可以定義一棵樹的復雜度如下。這個復雜度包含了一棵樹里面節點的個數,以及每個樹葉子節點上面輸出分數的$L2$模平方。當然這不是唯一的一種定義方式,不過這一定義方式學習出的樹效果一般都比較不錯。下圖還給出了復雜度計算的一個例子。

v. 關鍵步驟
接下來是最關鍵的一步11,在這種新的定義下,我們可以把目標函數進行如下改寫,其中I被定義為每個葉子上面樣本集合 Ij = { i|q(xi)=j}

這一個目標包含了T個相互獨立的單變量二次函數。我們可以定義

那么這個目標函數可以進一步改寫成如下的形式,假設我們已經知道樹的結構q,我們可以通過這個目標函數來求解出最好的w,以及最好的w對應的目標函數最大的增益

這兩個的結果對應如下,左邊是最好的w,右邊是這個w對應的目標函數的值。到這里大家可能會覺得這個推導略復雜。其實這里只涉及到了如何求一個一維二次函數的最小值的問題12。如果覺得沒有理解不妨再仔細琢磨一下

vi. 打分函數計算舉例
Obj代表了當我們指定一個樹的結構的時候,我們在目標上面最多減少多少。我們可以把它叫做結構分數(structure score)。你可以認為這個就是類似吉尼系數一樣更加一般的對于樹結構進行打分的函數。下面是一個具體的打分函數計算的例子

vii. 枚舉所有不同樹結構的貪心法
所以我們的算法也很簡單,我們不斷地枚舉不同樹的結構,利用這個打分函數來尋找出一個最優結構的樹,加入到我們的模型中,再重復這樣的操作。不過枚舉所有樹結構這個操作不太可行,所以常用的方法是貪心法,每一次嘗試去對已有的葉子加入一個分割。對于一個具體的分割方案,我們可以獲得的增益可以由如下公式計算


對于每次擴展,我們還是要枚舉所有可能的分割方案,如何高效地枚舉所有的分割呢?我假設我們要枚舉所有 x<a 這樣的條件,對于某個特定的分割a我們要計算a左邊和右邊的導數和。

我們可以發現對于所有的a,我們只要做一遍從左到右的掃描就可以枚舉出所有分割的梯度和GLGR。然后用上面的公式計算每個分割方案的分數就可以了。

觀察這個目標函數,大家會發現第二個值得注意的事情就是引入分割不一定會使得情況變好,因為我們有一個引入新葉子的懲罰項。優化這個目標對應了樹的剪枝, 當引入的分割帶來的增益小于一個閥值的時候,我們可以剪掉這個分割。大家可以發現,當我們正式地推導目標的時候,像計算分數和剪枝這樣的策略都會自然地出現,而不再是一種因為heuristic而進行的操作了。

講到這里文章進入了尾聲,雖然有些長,希望對大家有所幫助,這篇文章介紹了如何通過目標函數優化的方法比較嚴格地推導出boosted tree的學習。因為有這樣一般的推導,得到的算法可以直接應用到回歸,分類排序等各個應用場景中去。

5. 尾聲:xgboost
這篇文章講的所有推導和技術都指導了xgboost https://github.com/dmlc/xgboost 的設計。xgboost是大規模并行boosted tree的工具,它是目前最快最好的開源boosted tree工具包,比常見的工具包快10倍以上。在數據科學方面,有大量kaggle選手選用它進行數據挖掘比賽,其中包括兩個以上kaggle比賽的奪冠方案。在工業界規模方面,xgboost的分布式版本有廣泛的可移植性,支持在YARN, MPI, Sungrid Engine等各個平臺上面運行,并且保留了單機并行版本的各種優化,使得它可以很好地解決于工業界規模的問題。有興趣的同學可以嘗試使用一下,也歡迎貢獻代碼。

—————————–

注解和鏈接

  • 1:?Multiple Additive Regression Trees, Jerry Friedman, KDD 2002 Innovation Award 創新獎 http://www.sigkdd.org/node/362
  • 2:?Introduction to Boosted Trees, Tianqi Chen
    , 2014 http://homes.cs.washington.edu/~tqchen/pdf/BoostedTree.pdf
  • 3:?Principles of Data Mining, David Hand et al,2001. Chapter 1.5 Components of Data Mining Algorithms, 將數據挖掘算法解構為四個組件:1)模型結構(函數形式,如線性模型),2)評分函數(評估模型擬合數據的質量,如似然函數,誤差平方和,誤分類率),3)優化和搜索方法(評分函數的優化和模型參數的求解),4)數據管理策略(優化和搜索時對數據的高效訪問)。
  • 4:?在概率統計中,參數估計量的評選標準有三:1)無偏性(參數估計量的均值等于參數的真實值),2)有效性(參數估計量的方差越小越好),3)一致性(當樣本數從有限個逐漸增加到無窮多個時,參數估計量依概率收斂于參數真值)?!陡怕收撆c數理統計》,高祖新等,1999年,7.3節估計量的評選標準
  • 5:?Breiman, L., Friedman, J., Stone, C. J., & Olshen, R. A. (1984). Classification and regression trees. CRC press. ?Breiman獲KDD 2005 Innovation Award 創新獎
  • 6: F是泛函空間,或者叫假設空間;f是函數,或者叫假設。這里的ensemble一共有K個組件/基學習器,他們的組合方式是不帶權重的累加。NOTE:【一般boosting里面(如AdaBoost)f是有權重疊加 原因是那些權重自然地被吸收到葉子的weight里面去了?!?by Chen Tianqi
  • 7:?Friedman等( Friedman, J., Hastie, T., & Tibshirani, R. (2000). Additive logistic regression: a statistical view of boosting (with discussion and a rejoinder by the authors). The annals of statistics, 28(2), 337-407. )在2000年為boosting這種集成學習方法范式提供了一種統計解釋,即加性邏輯斯蒂回歸。但是他們不能完全解釋AdaBoost算法的抗過擬合性。南大周志華等人(http://www.slideshare.net/hustwj/ccl2014-keynote)從統計學習理論的間隔分布出發,較完滿的解決了這個問題。
  • 8:?這個思想即是AdaBoost等boosting算法的思想:串行生成一系列基學習器,使得當前基學習器都重點關注以前所有學習器犯錯誤的那些數據樣本,如此達到提升的效果。
  • 9:?注意,這里的優化搜索變量是f(即搜索當前的基學習器f),所以其他不關于f的項都被吸納到const中,如當前的誤差損失
  • 10: 1). 分別作為要優化的變量f的一次系數g和二次系數1/2?h
    2). 誤差函數對求導時,即涉及到前t?1個基學習器,因為他們決定了當前的預測結果
  • 11:?因為每個數據點落入且僅落入一個葉子節點,所以可以把n個數據點按葉子成組,類似于合并同類項,兩個數據點同類指的是落入相同的葉子,即這里的指示變量集Ij
  • 12:?變量是wj,關于它的二次函數是:,該函數對變量wj求導并令其等于0,即得到w?j的表達式。

?

文章出處:http://www.52cs.org/?p=429

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的Boosted Tree:一篇很有见识的文章的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天天艹夜夜艹 | 永久视频 | 天天操天天干天天干 | 日韩av导航 | 四虎影院在线看 | 精品视频一二 | 国产精品久久久毛片 | 欧美人与性动交a欧美精品 日韩免费高清视频 | 在线观看av一区二区 | 极品美女高潮 | 成人综合站 | 日本少妇xxx | 亚洲欧洲精品成人久久奇米网 | 成人小视频免费看 | 欧美在线一级 | 黄色a级片视频 | av网站免费在线观看 | 少妇又色又紧又大爽又刺激 | 欧美日韩综合 | 丰满少妇一区二区三区专区 | 欧美天堂 | 91成品人影院| 亚洲精品一区二区二区 | 农夫色综合 | аⅴ资源中文在线天堂 | 蜜臀免费av| 狠狠人妻久久久久久 | 日本国产视频 | 91亚洲国产成人久久精品麻豆 | 毛片基地免费观看 | 国产一区二区自拍视频 | 日本xxxx18高清hd | 免费视频污 | www.伊人久久 | 北京少妇xxxx做受 | 阿娇全套94张未删图久久 | 免费在线成人 | 亚洲AV无码乱码国产精品色欲 | 国产手机av | 国产毛片毛片毛片毛片 | 色哟哟一区二区三区四区 | 日韩深夜福利 | 欧美成人激情视频 | 天天看天天摸 | 五十路中文字幕 | 日韩av综合在线 | 欧美影院在线观看 | 成年人黄色片 | 黄色资源在线播放 | 国产做受高潮动漫 | 人妻熟女一区二区aⅴ水 | 奇米网888| 不卡黄色| 在线播放91灌醉迷j高跟美女 | 欧美多p | 欧美性视屏 | 超碰天天干 | 最近中文字幕在线观看视频 | 中文字幕永久在线播放 | 亚洲作爱视频 | 国精无码欧精品亚洲一区蜜桃 | a一级网站| 欧美乱大交xxxxx潮喷 | 福利在线视频导航 | 日日干夜夜艹 | 日韩成人av毛片 | 中文字幕18页 | jizzjizz在线 | 高h喷汁呻吟3p | 婷婷国产一区二区三区 | 第五色婷婷 | 天天操天天玩 | 岛国成人在线 | 黄频网站在线观看 | 蜜桃成人在线 | 国产精品丝袜一区 | 亚洲中文无码久久 | 欧美天天性 | 黄色99 | 国内国产精品天干天干 | 色婷婷免费视频 | 欧美一区二区三区免费看 | 久久精品5 | 国产91热爆ts人妖在线 | 国产伦精品一区二区三区照片91 | 成人亚洲一区 | 亚洲三级a | 精品国产鲁一鲁一区二区三区 | 毛片黄色一级 | 日本黄色短片 | 国产999久久久 | 少妇中出视频 | 懂色av一区二区在线播放 | 很黄很黄的网站 | 国产一级片免费视频 | 粉嫩av一区二区三区 | www色日本| 韩日一区| ass精品国模裸体pics |