自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

機(jī)器學(xué)習(xí)算法的新女王——XGBoost

人工智能 機(jī)器學(xué)習(xí) 算法
XGBoost是基于決策樹的集成機(jī)器學(xué)習(xí)算法,使用了梯度提升框架。在涉及非結(jié)構(gòu)化數(shù)據(jù)(圖像、文本等)的預(yù)測(cè)問(wèn)題中,人工神經(jīng)網(wǎng)絡(luò)往往優(yōu)于所有其他算法或框架。

仍然記得15年前參加工作的第一天,剛完成研究生學(xué)業(yè)的我,加入了一家全球投資銀行擔(dān)任分析師。那天我不停地拉直領(lǐng)帶,努力回憶起學(xué)過(guò)的所有東西,懷疑自己是否足夠勝任工作。察覺(jué)到我的焦慮,老板微笑著說(shuō):

“別擔(dān)心!你只需要知道回歸模型就行了!”

我當(dāng)時(shí)在想,“我知道這個(gè)!”。我知道回歸模型、線性回歸和邏輯回歸。老板的說(shuō)法是對(duì)的,在任期內(nèi)我僅僅建立了基于回歸的統(tǒng)計(jì)模型。在那個(gè)時(shí)候,回歸建模是預(yù)測(cè)分析無(wú)可爭(zhēng)議的女王。15年后,回歸建模的時(shí)代已經(jīng)結(jié)束。遲暮的女王已經(jīng)退場(chǎng),取而代之的是名字時(shí)髦、活力滿滿的新女王XGBoost(Exterme Gradient Boosting,極限梯度提升)。

 

什么是XGBoost?

XGBoost是基于決策樹的集成機(jī)器學(xué)習(xí)算法,使用了梯度提升框架。在涉及非結(jié)構(gòu)化數(shù)據(jù)(圖像、文本等)的預(yù)測(cè)問(wèn)題中,人工神經(jīng)網(wǎng)絡(luò)往往優(yōu)于所有其他算法或框架。然而,當(dāng)涉及到中小型結(jié)構(gòu)化/表格數(shù)據(jù)時(shí),基于決策樹的算法被認(rèn)為是目前同類中最好的。請(qǐng)參閱下表了解這些年來(lái)基于樹的算法的發(fā)展。

機(jī)器學(xué)習(xí)算法的新女王——XGBoost

基于決策樹的XGBoost算法演化

XGBoost算法是華盛頓大學(xué)的一個(gè)研究項(xiàng)目。陳天奇和Carlos Guestrin在2016年的SIGGDD大會(huì)上發(fā)的的論文,讓機(jī)器學(xué)習(xí)世界如火如荼。自引入以來(lái),該算法不僅贏得了眾多的Kaggle競(jìng)賽,而且還被認(rèn)為是若干前沿行業(yè)應(yīng)用的驅(qū)動(dòng)力。因此,有一個(gè)強(qiáng)大的數(shù)據(jù)科學(xué)家社區(qū)為XGBoost開源項(xiàng)目做出貢獻(xiàn),GitHub上有大約350個(gè)貢獻(xiàn)者和~3600個(gè)提交者。該算法有以下特點(diǎn):

  1. 應(yīng)用范圍廣泛:可用于解決回歸、分類、排名和用戶自定義預(yù)測(cè)問(wèn)題。

  2. 可移植性:在Windows、Linux和os x上運(yùn)行平穩(wěn)。

  3. 語(yǔ)言:支持所有主流的編程語(yǔ)言,包括C++、Python、R、java、Scala和Julia。

  4. 云集成:支持AWS、Azure和Yarn集群,與Flink、Spark和其他生態(tài)系統(tǒng)配合良好。

 

如何建立對(duì)XGBoost的直覺(jué)認(rèn)識(shí)?

決策樹,在其最簡(jiǎn)單的形式,是易于可視化和相當(dāng)可解釋的算法,但為下一代基于樹的算法建立直覺(jué)可能有點(diǎn)棘手。下面是一個(gè)簡(jiǎn)單的類比,可以更好地理解基于樹的算法的發(fā)展。

[[338381]]

照片來(lái)Unsplash的rawpixel

想象一下,你是一個(gè)招聘經(jīng)理,面試幾位資歷優(yōu)秀的應(yīng)聘者。基于樹的算法進(jìn)化的每一步都可以看作是面試過(guò)程的一個(gè)版本。

  1. 決策樹:每個(gè)招聘經(jīng)理都有一套標(biāo)準(zhǔn),比如教育水平、工作年限、面試表現(xiàn)。決策樹類似于招聘經(jīng)理根據(jù)自己的標(biāo)準(zhǔn)面試應(yīng)聘者。

  2. Bagging:現(xiàn)在想象一下,不是一個(gè)面試官,而是一個(gè)面試小組,每個(gè)面試官都有投票權(quán)。Bagging聚合包括通過(guò)民主投票過(guò)程將所有面試官的意見(jiàn)結(jié)合起來(lái),以最終做出決定。

  3. 隨機(jī)森林:這是一種基于Bagging的算法,有一個(gè)關(guān)鍵的區(qū)別,其中只有一個(gè)子集的特征是隨機(jī)選擇的。換言之,每個(gè)面試官只會(huì)對(duì)面試者進(jìn)行一些隨機(jī)選擇的資格測(cè)試(例如,測(cè)試編程技能的技術(shù)面試和評(píng)估非技術(shù)技能的行為面試)。

  4. Boosting:這是一種替代方法,每個(gè)面試官都會(huì)根據(jù)前一位面試官的反饋來(lái)改變?cè)u(píng)估標(biāo)準(zhǔn)。這通過(guò)部署一個(gè)更動(dòng)態(tài)的評(píng)估過(guò)程來(lái)“提升Boosts”面試過(guò)程的效率。

  5. 梯度提升:通過(guò)梯度下降算法將誤差最小化的一種特例,例如,戰(zhàn)略咨詢公司利用案例面試來(lái)淘汰不合格的候選人。

  6. XGBoost:可以把XGBoost看作是對(duì)“steroids”的梯度增強(qiáng)(它被稱為“極致梯度增強(qiáng)”是有原因的?。K擒浻布?yōu)化技術(shù)的完美結(jié)合,可以在最短的時(shí)間內(nèi)使用較少的計(jì)算資源獲得優(yōu)異的結(jié)果。

 

為什么XGBoost表現(xiàn)如此出色?

XGBoost和Gradient Boosting Machines(GBMs)都是集成樹方法,它們采用梯度下降結(jié)構(gòu)來(lái)提高弱學(xué)習(xí)者(CARTs)的學(xué)習(xí)能力。然而,XGBoost通過(guò)系統(tǒng)優(yōu)化和算法增強(qiáng)改進(jìn)了基本GBM框架。

機(jī)器學(xué)習(xí)算法的新女王——XGBoost

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

  1. 并行化:XGBoost使用并行化實(shí)現(xiàn)序列樹的構(gòu)建過(guò)程。這是可能的,因?yàn)橛糜跇?gòu)建基本學(xué)習(xí)器的循環(huán)具有可互換性;外部循環(huán)枚舉樹的葉節(jié)點(diǎn),第二個(gè)內(nèi)部循環(huán)計(jì)算特征。這是可能的,因?yàn)橛糜跇?gòu)建基本學(xué)習(xí)器的循環(huán)具有可互換性;外部循環(huán)枚舉樹的葉節(jié)點(diǎn),第二個(gè)內(nèi)部循環(huán)計(jì)算特征。這種循環(huán)嵌套限制了并行化,因?yàn)闆](méi)有完成內(nèi)部循環(huán)(對(duì)這兩個(gè)循環(huán)的計(jì)算要求更高),外部循環(huán)就無(wú)法啟動(dòng)。因此,為了改進(jìn)運(yùn)行時(shí),循環(huán)的順序是通過(guò)初始化來(lái)交換的,通過(guò)對(duì)所有實(shí)例的全局掃描和使用并行線程進(jìn)行排序。此開關(guān)通過(guò)抵消計(jì)算中的任何并行化開銷來(lái)提高算法性能。

  2. 樹修剪:GBM框架中的樹分裂停止準(zhǔn)則本質(zhì)上是貪婪的,它依賴于分裂點(diǎn)的負(fù)損失準(zhǔn)則。XGBoost使用指定的“max_depth”參數(shù),而不是先使用條件,然后開始向后修剪樹。這種“深度優(yōu)先”方法顯著提高了計(jì)算性能。

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

算法增強(qiáng):

  1. 正則化:它通過(guò)L1脊線L2正則化來(lái)懲罰更復(fù)雜的模型,以防止過(guò)度擬合。

  2. 稀疏性意識(shí):XGBoost通過(guò)根據(jù)訓(xùn)練損失自動(dòng)“學(xué)習(xí)”最佳缺失值,自然地允許輸入稀疏特征,并更有效地處理數(shù)據(jù)中不同類型的稀疏模式。

  3. 加權(quán)分位數(shù)草圖:XGBoost采用分布式加權(quán)分位數(shù)草圖算法,有效地找到加權(quán)數(shù)據(jù)集之間的最佳分割點(diǎn)。

  4. 交叉驗(yàn)證:該算法在每次迭代中都帶有內(nèi)置的交叉驗(yàn)證方法,不需要顯式地對(duì)該搜索進(jìn)行編程,也不必指定一次運(yùn)行中所需的確切的提升迭代次數(shù)。

 

證據(jù)在哪里?

我們使用scikitlearn的“Make_nuclassification”數(shù)據(jù)包創(chuàng)建了一個(gè)隨機(jī)樣本,其中有100萬(wàn)個(gè)數(shù)據(jù)點(diǎn),有20個(gè)特征(2個(gè)是信息性的,2個(gè)是冗余的)。我們測(cè)試了一些算法,如Logistic回歸、隨機(jī)森林、標(biāo)準(zhǔn)梯度提升和XGBoost。

機(jī)器學(xué)習(xí)算法的新女王——XGBoost

XGBoost與使用SKLearn的Make_Classification 數(shù)據(jù)集的其他ML算法的比較

如上圖所示,與其他算法相比,XGBoost模型具有最佳的預(yù)測(cè)性能和處理時(shí)間組合。其他嚴(yán)格的基準(zhǔn)研究也產(chǎn)生了類似的結(jié)果。難怪XGBoost在最近的數(shù)據(jù)科學(xué)競(jìng)賽中被廣泛使用。

“如有疑問(wèn),請(qǐng)使用XGBoost”——Owen Zhang

 

所以我們應(yīng)該一直使用XGBoost嗎?

說(shuō)到機(jī)器學(xué)習(xí)(甚至是生活),沒(méi)有免費(fèi)的午餐。作為數(shù)據(jù)科學(xué)家,我們必須測(cè)試手頭數(shù)據(jù)的所有可能的算法,以確定冠軍算法。此外,選擇正確的算法是不夠的。我們還必須通過(guò)調(diào)整超參數(shù)來(lái)為數(shù)據(jù)集選擇正確的算法配置。此外,在選擇獲勝算法時(shí)還有其他一些考慮因素,例如計(jì)算復(fù)雜度、可解釋性和易于實(shí)現(xiàn)。這正是機(jī)器學(xué)習(xí)開始從科學(xué)走向藝術(shù)的起點(diǎn),但老實(shí)說(shuō),這就是奇跡發(fā)生的地方!

 

未來(lái)會(huì)怎樣?

機(jī)器學(xué)習(xí)是一個(gè)非?;钴S的研究領(lǐng)域,已經(jīng)有幾種可行的XGBoost替代方案。微軟研究院最近發(fā)布了LightGBM框架來(lái)增強(qiáng)梯度,顯示出巨大的潛力。Yandex Technology開發(fā)的CatBoost已經(jīng)取得了令人印象深刻的基準(zhǔn)測(cè)試結(jié)果。在預(yù)測(cè)性能、靈活性、可解釋性和實(shí)用性方面,我們有一個(gè)比XGBoost更好的模型框架是遲早的事。然而,直到有一個(gè)強(qiáng)大的挑戰(zhàn)者出現(xiàn),XGBoost將繼續(xù)統(tǒng)治機(jī)器學(xué)習(xí)世界! 

 

責(zé)任編輯:龐桂玉 來(lái)源: 今日頭條
相關(guān)推薦

2022-07-14 10:33:20

XGBoost機(jī)器學(xué)習(xí)

2017-09-20 15:03:42

機(jī)器學(xué)習(xí)XGBoost使用

2016-11-15 15:02:00

機(jī)器學(xué)習(xí)算法

2020-12-16 15:56:26

機(jī)器學(xué)習(xí)人工智能Python

2017-08-25 14:05:01

機(jī)器學(xué)習(xí)算法模型

2022-03-17 17:08:05

機(jī)器學(xué)習(xí)算法類型

2024-05-27 00:05:00

2021-11-06 10:53:07

機(jī)器學(xué)習(xí)機(jī)器人AI

2020-06-18 16:05:20

機(jī)器學(xué)習(xí)人工智能算法

2018-08-31 08:03:00

深度學(xué)習(xí)GBDT算法CatBoost

2017-05-23 14:00:26

機(jī)器學(xué)習(xí)編程技術(shù)計(jì)算模型

2020-10-30 10:23:14

機(jī)器學(xué)習(xí)趨勢(shì)范式

2020-11-16 11:56:57

機(jī)器學(xué)習(xí)技術(shù)工具

2020-05-26 18:35:00

機(jī)器學(xué)習(xí)人工智能AI

2022-05-11 15:20:31

機(jī)器學(xué)習(xí)算法預(yù)測(cè)

2019-06-06 08:52:00

2024-05-23 16:48:42

機(jī)器學(xué)習(xí)算法人工智能

2020-07-13 14:50:51

機(jī)器學(xué)習(xí)模型算法

2014-06-17 09:55:24

機(jī)器學(xué)習(xí)

2019-03-20 07:50:47

機(jī)器學(xué)習(xí)算法線性回歸
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)