當前位置:
首頁 > 最新 > XGBoost與深度學習到底孰優孰劣?都說XGBoost好用,為什麼名氣總不如深度學習?

XGBoost與深度學習到底孰優孰劣?都說XGBoost好用,為什麼名氣總不如深度學習?

本文長度為1600字,建議閱讀3分鐘

本文分析XGBoost與深度學習的差異,分享XGBoost的應用。

AlphaGo大戰柯潔、李世石後,所有人都能談上幾句深度學習。人工智慧在圍棋上的這場突破,最終還要歸功於機器學習三巨頭三十年如一日的長期研究。

相比之下,橫掃Kaggle大賽的XGBoost(去年的29個獲獎方案中,有17個是用XGBoost),名氣可就小太多了。更何況,它的發起人還只是個名不見經傳的年輕人。

有人打抱不平說,XGBoost要比深度學習更重要,這一點毫無疑問。

因為它好用,在很多情況下都更為可靠、靈活,而且準確;在絕大多數的回歸和分類問題上,XGBoost的實際表現都是頂尖的。

當然,不買賬的人也不少。

某Quora撰文寫到,針對準確度要求很高的那些問題,XGBoost確實很有優勢,同時它的計算特性也很不錯。然而,相對於支持向量機、隨機森林或深度學習,XGBoost的優勢倒也沒到那種誇張的程度。特別是當你擁有足夠的訓練數據,並能找到合適的深度神經網路時,深度學習的效果就明顯能好上一大截。

還有用戶打趣說,XGBoost的名氣壞在它的名字上,深度學習一聽就非常高大上,XGBoost再怎麼包裝也是書獃子氣十足。

那麼,XGBoost的發起人又是怎麼說的呢?

XGBoost的發起人——陳天奇博士,他並不認可將深度學習和XGBoost截然對立起來。他談到,這兩種方法在其各自擅長領域的性能表現都非常好:

XGBoost專註於模型的可解釋性,而基於人工神經網路的深度學習,則更關注模型的準確度。

XGBoost更適用於變數數較少的表格數據,而深度學習則更適用於圖像或其他擁有海量變數的數據。

到底,XGBoost與深度學習孰優孰劣?

陳天奇在Quora上的解答如下:

不同的機器學習模型適用於不同類型的任務。深度神經網路通過對時空位置建模,能夠很好地捕獲圖像、語音、文本等高維數據。而基於樹模型的XGBoost則能很好地處理表格數據,同時還擁有一些深度神經網路所沒有的特性(如:模型的可解釋性、輸入數據的不變性、更易於調參等)。

這兩類模型都很重要,並廣泛用於數據科學競賽和工業界。舉例來說,幾乎所有採用機器學習技術的公司都在使用tree boosting,同時XGBoost已經給業界帶來了很大的影響。

作為一名機器學習研究者,我一直在用深度學習和XGBoost。我相信,我們需要全面理解每一種模型,並能選出最適合你當前任務的那個。XGBoost、深度神經網路與其他經常要用的機器學習演算法(如因子分解機、logistic回歸分析等),值得機器學習行業的每一位從業者關注。這裡沒有一葯能解百病的說法。

既然提到XGBoost在業界已經有廣泛的應用,那麼到底又有哪些呢?

XGBoost實際用例不完全列表

dmlc/xgboost(https://github.com/dmlc/xgboost/tree/master/demo#usecases)

使用XGBoost的Kaggle獲獎方案可在這裡找到:

使用XGBoost的Seldon預測服務Iris

使用XGBoost的Graphlab Create

騰訊數據平台把分布式版本的XGBoost用於微信內的購買點擊預測

汽車之家把分布式版本的XGBoost用於展示廣告的點擊率預測

談了XGBoost的應用範圍,再來客觀聊聊XGBoost的性能。說到性能,就不得不說到它的一個突出特點——運行很快。

XGBoost運行很快

至於它為什麼這麼快,有人說C++和並行計算是主要原因,而陳天奇則一針見血說到,性能原本就是XGBoost最初的設計目標:

比如:

內存優化,大部分的內存分配在第一次載入中就完成了,之後便不再涉及動態內存分配的問題。

緩存線優化,訓練模式儘可能善用緩存機制。

模型自身的改善,我們開發出模型的各種變體,從而令演算法本身更具強健性、更加準確。詳見:Introduction to Boosted Trees(http://xgboost.readthedocs.org/en/latest/model.html) 。

另外,性能不僅僅意味著速度上的提升,在資源有限情況下你仍能對大型數據集使用該演算法:

我們不斷探索該工具的極限,以最大限度地利用計算資源,讓你在一個節點上就能運行多個實例。

使用擴展內存的版本,允許數據存在硬碟上,不必把所有數據導入內存。

分布式版本對XGBoost的每一個節點都進行過優化,讓你可以有效地在更少節點上處理更大的數據集。

https://github.com/dmlc/xgboost/tree/master/demo#usecases

為保證發文質量、樹立口碑,數據派現設立「錯別字基金」,鼓勵讀者積極糾錯

若您在閱讀文章過程中發現任何錯誤,請在文末留言,或到後台反饋,經小編確認後,數據派將向檢舉讀者發8.8元紅包

同一位讀者指出同一篇文章多處錯誤,獎金不變。不同讀者指出同一處錯誤,獎勵第一位讀者。

感謝一直以來您的關注和支持,希望您能夠監督數據派產出更加高質的內容。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 安卓網 的精彩文章:

就要手機進課堂,大學裡80人一個班上數電問題也不大
女友不讓我買這款手機,就是因為不想讓我玩遊戲
今年最強手機排名,它超越iphone8排名第一
微軟意外曝光Surface手機:驍龍835/藏殺手鐧

TAG:安卓網 |

您可能感興趣

從 Google Trends,看各大深度學習框架使用熱度
詳解深度學習中的 Normalization,不只是 BN
我是如何在 Python 內使用深度學習實現 iPhone X的FaceID 的
誰說輕薄本是Mac的天下?華為MateBook X Pro深度體驗
TensorFlow、MXNet、Keras如何取捨?常用深度學習框架對比
NanoNets:數據有限如何應用深度學習?
Yoshua Bengio談邁向硬體友好的深度學習
Yann LeCun:假如沒有深度學習,Facebook就是塵埃
TensorFlow、Keras、CNTK……到底哪種深度學習框架更好用?
微軟開源ONNX Runtime,想用什麼深度學習框架任你選!
如何用雲端 GPU 為你的 Python 深度學習加速?
如何使用Tensorflow玩轉深度學習?
Fran?ois Chollet 談深度學習的局限性和未來-下篇
Fran?ois Chollet 談深度學習的局限性和未來 - 下篇
從Zero到Hero,OpenAI重磅發布深度強化學習資源
AMD的GPU現在可以加速TensorFlow深度學習了
Tomaso Poggio解析下個「AlphaGo」線索,再談「深度學習鍊金術」
Fran?ois Chollet 談深度學習的局限性和未來-上篇
Fran?ois Chollet 談深度學習的局限性和未來 - 上篇
如何用 OpenCV、Python 和深度學習實現面部識別?