《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 解決方案 > 線性模型已退場(chǎng),XGBoost時(shí)代早已來(lái)

線性模型已退場(chǎng),XGBoost時(shí)代早已來(lái)

2019-04-16

什么是 XGBoost?如何直觀理解 XGBoost?它為什么這么優(yōu)秀?


我對(duì)十五年前第一天工作的情況還記憶猶新。彼時(shí)我剛畢業(yè),在一家全球投資銀行做分析師。我打著領(lǐng)帶,試圖記住學(xué)到的每一件事。與此同時(shí),在內(nèi)心深處,我很懷疑自己是否可以勝任這份工作。感受到我的焦慮后,老板笑著說(shuō):


「別擔(dān)心,你只需要了解回歸模型就可以了。」


我當(dāng)初想的是「我知道這個(gè)!」。我知道回歸模型——線性回歸和 logistic 回歸都知道。老板是對(duì)的。我在任職期間僅僅構(gòu)建了基于回歸的統(tǒng)計(jì)模型。我并不是一個(gè)人。事實(shí)上,當(dāng)時(shí)的回歸模型在預(yù)測(cè)分析中獨(dú)占鰲頭。而十五年后的今天,回歸模型的時(shí)代已經(jīng)結(jié)束了。遲暮的女王已經(jīng)退場(chǎng),取而代之的是名字時(shí)髦、活力滿滿的新女王——XGBoost(Exterme Gradient Boosting,極限梯度提升)。


什么是 XGBoost?


XGBoost 是基于決策樹的集成機(jī)器學(xué)習(xí)算法,它以梯度提升(Gradient Boost)為框架。在非結(jié)構(gòu)數(shù)據(jù)(圖像、文本等)的預(yù)測(cè)問(wèn)題中,人工神經(jīng)網(wǎng)絡(luò)的表現(xiàn)要優(yōu)于其他算法或框架。但在處理中小型結(jié)構(gòu)數(shù)據(jù)或表格數(shù)據(jù)時(shí),現(xiàn)在普遍認(rèn)為基于決策樹的算法是最好的。下圖列出了近年來(lái)基于樹的算法的演變過(guò)程:

微信圖片_20190416154015.jpg

從決策樹到 XGBoost 算法的演變。


XGBoost 算法最初是華盛頓大學(xué)的一個(gè)研究項(xiàng)目。陳天奇和 Carlos Guestrin 在 SIGKDD 2016 大會(huì)上發(fā)表的論文《XGBoost: A Scalable Tree Boosting System》在整個(gè)機(jī)器學(xué)習(xí)領(lǐng)域引起轟動(dòng)。自發(fā)表以來(lái),該算法不僅多次贏得 Kaggle 競(jìng)賽,還應(yīng)用在多個(gè)前沿工業(yè)應(yīng)用中,并推動(dòng)其發(fā)展。許多數(shù)據(jù)科學(xué)家合作參與了 XGBoost 開源項(xiàng)目,GitHub 上的這一項(xiàng)目(https://github.com/dmlc/xgboost/)約有 350 個(gè)貢獻(xiàn)者,以及 3600 多條提交。和其他算法相比,XGBoost 算法的不同之處有以下幾點(diǎn):


應(yīng)用范圍廣泛:該算法可以解決回歸、分類、排序以及用戶自定義的預(yù)測(cè)問(wèn)題;

可移植性:該算法可以在 Windows、Linux 和 OS X 上流暢地運(yùn)行;

語(yǔ)言:支持包括 C++、Python、R、Java、Scala 和 Julia 在內(nèi)的幾乎所有主流編程語(yǔ)言;

云集成:支持 AWS、Azure 和 Yarn 集群,也可以很好地配合 Flink、 Spark 等其他生態(tài)系統(tǒng)。


對(duì) XGBoost 的直觀理解


決策樹是易于可視化、可解釋性相對(duì)較強(qiáng)的算法,但是要建立下一代基于樹的算法的直觀理解可能就有些棘手了。為了更好地理解基于樹的算法的演變過(guò)程,我對(duì)其做了簡(jiǎn)單的類比:


假設(shè)你是面試官,要面試幾名資歷非常優(yōu)秀的求職者?;跇涞乃惴ㄑ葑冞^(guò)程的每一步都可以類比為不同版本的面試場(chǎng)景。


決策樹:每一名面試官都有一套自己的面試標(biāo)準(zhǔn),比如教育水平、工作經(jīng)驗(yàn)以及面試表現(xiàn)等。決策樹類似于面試官根據(jù)他(她)自己的標(biāo)準(zhǔn)面試求職者。

袋裝法(Bagging):現(xiàn)在面試官不只有一個(gè)人,而是一整個(gè)面試小組,小組中的每位面試官都有投票權(quán)。Bagging(Boostrap Aggregating)就是通過(guò)民主投票過(guò)程,綜合所有面試官的投票,然后做出最終決定。

隨機(jī)森林(Random Forest):這是基于 Bagging 的算法,但與 Bagging 有明顯區(qū)別——它隨機(jī)選擇特征子集。也就是,每位面試官只會(huì)隨機(jī)選擇一些側(cè)面來(lái)對(duì)求職者進(jìn)行面試(比如測(cè)試編程技能的技術(shù)面或者是評(píng)估非技術(shù)技能的行為面試)。

Boosting:這是一種替代方法,每位面試官根據(jù)前一位面試官的反饋來(lái)調(diào)整評(píng)估標(biāo)準(zhǔn)。通過(guò)部署更動(dòng)態(tài)的評(píng)估流程來(lái)「提升」面試效率。

梯度提升(Gradient Boosting):這是 Boosting 的特例,這種算法通過(guò)梯度下降算法來(lái)最小化誤差。用面試類比的話,就是戰(zhàn)略咨詢公司用案例面試來(lái)剔除那些不符合要求的求職者;

XGBoost:將 XGBoost 視為「打了雞血」的梯度提升(將這種算法稱為「極限梯度提升」是有原因的?。?。這是軟硬件優(yōu)化技術(shù)的完美結(jié)合,它可以在最短時(shí)間內(nèi)用更少的計(jì)算資源得到更好的結(jié)果。



為什么 XGBoost 如此優(yōu)秀?


XGBoost 和梯度提升機(jī)(Gradient Boosting Machine,GBM)都是用梯度下降架構(gòu)增強(qiáng)弱學(xué)習(xí)器(一般是 CART)的集成樹方法。但 XGBoost 通過(guò)系統(tǒng)優(yōu)化和算法增強(qiáng)改進(jìn)了基礎(chǔ) GBM 框架。

微信圖片_20190416154044.jpg

XGBoost 是如何優(yōu)化標(biāo)準(zhǔn) GBM 算法的


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


并行:XGBoost 用并行的方式實(shí)現(xiàn)了序列樹的構(gòu)建過(guò)程??紤]到用于構(gòu)建基礎(chǔ)學(xué)習(xí)器的循環(huán)、枚舉樹的葉節(jié)點(diǎn)的外部循環(huán)以及計(jì)算特征的第二個(gè)內(nèi)部循環(huán)的可互換性,這是完全有可能實(shí)現(xiàn)的。由于沒(méi)有完整的內(nèi)部循環(huán)就無(wú)法啟動(dòng)外部循環(huán)(兩個(gè)循環(huán)要求的計(jì)算資源更多),因此這種嵌套的循環(huán)限制了并行。為了改善運(yùn)行時(shí),就要交換循環(huán)的順序,這通過(guò)對(duì)所有實(shí)例進(jìn)行全局掃描來(lái)執(zhí)行初始化以及用并行線程排序來(lái)實(shí)現(xiàn)。這樣的變換抵消了計(jì)算中并行所需的開銷,從而提升了算法性能。

剪枝:從本質(zhì)上講 GBM 框架內(nèi)樹分裂的停止標(biāo)準(zhǔn)是貪婪的,這取決于分裂點(diǎn)的負(fù)損失。XGBoost 優(yōu)先使用指定的「max_depth」參數(shù),然后開始后向修剪樹。這種「深度優(yōu)先」的方法顯著提升了計(jì)算性能。

硬件優(yōu)化:XGBoost 算法可以有效利用硬件資源。這是通過(guò)緩存感知(cache awareness)實(shí)現(xiàn)的,而緩存感知?jiǎng)t是通過(guò)在每個(gè)線程中分配內(nèi)部緩沖區(qū)來(lái)存儲(chǔ)梯度統(tǒng)計(jì)信息實(shí)現(xiàn)的?!负送狻褂?jì)算等進(jìn)一步增強(qiáng)措施則在處理與內(nèi)存不兼容的大數(shù)據(jù)幀時(shí)優(yōu)化了可用磁盤空間。



算法增強(qiáng):


正則化:用 LASSO(L1)正則化和 Ridge(L2)正則化懲罰更復(fù)雜的模型,以防止過(guò)擬合。

稀疏性感知(Sparsity Awareness):XGBoost 根據(jù)訓(xùn)練損失自動(dòng)「學(xué)習(xí)」最佳缺失值,從而承認(rèn)輸入的稀疏特征,還可以更高效地處理數(shù)據(jù)中不同類型的稀疏模式。

加權(quán)分位數(shù)略圖(Weighted Quantile Sketch):XGBoost 用分布式加權(quán)分位數(shù)略圖算法(https://arxiv.org/pdf/1603.02754.pdf)高效地從加權(quán)數(shù)據(jù)集中找到最佳分裂點(diǎn)。

交叉驗(yàn)證:該算法在每次迭代時(shí)都使用內(nèi)置的交叉驗(yàn)證方法,這樣就無(wú)需特地為搜索編程,也不需要每次運(yùn)行時(shí)都指定所需迭代增強(qiáng)的確切數(shù)目。



證據(jù)在哪里?


我們用 Scikit-learn 中的「Make_Classification」(https://scikit-learn.org/stable/modules/generated/sklearn.datasets.make_classification.html)數(shù)據(jù)包創(chuàng)建包含 100 萬(wàn)個(gè)數(shù)據(jù)點(diǎn)的隨機(jī)樣本,其中包含 20 個(gè)特征(2 個(gè)是信息性的,2 個(gè)是冗余的)。我們測(cè)試了幾種算法,比如 Logistic 回歸、隨機(jī)森林、標(biāo)準(zhǔn)梯度提升,以及 XGBoost。

微信圖片_20190416154153.jpg

使用 SKLearn 中 Make_Classification 數(shù)據(jù)集的 XGBoost 算法和其他 ML 算法。


如上圖所示,和其他算法相比,結(jié)合預(yù)測(cè)性能和處理時(shí)間兩項(xiàng)來(lái)看,XGBoost 是最好的。其他嚴(yán)格的基準(zhǔn)研究(https://github.com/szilard/benchm-ml)也得到了類似的結(jié)果。這也難怪 XGBoost 廣泛應(yīng)用于近期的數(shù)據(jù)科學(xué)競(jìng)賽了。


「如有疑問(wèn),用 XGBoost 就好」——Owe Zhang,Kaggle Avito 上下文廣告點(diǎn)擊大賽冠軍。


那么我們應(yīng)該一直用 XGBoost 嗎?


無(wú)論是機(jī)器學(xué)習(xí)還是生活,沒(méi)有免費(fèi)的午餐都是一條鐵律。作為數(shù)據(jù)科學(xué)家,我們必須要測(cè)試所有能處理手頭數(shù)據(jù)的算法,才能判斷哪種算法是最好的。此外,只是選擇正確的算法還不夠。我們必須針對(duì)要處理的數(shù)據(jù)集調(diào)整超參數(shù),從而選擇合適的配置。此外,要選擇合適的算法還要考慮其他因素,比如計(jì)算復(fù)雜度、可解釋性以及易于實(shí)現(xiàn)性。這是機(jī)器學(xué)習(xí)從科學(xué)走向藝術(shù)的開始,但說(shuō)實(shí)話,這也正是見(jiàn)證奇跡的時(shí)刻!


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲黄色片网站| 久久不射2019中文字幕| 亚洲一区二区久久| 亚洲美女视频在线观看| 亚洲国产天堂久久综合| 一区二区在线看| 一区二区三区在线视频播放| 国产在线精品一区二区夜色| 国产美女精品一区二区三区| 国产精品影视天天线| 国产精品夜夜夜一区二区三区尤| 欧美日韩在线免费观看| 国产精品va| 国产精品入口夜色视频大尺度| 国产精品日韩欧美大师| 国产精品自在在线| 国产亚洲成年网址在线观看| 国产专区欧美精品| 在线日韩av| 亚洲人成在线观看网站高清| 亚洲黄色免费网站| 亚洲精品在线视频观看| 在线视频免费在线观看一区二区| 一区二区精品在线观看| 亚洲深夜激情| 午夜日韩av| 亚洲激情成人网| 99视频一区二区| 亚洲尤物在线| 欧美在线亚洲综合一区| 久久免费国产精品| 欧美高清视频| 欧美色视频在线| 国产欧美精品一区二区三区介绍| 国产日韩欧美在线看| 尤物yw午夜国产精品视频| 最近看过的日韩成人| 艳妇臀荡乳欲伦亚洲一区| 亚洲欧美成人网| 久久国产手机看片| 99re66热这里只有精品4| 亚洲午夜av电影| 久久精品国产欧美激情| 欧美成人有码| 国产精品美女诱惑| 红桃视频欧美| 亚洲乱码日产精品bd| 亚洲一区二区免费在线| 欧美影院视频| 亚洲精品午夜| 亚洲欧美成人一区二区三区| 久久久综合网站| 欧美日本一区| 国产三区二区一区久久| 亚洲国产精品欧美一二99| 亚洲视频每日更新| 久久精品亚洲| 亚洲一级免费视频| 久久婷婷一区| 欧美午夜视频一区二区| 国产在线不卡| 一区二区三区高清在线| 亚洲高清中文字幕| 亚洲一区在线看| 噜噜噜91成人网| 国产精品久久一卡二卡| 亚洲福利视频网站| 亚洲欧美卡通另类91av| 亚洲卡通欧美制服中文| 久久精品国产v日韩v亚洲| 欧美日韩国产欧| 国产日韩欧美制服另类| 亚洲麻豆视频| 亚洲国产精品一区二区尤物区| 亚洲一区二区影院| 欧美1级日本1级| 国产视频一区二区在线观看 | 91久久精品国产91性色| 午夜伦欧美伦电影理论片| 欧美成人激情视频免费观看| 国产日韩综合一区二区性色av| 99精品欧美一区二区三区综合在线| 欧美在线日韩| 西西人体一区二区| 欧美日韩中文字幕综合视频 | 午夜精品一区二区三区四区 | 亚洲福利视频一区| 午夜精品美女自拍福到在线| 欧美华人在线视频| 国产在线观看91精品一区| 亚洲一区在线播放| 亚洲一区二区av电影| 欧美激情综合五月色丁香| 黄色亚洲免费| 欧美一区二区在线视频| 翔田千里一区二区| 国产精品久久久999| 亚洲人线精品午夜| 亚洲级视频在线观看免费1级| 欧美一级在线亚洲天堂| 国产精品a久久久久久| 亚洲精品乱码久久久久久蜜桃91| 亚洲第一网站| 久久夜色精品亚洲噜噜国产mv| 国产精品综合视频| 亚洲夜间福利| 午夜久久久久久| 国产精品黄视频| 一本色道久久综合一区| 一区二区冒白浆视频| 欧美久久久久中文字幕| 亚洲国产一二三| 亚洲精品一线二线三线无人区| 老司机免费视频久久 | 国产一区亚洲| 欧美一区二区精品久久911| 欧美亚洲一区二区在线| 国产精品免费一区二区三区在线观看| 亚洲最新色图| 亚洲欧美日韩一区二区| 国产精品video| 亚洲视频狠狠| 午夜精品国产| 国产日韩欧美综合| 欧美专区亚洲专区| 久久男人资源视频| 亚洲第一黄色| 亚洲精品免费在线播放| 欧美另类女人| 999在线观看精品免费不卡网站| 一本久久综合亚洲鲁鲁| 欧美三级视频在线观看| 在线视频欧美精品| 性色av一区二区三区在线观看| 国产精品丝袜xxxxxxx| 午夜精品视频一区| 久久婷婷人人澡人人喊人人爽| 在线成人h网| 99国产精品国产精品毛片| 欧美日韩在线综合| 亚洲在线观看免费| 久久精品国产久精国产思思| 狠狠色2019综合网| 亚洲七七久久综合桃花剧情介绍| 欧美激情亚洲国产| 在线综合亚洲| 欧美亚洲综合另类| 激情婷婷亚洲| 99精品国产在热久久下载| 国产精品mm| 欧美在线三级| 欧美激情二区三区| 在线视频你懂得一区| 欧美专区福利在线| 亚洲东热激情| 亚洲图片在线| 国产亚洲一区在线| 一本久久a久久精品亚洲| 国产精品夜夜夜| 亚洲黄色片网站| 欧美少妇一区二区| 久久av免费一区| 欧美全黄视频| 亚洲欧美日韩精品久久| 欧美xxxx在线观看| 亚洲视频欧洲视频| 美女脱光内衣内裤视频久久影院 | 亚洲国产专区| 国产精品v日韩精品| 久久成人18免费网站| 欧美精品激情| 午夜精品福利电影| 欧美日韩1区| 欧美一区二区三区喷汁尤物| 欧美精品国产一区| 欧美专区中文字幕| 欧美日韩国产成人高清视频| 午夜精品久久99蜜桃的功能介绍| 欧美风情在线观看| 亚洲欧美欧美一区二区三区| 欧美护士18xxxxhd| 欧美一区二区三区精品| 欧美日本高清一区| 亚洲电影毛片| 国产精品视频99| 99国产精品视频免费观看一公开 | 亚洲一区二区三区在线| 在线成人激情视频| 午夜精品视频一区| 亚洲精品一品区二品区三品区| 久久久久久亚洲精品不卡4k岛国| 99精品黄色片免费大全| 女主播福利一区| 欧美一区二区免费| 国产精品久久国产精品99gif| 日韩亚洲欧美精品| 激情小说另类小说亚洲欧美 | 欧美日韩dvd在线观看| 欧美专区亚洲专区| 国产精品日韩|