這部分主要是介紹回歸樹和組合:
回歸樹(cart)
1、回歸樹(也可以叫做分類回歸樹),加入gbdt是回歸樹,但是根據最終的回歸結果給一個閾值,也可以做分類。
(1)與決策樹的決策規則是一樣的。對于cart回歸,主要是保證MSE最小來確定分裂點
(2)在每一個葉子節點都會有一個值,也就是回歸結果。
如上面的圖所示:輸入年齡,性別等特征,來預測葉子節點的值。
組合回歸樹
如下面的圖所示,這個組合由兩個回歸樹構成。
預測的結果就是每棵樹預測結果的和
注意:這兩棵樹是串行的。
組合樹方法
1、非常廣泛的用在梯度提升機,隨機森林等場景。。。
多半的數據挖掘競賽的獲勝者都是采用組合方法的一些變換形式。
2、對于輸入的縮放比例具有不變性,所以你不需要很仔細的去做特征歸一化。
3、能夠學習特征間更高階的相互作用,樹是有層級的,下一層是基于上一層的,他們之間是有制約關系的,多棵樹,就會形成高階影響關系。
4、很穩定,用于工業生產
放入上下文:模型和參數
1、假設我們有k棵樹,然后將這k個樹進行組合。回歸樹就是從屬性到分數的映射。
2、參數:
(1)包含每棵樹的結構以及葉子節點的分數
(2)之前我們是學習權重,現在我們需要學習樹
在只有一個變量的情況下學習一棵樹
1、我們怎么學習函數呢?
2、定義目標函數(loss和正則),并且對他們優化
舉個例子
(1)假設輸入為t(時間)上的回歸樹
(2)我想預測在特定的時間t,我是否喜歡流行音樂
從下面的圖可以看出來,這有兩個時間點,一個是2011.3.1,一個是2010.3.20,所以分為三個區間:
(1)2010.3.20之前:喜歡音樂的分數是0.2
(2)2010.3.20-2011.3.1:分數是1.2,原因是遇到女朋友,喜歡浪漫音樂
(3)2011.3.20之后:分數是1.0
學習一個階躍函數
1、我們需要進行學習的部分
(1)分裂點
(2)每段的值
2、單變量回歸樹的損失函數
(1)訓練loss:重點關注的是擬合這些點
(2)正則化:重點關注這個函數的復雜度,比如說分裂點的個數,每段值的L2范數等等。
學習階躍函數
我們看著四幅圖能看出什么呢?
(1)第一張圖是我的訓練數據,我就是要擬合它
(2)第二張圖是分裂點很多,這樣對訓練集擬合的很好,但是呢,模型也太復雜了,在測試集上表現不一定好哦方差大
(3)第三張圖發現分裂點找的有點偏了,導致擬合的不準,這樣MSE就會變大的,偏差大
(4)在損失和復雜度上達到了平衡
回過頭來:組合樹的目標函數
1、模型:假設k棵樹,用加法模型來表示
2、目標函數:包括兩個部分,訓練loss和樹的復雜度
3、定義復雜度的可能形式:
(1)樹的節點數目,樹的深度
(2)葉子節點權重的L2范數
(3)后面會更加詳細的介紹
目標函數以及啟發性學習
1、當討論決策樹的時候,往往是啟發式的:
(1)根據信息增益找分裂點
(2)剪枝
(3)最大樹深度
(4)葉子值的平滑度
2、大部分啟發式都會對目標函數進行良好的映射:
(1)信息增益--訓練loss
(2)剪枝--節點的正則化
(3)最大深度--確定函數復雜空間
(4)葉子值得平滑度--葉子權重的L2正則化
補充:啥是啟發式學習?
通俗的說:啟發式算法是指在一個隨機的群體尋優過程中,個體能夠利用自身或者全局的經驗來制定各自的搜索策略。
回歸樹不僅僅是為了回歸
1、回歸樹組合定義了如何預測分數,它可以被用于分類、回歸、排名等等
2、取決于你怎么去定義目標函數
(1)對于MSE ---GBDT --- 回歸
(2)logloss ---logitboost----分類