今日面試題分享:請問(決策樹、Random Forest、Booting、Adaboot)GBDT和XGBoost的區別是什麼?...

七月線上實驗室發表於2019-03-13

640?wx_fmt=png

今日面試題分享
請問(決策樹、Random Forest、Booting、Adaboot)GBDT和XGBoost的區別是什麼?


參考答案:


解析:

整合學習的整合物件是學習器. Bagging和Boosting屬於整合學習的兩類方法. Bagging方法有放回地取樣同數量樣本訓練每個學習器, 然後再一起整合(簡單投票); Boosting方法使用全部樣本(可調權重)依次訓練每個學習器, 迭代整合(平滑加權).


決策樹屬於最常用的學習器, 其學習過程是從根建立樹, 也就是如何決策葉子節點分裂. ID3/C4.5決策樹用資訊熵計算最優分裂, CART決策樹用基尼指數計算最優分裂, xgboost決策樹使用二階泰勒展開係數計算最優分裂.


下面所提到的學習器都是決策樹: 

Bagging方法:    

學習器間不存在強依賴關係, 學習器可並行訓練生成, 整合方式一般為投票;    

Random Forest屬於Bagging的代表, 放回抽樣, 每個學習器隨機選擇部分特徵去優化; 

Boosting方法:   

學習器之間存在強依賴關係、必須序列生成, 整合方式為加權和;    Adaboost屬於Boosting, 採用指數損失函式替代原本分類任務的0/1損失函式;    

GBDT屬於Boosting的優秀代表, 對函式殘差近似值進行梯度下降, 用CART迴歸樹做學習器, 整合為迴歸模型;    

xgboost屬於Boosting的集大成者, 對函式殘差近似值進行梯度下降, 迭代時利用了二階梯度資訊, 整合模型可分類也可迴歸. 由於它可在特徵粒度上平行計算, 結構風險和工程實現都做了很多優化, 泛化, 效能和擴充套件性都比GBDT要好。


關於決策樹,這裡有篇《決策樹演算法》(連結:http://blog.csdn.net/v_july_v/article/details/7577684)。

而隨機森林Random Forest是一個包含多個決策樹的分類器。至於AdaBoost,則是英文"Adaptive Boosting"(自適應增強)的縮寫,關於AdaBoost可以看下這篇文章《Adaboost 演算法的原理與推導》。GBDT(Gradient Boosting Decision Tree),即梯度上升決策樹演算法,相當於融合決策樹和梯度上升boosting演算法。 

引用自:@AntZ


xgboost類似於gbdt的優化版,不論是精度還是效率上都有了提升。與gbdt相比,具體的優點有: 

1.損失函式是用泰勒展式二項逼近,而不是像gbdt裡的就是一階導數 2.對樹的結構進行了正則化約束,防止模型過度複雜,降低了過擬合的可能性 

3.節點分裂的方式不同,gbdt是用的gini係數,xgboost是經過優化推導後的 

引用自:@Xijun LI


題目來源:七月線上官網(www.julyedu.com)——面試題庫——面試大題——機器學習


640?wx_fmt=png



640?wx_fmt=gif

今日學習推薦

Spark大資料實戰班

開課時間:3月16日(本週六)

五位大廠架構師

只教工程實戰和實際應用


640?wx_fmt=jpeg

諮詢/報名/組團可新增微信客服

julyedukefu_02


掃描下方二維碼

檢視更多課程詳情

640?wx_fmt=png

長按識別二維碼


640?wx_fmt=gif


助力“金三銀四”

分享一套全體系人工智慧學習資料

600G資料 限時限額0元領

小夥伴們可以屯起來,慢慢學習喔~


掃描下方海報二維碼

 立即領取

640?wx_fmt=png

往期推薦






【實戰分享】電影推薦系統專案實戰應用

萬字長文概述NLP中的深度學習技術

34個最優秀好用的Python開源框架

神經網路P圖新神器:摘墨鏡戴美瞳都能搞定,加首飾換髮型真假難分 | 程式碼開源

一文詳解機器學習中最好用的提升方法:Boosting 與 AdaBoost


諮詢,檢視課程,請點選“閱讀原文

給我【好看

你也越好看!

640?wx_fmt=png

相關文章