0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

XGBoost號稱“比賽奪冠的必備大殺器”,橫掃機器學習競賽罕逢敵手

DPVg_AI_era ? 來源:lq ? 2019-04-30 09:01 ? 次閱讀

XGBoost號稱“比賽奪冠的必備大殺器”,橫掃機器學習競賽罕逢敵手,堪稱機器學習算法中的新女王!

在涉及非結(jié)構(gòu)化數(shù)據(jù)(圖像、文本等)的預測問題中,人工神經(jīng)網(wǎng)絡顯著優(yōu)于所有其他算法或框架。但當涉及到中小型結(jié)構(gòu)/表格數(shù)據(jù)時,基于決策樹的算法現(xiàn)在被認為是最佳方法。而基于決策樹算法中最驚艷的,非XGBoost莫屬了。

打過Kaggle、天池、DataCastle、Kesci等國內(nèi)外數(shù)據(jù)競賽平臺之后,一定對XGBoost的威力印象深刻。XGBoost號稱“比賽奪冠的必備大殺器”,橫掃機器學習競賽罕逢敵手。最近甚至有一位大數(shù)據(jù)/機器學習主管被XGBoost在項目中的表現(xiàn)驚艷到,盛贊其為“機器學習算法中的新女王”!

XGBoost最初由陳天奇開發(fā)。陳天奇是華盛頓大學計算機系博士生,研究方向為大規(guī)模機器學習。他曾獲得KDD CUP 2012 Track 1第一名,并開發(fā)了SVDFeature,XGBoost,cxxnet等著名機器學習工具,是Distributed (Deep) Machine Learning Common的發(fā)起人之一。

XGBoost實現(xiàn)了高效、跨平臺、分布式gradient boosting (GBDT, GBRT or GBM) 算法的一個庫,可以下載安裝并應用于C++,Python,R,Julia,Java,Scala,Hadoop等。目前Github上超過15700星、6500個fork。

項目主頁:

https://XGBoost.ai/

XGBoost是什么

XGBoost全稱:eXtreme Gradient Boosting,是一種基于決策樹的集成機器學習算法,使用梯度上升框架,適用于分類和回歸問題。優(yōu)點是速度快、效果好、能處理大規(guī)模數(shù)據(jù)、支持多種語言、支持自定義損失函數(shù)等,不足之處是因為僅僅推出了不足5年時間,需要進一步的實踐檢驗。

XGBoost選用了CART樹,數(shù)學公式表達XGBoost模型如下:

K是樹的數(shù)量,F(xiàn)表示所有可能的CART樹,f表示一棵具體的CART樹。這個模型由K棵CART樹組成。

模型的目標函數(shù),如下所示:

XGBoost具有以下幾個特點:

靈活性:支持回歸、分類、排名和用戶定義函數(shù)

跨平臺:適用于Windows、Linux、macOS,以及多個云平臺

多語言:支持C++, Python, R, Java, Scala, Julia等

效果好:贏得許多數(shù)據(jù)科學和機器學習挑戰(zhàn)。用于多家公司的生產(chǎn)

云端分布式:支持多臺計算機上的分布式訓練,包括AWS、GCE、Azure和Yarn集群。可以與Flink、Spark和其他云數(shù)據(jù)流系統(tǒng)集成

下圖顯示了基于樹的算法的發(fā)展歷程:

決策樹:由一個決策圖和可能的結(jié)果(包括資源成本和風險)組成, 用來創(chuàng)建到達目標的規(guī)劃。

Bagging:是一種集合元算法,通過多數(shù)投票機制將來自多決策樹的預測結(jié)合起來,也就是將弱分離器 f_i(x) 組合起來形成強分類器 F(x) 的一種方法

隨機森林:基于Bagging算法。隨機選擇一個包含多種特性的子集來構(gòu)建一個森林,或者決策樹的集合

Boosting:通過最小化先前模型的誤差,同時增加高性能模型的影響,順序構(gòu)建模型

梯度上升:對于似然函數(shù),要求最大值,叫做梯度上升

XGBoost:極端梯度上升,XGBoost是一個優(yōu)化的分布式梯度上升庫,旨在實現(xiàn)高效,靈活和跨平臺

為什么XGBoost能橫掃機器學習競賽平臺?

下圖是XGBoost與其它gradient boosting和bagged decision trees實現(xiàn)的效果比較,可以看出它比R, Python,Spark,H2O的基準配置都快。

XGBoost和Gradient Boosting Machines(GBMs)都是集合樹方法,使用梯度下降架構(gòu)來提升弱學習者(通常是CART)。而XGBoost通過系統(tǒng)優(yōu)化和算法增強改進了基礎GBM框架,在系統(tǒng)優(yōu)化和機器學習原理方面都進行了深入的拓展。

系統(tǒng)優(yōu)化:

并行計算:

由于用于構(gòu)建base learners的循環(huán)的可互換性,XGBoost可以使用并行計算實現(xiàn)來處理順序樹構(gòu)建過程。

外部循環(huán)枚舉樹的葉節(jié)點,第二個內(nèi)部循環(huán)來計算特征,這個對算力要求更高一些。這種循環(huán)嵌套限制了并行化,因為只要內(nèi)部循環(huán)沒有完成,外部循環(huán)就無法啟動。

因此,為了改善運行時,就可以讓兩個循環(huán)在內(nèi)部交換循環(huán)的順序。此開關通過抵消計算中的所有并行化開銷來提高算法性能。

Tree Pruning:

GBM框架內(nèi)樹分裂的停止標準本質(zhì)上是貪婪的,取決于分裂點的負損失標準。XGBoost首先使用'max_depth'參數(shù)而不是標準,然后開始向后修剪樹。這種“深度優(yōu)先”方法顯著的提高了計算性能。

硬件優(yōu)化:

該算法旨在有效利用硬件資源。這是通過在每個線程中分配內(nèi)部緩沖區(qū)來存儲梯度統(tǒng)計信息來實現(xiàn)緩存感知來實現(xiàn)的。諸如“核外”計算等進一步增強功能可優(yōu)化可用磁盤空間,同時處理不適合內(nèi)存的大數(shù)據(jù)幀。

算法增強:

正則化:

它通過LASSO(L1)和Ridge(L2)正則化來懲罰更復雜的模型,以防止過擬合。

稀疏意識:

XGBoost根據(jù)訓練損失自動“學習”最佳缺失值并更有效地處理數(shù)據(jù)中不同類型的稀疏模式。

加權(quán)分位數(shù)草圖:

XGBoost采用分布式加權(quán)分位數(shù)草圖算法,有效地找到加權(quán)數(shù)據(jù)集中的最優(yōu)分裂點。

交叉驗證:

該算法每次迭代時都帶有內(nèi)置的交叉驗證方法,無需顯式編程此搜索,并可以指定單次運行所需的增強迭代的確切數(shù)量。

為了測試XGBoost到底有多快,可以通過Scikit-learn的'Make_Classification'數(shù)據(jù)包,創(chuàng)建一個包含20個特征(2個信息和2個冗余)的100萬個數(shù)據(jù)點的隨機樣本。

下圖為邏輯回歸,隨機森林,標準梯度提升和XGBoost效率對比:

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴

原文標題:陳天奇做的XGBoost為什么能橫掃機器學習競賽平臺?

文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    AMD贊助多支FIRST機器競賽團隊

    AMD 在 2024 賽季贊助了多支 FIRST 機器競賽團隊。FIRST 機器競賽旨在教導高中生如何構(gòu)建能夠執(zhí)行特定任務的機器人,同時
    的頭像 發(fā)表于 09-18 09:45 ?239次閱讀

    20.2-電磁桿在磁軌道的測試 零基礎入門智能車競賽 STM32電磁小車

    20.2-電磁桿在磁軌道的測試 零基礎入門智能車競賽 智能車競賽 電磁桿原理圖 電磁循跡小車 智能車電磁組 STM32電磁小車 電磁循跡小車 電磁循跡算法 智能車環(huán)島 智能車比賽規(guī)則 智能車
    的頭像 發(fā)表于 08-20 10:52 ?418次閱讀
    20.2-電磁桿在磁軌道的測試 零基礎入門智能車<b class='flag-5'>競賽</b> STM32電磁小車

    機器學習算法原理詳解

    機器學習作為人工智能的一個重要分支,其目標是通過讓計算機自動從數(shù)據(jù)中學習并改進其性能,而無需進行明確的編程。本文將深入解讀幾種常見的機器學習
    的頭像 發(fā)表于 07-02 11:25 ?397次閱讀

    深度學習與傳統(tǒng)機器學習的對比

    在人工智能的浪潮中,機器學習和深度學習無疑是兩大核心驅(qū)動力。它們各自以其獨特的方式推動著技術(shù)的進步,為眾多領域帶來了革命性的變化。然而,盡管它們都屬于機器
    的頭像 發(fā)表于 07-01 11:40 ?622次閱讀

    2020-2022-2024年TI杯全國大學生電子設計競賽官方推薦芯片對比分析比較

    2020-2022-2024年TI杯全國大學生電子設計競賽官方推薦芯片對比分析比較 一年一度的TI杯全國大學生設計競賽又正式拉開帷幕,器件清單一出來又忍不住對2024、2022年和2020年共3年
    發(fā)表于 06-25 10:25

    蘇州金龍榮獲首屆無人掃地機器人演示比賽“競技領跑獎”

    4月30日,2024年蘇州市首屆無人掃地機器人演示比賽在高新區(qū)思益街展開比拼。五家企業(yè)參賽在道路上實地比拼無人掃地機器人技術(shù),通過清掃垃圾、識別路障等環(huán)節(jié)展現(xiàn)城市清潔的“未來場景”。經(jīng)過角逐,蘇州
    的頭像 發(fā)表于 05-07 09:10 ?226次閱讀
    蘇州金龍榮獲首屆無人掃地<b class='flag-5'>機器</b>人演示<b class='flag-5'>比賽</b>“競技領跑獎”

    人工智能和機器學習的頂級開發(fā)板有哪些?

    機器學習(ML)和人工智能(AI)不再局限于高端服務或云平臺。得益于集成電路(IC)和軟件技術(shù)的新發(fā)展,在微型控制和微型計算機上實現(xiàn)機器
    的頭像 發(fā)表于 02-29 18:59 ?594次閱讀
    人工智能和<b class='flag-5'>機器</b><b class='flag-5'>學習</b>的頂級開發(fā)板有哪些?

    【技術(shù)科普】主流的深度學習模型有哪些?AI開發(fā)工程師必備!

    深度學習在科學計算中獲得了廣泛的普及,其算法被廣泛用于解決復雜問題的行業(yè)。所有深度學習算法都使用不同類型的神經(jīng)網(wǎng)絡來執(zhí)行特定任務。 什么是深度學習 深度學習
    的頭像 發(fā)表于 01-30 15:26 ?506次閱讀
    【技術(shù)科普】主流的深度<b class='flag-5'>學習</b>模型有哪些?AI開發(fā)工程師<b class='flag-5'>必備</b>!

    如何使用TensorFlow構(gòu)建機器學習模型

    在這篇文章中,我將逐步講解如何使用 TensorFlow 創(chuàng)建一個簡單的機器學習模型。
    的頭像 發(fā)表于 01-08 09:25 ?808次閱讀
    如何使用TensorFlow構(gòu)建<b class='flag-5'>機器</b><b class='flag-5'>學習</b>模型

    詳解XGBoost 2.0重大更新!

    另外還有一點是基于樹的模型可以輕松地可視化和解釋,這進一步增加了吸引力,特別是在理解表格數(shù)據(jù)結(jié)構(gòu)時。通過利用這些固有的優(yōu)勢,基于樹的方法——尤其是像XGBoost這樣的高級方法——非常適合處理數(shù)據(jù)科學中的各種挑戰(zhàn),特別是在處理表格數(shù)據(jù)時。
    的頭像 發(fā)表于 11-14 16:22 ?610次閱讀
    詳解<b class='flag-5'>XGBoost</b> 2.0重大更新!

    物聯(lián)網(wǎng)與機器學習如何創(chuàng)造智能未來

    機器學習得到廣泛運用,利用這些工具可以實現(xiàn)流程自動化,提高生產(chǎn)力,并實時做出數(shù)據(jù)驅(qū)動的抉擇和策略。智慧醫(yī)療隨著科技的發(fā)展,電子產(chǎn)品已經(jīng)成為我們生活中的必備用品,但
    的頭像 發(fā)表于 11-11 08:23 ?820次閱讀
    物聯(lián)網(wǎng)與<b class='flag-5'>機器</b><b class='flag-5'>學習</b>如何創(chuàng)造智能未來

    XGBoost 2.0介紹

    XGBoost是處理不同類型表格數(shù)據(jù)的最著名的算法,LightGBM 和Catboost也是為了修改他的缺陷而發(fā)布的。近日XGBoost發(fā)布了新的2.0版,本文除了介紹讓XGBoost的完整歷史以外
    的頭像 發(fā)表于 11-03 10:12 ?388次閱讀
    <b class='flag-5'>XGBoost</b> 2.0介紹

    NNI:自動幫你做機器學習調(diào)參的神器

    NNI 自動機器學習調(diào)參,是微軟開源的又一個神器,它能幫助你找到最好的神經(jīng)網(wǎng)絡架構(gòu)或超參數(shù),支持 各種訓練環(huán)境 。 它常用的 使用場景 如下: 想要在自己的代碼、模型中試驗 不同的機器學習
    的頭像 發(fā)表于 10-30 10:28 ?2141次閱讀
    NNI:自動幫你做<b class='flag-5'>機器</b><b class='flag-5'>學習</b>調(diào)參的神器

    《電子工程師必備——九大系統(tǒng)電路識圖寶典》+附錄5學習方法

    jf_39110170 網(wǎng)名“還沒吃飯”閱讀《電子工程師必備 九大系統(tǒng)電路識圖寶典第2版》附錄5的讀后感:探索科學學習方法 作為一名對電子技術(shù)學科充滿熱情的嵌入式工程師,你是否曾因學習方法的不明確而感到困惑?你是否曾在
    發(fā)表于 10-06 23:25

    機器學習與數(shù)據(jù)挖掘方法和應用

    機器學習與數(shù)據(jù)挖掘方法和應用(經(jīng)典)
    發(fā)表于 09-26 07:56