1. 程式人生 > >機器學習技法課程學習筆記11 -- Gradient Boosted Decision Tree

機器學習技法課程學習筆記11 -- Gradient Boosted Decision Tree

上節課我們主要介紹了Random Forest演算法模型。Random Forest就是通過bagging的方式將許多不同的decision tree組合起來。除此之外,在decision tree中加入了各種隨機性和多樣性,比如不同特徵的線性組合等。RF還可以使用OOB樣本進行self-validation,而且可以通過permutation test進行feature selection。本節課將使用Adaptive Boosting的方法來研究decision tree的一些演算法和模型。

Adaptive Boosted Decision Tree

Random Forest的演算法流程我們上節課也詳細介紹過,就是先通過bootstrapping“複製”原樣本集D,得到新的樣本集D’;然後對每個D’進行訓練得到不同的decision tree和對應的g

t;最後再將所有的gt通過uniform的形式組合起來,即以投票的方式得到G。這裡採用的Bagging的方式,也就是把每個gt的預測值直接相加。現在,如果將Bagging替換成AdaBoost,處理方式有些不同。首先每輪bootstrap得到的D’中每個樣本會賦予不同的權重u(t);然後在每個decision tree中,利用這些權重訓練得到最好的gt;最後得出每個gt所佔的權重,線性組合得到G。這種模型稱為AdaBoost-D Tree。

這裡寫圖片描述

但是在AdaBoost-DTree中需要注意的一點是每個樣本的權重u(t)。我們知道,在Adaptive Boosting中進行了bootstrap操作,u

(t)表示D中每個樣本在D’中出現的次數。但是在決策樹模型中,例如C&RT演算法中並沒有引入u(t)。那麼,如何在決策樹中引入這些權重u(t)來得到不同的gt而又不改變原來的決策樹演算法呢?

在Adaptive Boosting中,我們使用了weighted algorithm,形如:

Euin(h)=1Nn=1Nunerr(yn,h(xn))

每個犯錯誤的樣本點乘以相應的權重,求和再平均,最終得到了Euin(h)。如果在決策樹中使用這種方法,將當前分支下犯錯誤的點賦予權重,每層分支都這樣做,會比較複雜,不易求解。為了簡化運算,保持決策樹演算法本身的穩定性和封閉性,我們可以把決策樹演算法當成一個黑盒子,即不改變其結構,不對演算法本身進行修改,而從資料來源D’上做一些處理。按照這種思想,我們來看權重u實際上表示該樣本在bootstrap中出現的次數,反映了它出現的概率。那麼可以根據u值,對原樣本集D進行一次重新的隨機sampling,也就是帶權重的隨機抽樣。sampling之後,會得到一個新的D’,D’中每個樣本出現的機率與它權重u所佔的比例應該是差不多接近的。因此,使用帶權重的sampling操作,得到了新的樣本資料集D’,可以直接代入決策樹進行訓練,從而無需改變決策樹演算法結構。sampling可看成是bootstrap的反操作,這種對資料本身進行修改而不更改演算法結構的方法非常重要!

這裡寫圖片描述

所以,AdaBoost-DTree結合了AdaBoost和DTree,但是做了一點小小的改變,就是使用sampling替代權重u(t),效果是相同的。

這裡寫圖片描述

上面我們通過使用sampling,將不同的樣本集代入決策樹中,得到不同的gt。除此之外,我們還要確定每個gt所佔的權重αt。之前我們在AdaBoost中已經介紹過,首先算出每個

相關推薦

機器學習技法課程學習筆記11 -- Gradient Boosted Decision Tree

上節課我們主要介紹了Random Forest演算法模型。Random Forest就是通過bagging的方式將許多不同的decision tree組合起來。除此之外,在decision tree中加入了各種隨機性和多樣性,比如不同特徵的線性組合等。RF還可以使用O

臺灣大學林軒田機器學習技法課程學習筆記1 -- Linear Support Vector Machine

關於臺灣大學林軒田老師的《機器學習基石》課程,我們已經總結了16節課的筆記。這裡附上基石第一節課的部落格地址: 本系列同樣分成16節課,將會介紹《機器學習基石》的進階版《機器學習技法》,更深入地探討機器學習一些高階演算法和技巧。 Large-Marg

臺灣大學林軒田機器學習技法課程學習筆記8 -- Adaptive Boosting

上節課我們主要開始介紹Aggregation Models,目的是將不同的hypothesis得到的gtgt集合起來,利用集體智慧得到更好的預測模型G。首先我們介紹了Blending,blending是將已存在的所有gtgt結合起來,可以是uniformly

臺灣大學林軒田機器學習技法課程學習筆記10 -- Random Forest

上節課我們主要介紹了Decision Tree模型。Decision Tree演算法的核心是通過遞迴的方式,將資料集不斷進行切割,得到子分支,最終形成數的結構。C&RT演算法是決策樹比較簡單和常用的一種演算法,其切割的標準是根據純度來進行,每次切割都

機器學習筆記 』GBDT原理-Gradient Boosting Decision Tree

1. 背景 決策樹是一種基本的分類與迴歸方法。決策樹模型具有分類速度快,模型容易視覺化的解釋,但是同時是也有容易發生過擬合,雖然有剪枝,但也是差強人意。 提升方法(boosting)在分類問題中,它通過改變訓練樣本的權重(增加分錯樣本的權重,減

臺灣大學林軒田機器學習基石課程學習筆記8 -- Noise and Error

上一節課,我們主要介紹了VC Dimension的概念。如果Hypotheses set的VC Dimension是有限的,且有足夠多N的資料,同時能夠找到一個hypothesis使它的Ein≈0Ein≈0,那麼就能說明機器學習是可行的。本節課主要講了資料集

吳恩達斯坦福大學機器學習 CS229 課程學習筆記(一)

說到機器學習總繞不過幾個鼎鼎大名的人物,他們都創造了不少的機器學習資料,斯坦福吳恩達Andrew Ng的公開課CS229;Google李飛飛的CS231、周志華的、李航的《統計學習方法》、林軒田的《機器學習基石》、Peter Harringtond 的《機器學習實戰》、周志華

臺灣大學林軒田機器學習基石課程學習筆記1 -- The Learning Problem

最近在看NTU林軒田的《機器學習基石》課程,個人感覺講的非常好。整個基石課程分成四個部分: When Can Machine Learn? Why Can Machine Learn? How Can Machine Learn? How Can M

臺灣大學林軒田機器學習基石課程學習筆記6 -- Theory of Generalization

上一節課,我們主要探討了當M的數值大小對機器學習的影響。如果M很大,那麼就不能保證機器學習有很好的泛化能力,所以問題轉換為驗證M有限,即最好是按照多項式成長。然後通過引入了成長函式mH(N)mH(N)和dichotomy以及break point的概念,提出

吳恩達《deeplearning深度學習課程學習筆記【1】(精簡總結)

畢業以後就沒再寫過部落格,又想起來了。 Ps:本文只是個人筆記總結,沒有大段的詳細講解,僅僅是將自己不熟悉和認為重要的東西總結下來,算是一個大綱,用的時候方便回憶和查詢。 Ps2:部分筆記內容見圖片。 相關課程內容 一、神經網路和深度學習 第一週 深

吳恩達《deeplearning深度學習課程學習筆記【3】(精簡總結)

相關課程內容 二、改善深層神經網路 第一週 深度學習的實用層面 知識點總結 1. 訓練集與測試集分佈不匹配問題 訓練集(train) 驗證集(dev) 測試集(test):test和

嵌入式小白到大神學習全攻略(學習路線+課程+學習書籍+練習專案)

文章較長,希望耐心閱讀,讀完相信會對你的學習一定有幫助~ 嵌入式工程師需要掌握的內容非常廣泛,嵌入式可以說是當下最有前途的IT應用領域,小到電子詞典、手機,大到航空航天裝置都是典型的嵌入式系統,因此,通過嵌入式技術人才的職業發展空間是非常大的。要快速學習掌握技術我們要學會抓住重點,學會取捨,達到一通百通,事

嵌入式小白到大神學習全攻略(學習路線+課程+學習書籍+練習項目)

samb iot 成員 基本功 手動 eat 編寫 溫度 模塊 文章較長,希望耐心閱讀,讀完相信會對你的學習一定有幫助~ 嵌入式工程師需要掌握的內容非常廣泛,嵌入式可以說是當下最有前途的IT應用領域,小到電子詞典、手機,大到航空航天設備都是典型的嵌入式系統,因此,通過嵌入式

Deep Learning(深度學習)程式碼/課程/學習資料整理

轉載自:http://blog.csdn.net/u013854886/article/details/48177251 1. Deep Learning課程(由淺入深): 我們組的一個Deep Learning的比較全面、概括的介紹,視訊:Part1,Part2,Slid

梯度提升決策樹(Gradient Boosting Decision Tree),用於分類或迴歸。

今天學習了梯度提升決策樹(Gradient Boosting Decision Tree, GBDT),準備寫點東西作為記錄。後續,我會用python 實現GBDT, 釋出到我的Github上,敬請Star。 梯度提升演算法是一種通用的學習演算法,除了決策樹,還可以使用其它模型作為基學習器。梯度提升演算法的

Gradient Boosting Decision Tree (GBDT)

GBDT也是整合學習Boosting家族的成員,Boosting是各個基學習器之間有很強的依賴關係,即序列。GBDT限定了基學習器只能使用CART迴歸樹。 樹模型的優缺點: GBDT是一個加法模型,採用前向分步演算法進行求解。假設前一輪得到的模型是 ft−1(x)

GBDT(Gradient boosting Decision Tree)梯度提升決策樹

參考資料 部落格1 GBDT演算法原理深入解析 這位大佬後面講了推導,讓我明白了這段話: Gradient Boosting是一種Boosting的方法,其與傳統的Boosting的區別是,每一次的計算是為了 **減少上一次的殘差(residual) **,而為了消除殘差,可以在殘差

梯度提升決策樹-GBDT(Gradient Boosting Decision Tree

研究GBDT的背景是業務中使用到了該模型,用於做推薦場景,當然這裡就引出了GBDT的一個應用場景-迴歸,他的另外一個應用場景便是分類,接下來我會從以下幾個方面去學習和研究GBDT的相關知識,當然我也是學習者,只是把我理解到的整理出來。本文參考了網上

GBDT(Gradient Boosting Decision Tree) 沒有實現只有原理

            阿彌陀佛,好久沒寫文章,實在是受不了了,特來填坑,最近實習了(ting)解(shuo)到(le)很多工業界常用的演算法,諸如GBDT,CRF,topic model的一些演算法等,也看了不少東西,有時間可以詳細寫一下,而至於實現那真的是沒時間沒心情再

『 論文閱讀』LightGBM原理-LightGBM: A Highly Efficient Gradient Boosting Decision Tree

17年8月LightGBM就開源了,那時候就開始嘗試上手,不過更多還是在調參層面,在作者12月論文發表之後看了卻一直沒有總結,這幾天想著一定要翻譯下,自己也梳理下GBDT相關的演算法。 Abstract Gradient Boosting Decision Tr