今日面試題分享:請問(決策樹、Random Forest、Booting、Adaboot)GBDT和XGBoost的區別是什麼?...
請問(決策樹、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)——面試題庫——面試大題——機器學習
今日學習推薦
【Spark大資料實戰班】
開課時間:3月16日(本週六)
五位大廠架構師
只教工程實戰和實際應用
諮詢/報名/組團可新增微信客服
julyedukefu_02
掃描下方二維碼
檢視更多課程詳情
☟
長按識別二維碼
助力“金三銀四”
分享一套全體系人工智慧學習資料
600G資料 限時限額0元領
小夥伴們可以屯起來,慢慢學習喔~
掃描下方海報二維碼
立即領取
☟
▼往期推薦▼
神經網路P圖新神器:摘墨鏡戴美瞳都能搞定,加首飾換髮型真假難分 | 程式碼開源
一文詳解機器學習中最好用的提升方法:Boosting 與 AdaBoost
點
諮詢,檢視課程,請點選“閱讀原文”
給我【好看】
你也越好看!
相關文章
- ML《決策樹(四)Bagging 和 Random Forest》randomREST
- 最常用的決策樹演算法!Random Forest、Adaboost、GBDT 演算法演算法randomREST
- 今日面試題分享:解決bias和Variance問題的方法是什麼?面試題
- 今日面試題分享:什麼是最大熵面試題熵
- Python機器學習:決策樹001什麼是決策樹Python機器學習
- 今日面試題分享:為什麼xgboost要用泰勒展開,優勢在哪裡?面試題
- GBDT(MART)迭代決策樹學習
- Gbdt 迭代決策樹入門教程
- 【Java面試】Mybatis中#{}和${}的區別是什麼?Java面試MyBatis
- 面試官靈魂三問:什麼是SOA?什麼是微服務?SOA和微服務有什麼區別?面試微服務
- 什麼是決策智慧?
- 面試題: Webpack 的 plugin 和 loader 有什麼區別面試題WebPlugin
- GBDT(MART) 迭代決策樹入門教程 | 簡介
- 請教大家元件和模組有什麼區別,它們的概念分別是什麼?元件
- 什麼是DMN決策模型和符號?模型符號
- 淺談樹模型與整合學習-從決策樹到GBDT模型
- [機器學習 ]RandomForest、GBDT、XGBoost、lightGBM 原理與區別機器學習randomREST
- 什麼是PCB?什麼是PCBA?PCB和PCBA的區別?
- 【Java面試】什麼是可重入,什麼是可重入鎖? 它用來解決什麼問題?Java面試
- GBDT(MART) 迭代決策樹演算法 深入淺出演算法
- cat和vim的區別是什麼?
- python is和==的區別是什麼?Python
- HIVE和HBASE的區別是什麼Hive
- JDO和JPA的區別是什麼?
- Python培訓分享:PyQT是什麼?PyQt4和PyQt5的區別是什麼?PythonQT
- 今日面試題分享面試題
- #如何看待問“a = a + b和a += b有什麼區別”的Java面試官?Java面試
- cookie是什麼?和session有什麼區別?CookieSession
- Mssql和Mongodb區別是什麼SQLMongoDB
- powershell和cmd區別是什麼
- 什麼是解決問題的能力?
- 面試官:Golang 的 new 與make 區別是什麼?面試Golang
- 面試題:VueRouter中的 hash 模式和 history 模式有什麼區別面試題Vue模式
- 演算法金 | 決策樹、隨機森林、bagging、boosting、Adaboost、GBDT、XGBoost 演算法大全演算法隨機森林
- 今日頭條極速版和今日頭條有什麼區別?
- 每次面試都會被問,什麼是紅黑樹?面試
- 前端和後端的區別是什麼?前端後端
- ArrayList和LinkedList的區別是什麼