機器學習技法-GBDT算法


課程地址:https://class.coursera.org/ntumltwo-002/lecture

之前看過別人的競賽視頻,知道GBDT這個算法應用十分廣泛。林在第八講,簡單的介紹了AdaBoost,這一講會更深入的從優化的角度看AdaBoost,然后引出GBDT算法,最后林對最近幾講的集成學習模型(Aggregation Models)做了個很棒的總結。

image

一、RandomForest Vs AdaBoost-DTree

  • RF隨機森林算法:通過bootstrapping有放回的抽樣獲取不同的訓練數據Dt,不同的Dt可同時並行化生成多棵決策樹最后將多棵決策樹‘一人一票’的方式結合生成G。
  • AdaBoost-DTree:通多重賦權reweight(樣本權重Ut)的方式獲取不同的訓練數據Dt,Ut依賴於上一次的迭代的分類結果,決策樹之間存在依賴關系,必須串行生成每一棵決策樹。最后每一棵決策樹通過權值alphat結合生成G。

image

  • 在AdaBoost-DTree中,為了不修改原來的模型,數據按照樣本權重u的比例大小對樣本進行sampling,采樣后的數據D中也能體現出樣本的權重。
  • 直接使用fully grown tree 訓練Dt,會產生autocracy,需要剪枝或使用弱決策樹算法

image

二、從優化的角度看AdaBoost

1.AdaBoost的指數損失函數(loss function)

  • 林通過指數損失函數,從優化的角度推導了AdaBoost-DTree
  • 樣本權重與所有gt在該樣本的投票的分數有關,分數越高,權值越小。AdaBoost迭代過程中會降低樣本的權重。

image

2.下一步是如何根據損失函數找到下一個gt,最后的結論是損失函數的梯度的最大值(steepest descent)。

下面是推導過程,建議去看視頻理解,有點繞。

搜狗截圖20160407203911

搜狗截圖20160407204121

搜狗截圖20160407204250

三、GBDT(Gradient Boosting Decision Tree)

1.AdaBoost vs GradientBoost

這部分是將第二部分的AdaBoost進行推廣,誤差函數(error function)擴展為任意的。

image

2.使用平方誤差函數(squared-error)的GDBT,和上面的思路一樣求解ht和移動的幅度

image

image

四、模型融合(Aggregation models)的對比、總結

1.獲得不同的gt之后的融合方式的對比

image

2.獲取gt的方式和融合的方式對比

image

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM