1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        XGBoost 2.0重大更新來了!

        共 6850字,需瀏覽 14分鐘

         ·

        2023-11-09 01:27

         Datawhale干貨 

        算法:XGBoost,來源:尤而小屋

        XGBoost是處理不同類型表格數(shù)據(jù)的最著名的算法,LightGBM 和Catboost也是為了修改他的缺陷而發(fā)布的。近日XGBoost發(fā)布了新的2.0版,本文除了介紹讓XGBoost的完整歷史以外,還將介紹新機(jī)制和更新。

        這是一篇很長的文章,因?yàn)槲覀兪紫葟奶荻仍鰪?qiáng)決策樹開始。

        基于樹的方法,如決策樹、隨機(jī)森林以及擴(kuò)展后的XGBoost,在處理表格數(shù)據(jù)方面表現(xiàn)出色,這是因?yàn)樗鼈兊膶哟谓Y(jié)構(gòu)天生就善于對(duì)表格格式中常見的分層關(guān)系進(jìn)行建模。它們在自動(dòng)檢測和整合特征之間復(fù)雜的非線性相互作用方面特別有效。另外這些算法對(duì)輸入特征的規(guī)模具有健壯性,使它們能夠在不需要規(guī)范化的情況下在原始數(shù)據(jù)集上表現(xiàn)良好。

        最終要的一點(diǎn)是它們提供了原生處理分類變量的優(yōu)勢,繞過了對(duì)one-hot編碼等預(yù)處理技術(shù)的需要,盡管XGBoost通常還是需要數(shù)字編碼。

        另外還有一點(diǎn)是基于樹的模型可以輕松地可視化和解釋,這進(jìn)一步增加了吸引力,特別是在理解表格數(shù)據(jù)結(jié)構(gòu)時(shí)。通過利用這些固有的優(yōu)勢,基于樹的方法——尤其是像XGBoost這樣的高級(jí)方法——非常適合處理數(shù)據(jù)科學(xué)中的各種挑戰(zhàn),特別是在處理表格數(shù)據(jù)時(shí)。


        決策樹

        在更嚴(yán)格的數(shù)學(xué)語言中,決策樹表示一個(gè)函數(shù)T:X→Y,其中X是特征空間,Y可以是連續(xù)值(在回歸的情況下)或類標(biāo)簽(在分類的情況下)。我們可以將數(shù)據(jù)分布表示為D和真函數(shù)f:X→Y。決策樹的目標(biāo)是找到與f(x)非常接近的T(x),理想情況下是在概率分布D上。

        損失函數(shù)

        與樹T相關(guān)的風(fēng)險(xiǎn)R相對(duì)于f表示為T(x)和f(x)之間的損失函數(shù)的期望值:


        構(gòu)建決策樹的主要目標(biāo)是構(gòu)建一個(gè)能夠很好地泛化到新的、看不見的數(shù)據(jù)的模型。在理想情況下,我們知道數(shù)據(jù)的真實(shí)分布D,可以直接計(jì)算任何候選決策樹的風(fēng)險(xiǎn)或預(yù)期損失。但是在實(shí)踐中真實(shí)的分布是未知的。

        所以我們依賴于可用數(shù)據(jù)的子集來做出決策。這就是啟發(fā)式方法的概念出現(xiàn)的地方。

        基尼系數(shù)

        基尼指數(shù)是一種雜質(zhì)度量,用于量化給定節(jié)點(diǎn)中類別的混合程度。給定節(jié)點(diǎn)t的基尼指數(shù)G的公式為:

        式中p_i為節(jié)點(diǎn)t中屬于第i類樣本的比例,c為類的個(gè)數(shù)。

        基尼指數(shù)的范圍從0到0.5,其中較低的值意味著節(jié)點(diǎn)更純粹(即主要包含來自一個(gè)類別的樣本)。

        基尼指數(shù)還是信息增益?

        基尼指數(shù)(Gini Index)和信息增益(Information Gain)都是量化區(qū)分不同階層的特征的“有用性”的指標(biāo)。從本質(zhì)上講,它們提供了一種評(píng)估功能將數(shù)據(jù)劃分為類的效果的方法。通過選擇雜質(zhì)減少最多的特征(最低的基尼指數(shù)或最高的信息增益),就可以做出一個(gè)啟發(fā)式?jīng)Q策,這是樹生長這一步的最佳局部選擇。

        過擬合和修剪

        決策樹也會(huì)過度擬合,尤其是當(dāng)它們很深的時(shí)候,會(huì)捕獲數(shù)據(jù)中的噪聲。有兩個(gè)主要策略可以解決這個(gè)問題:

        1. 分割:隨著樹的增長,持續(xù)監(jiān)控它在驗(yàn)證數(shù)據(jù)集上的性能。如果性能開始下降,這是停止生長樹的信號(hào)。
        2. 后修剪:在樹完全生長后,修剪不能提供太多預(yù)測能力的節(jié)點(diǎn)。這通常是通過刪除節(jié)點(diǎn)并檢查它是否會(huì)降低驗(yàn)證準(zhǔn)確性來完成的。如果不是則修剪節(jié)點(diǎn)。

        找不到最優(yōu)風(fēng)險(xiǎn)最小化的樹,是因?yàn)槲覀儾恢勒鎸?shí)的數(shù)據(jù)分布d。所以只能使用啟發(fā)式方法,如基尼指數(shù)或信息增益,根據(jù)可用數(shù)據(jù)局部優(yōu)化樹,而謹(jǐn)慎分割和修剪等技術(shù)有助于管理模型的復(fù)雜性,避免過擬合。

        隨機(jī)森林

        隨機(jī)森林是決策樹T_1, T_2, ....的集合, T_n,其中每個(gè)決策樹T_i:X→Y將輸入特征空間X映射到輸出Y,輸出Y可以是連續(xù)值(回歸)或類標(biāo)簽(分類)。

        隨機(jī)森林集合定義了一個(gè)新函數(shù)R:X→Y,它對(duì)所有單個(gè)樹的輸出進(jìn)行多數(shù)投票(分類)或平均(回歸),數(shù)學(xué)上表示為:

        與決策樹一樣,隨機(jī)森林也旨在近似概率分布D上的真實(shí)函數(shù)f:X→Y。D在實(shí)踐中通常是未知的,因此有必要使用啟發(fā)式方法來構(gòu)建單個(gè)樹。

        與隨機(jī)森林相關(guān)的相對(duì)于f的風(fēng)險(xiǎn)R_RF是R(x)和f(x)之間損失函數(shù)的期望值??紤]到R是T的集合,風(fēng)險(xiǎn)通常低于與單個(gè)樹相關(guān)的風(fēng)險(xiǎn),這有助于泛化:


        過擬合和Bagging

        與單一決策樹相比,隨機(jī)森林不太容易過度擬合,這要?dú)w功于Bagging和特征隨機(jī)化,這在樹之間創(chuàng)造了多樣性。風(fēng)險(xiǎn)在多棵樹上平均,使模型對(duì)數(shù)據(jù)中的噪聲更有彈性。

        隨機(jī)森林中的Bagging實(shí)現(xiàn)了多個(gè)目標(biāo):它通過在不同的樹上平均預(yù)測來減少過擬合,每棵樹都在不同的自舉樣本上訓(xùn)練,從而使模型對(duì)數(shù)據(jù)中的噪聲和波動(dòng)更具彈性。這也減少了方差可以得到更穩(wěn)定和準(zhǔn)確的預(yù)測。樹的集合可以捕獲數(shù)據(jù)的不同方面,提高了模型對(duì)未見數(shù)據(jù)的泛化。并且還可以提供更高的健壯性,因?yàn)閬碜云渌麡涞恼_預(yù)測通常會(huì)抵消來自單個(gè)樹的錯(cuò)誤。該技術(shù)可以增強(qiáng)不平衡數(shù)據(jù)集中少數(shù)類的表示,使集成更適合此類挑戰(zhàn)。

        隨機(jī)森林它在單個(gè)樹級(jí)別采用啟發(fā)式方法,但通過集成學(xué)習(xí)減輕了一些限制,從而在擬合和泛化之間提供了平衡。Bagging和特征隨機(jī)化等技術(shù)進(jìn)一步降低了風(fēng)險(xiǎn),提高了模型的健壯性。

        梯度增強(qiáng)決策樹

        梯度增強(qiáng)決策樹(GBDT)也是一種集成方法,它通過迭代地增加決策樹來構(gòu)建一個(gè)強(qiáng)預(yù)測模型,每棵新樹旨在糾正現(xiàn)有集成的錯(cuò)誤。在數(shù)學(xué)上,GBDT也表示一個(gè)函數(shù)T:X→Y,但它不是找到一個(gè)單一的T(X),而是形成一個(gè)弱學(xué)習(xí)器t_1(X), t_2(X),…的序列,它們共同工作以近似真實(shí)函數(shù)f(X)。與隨機(jī)森林(Random Forest)通過Bagging獨(dú)立構(gòu)建樹不同,GBDT在序列中構(gòu)建樹,使用梯度下降最小化預(yù)測值和真實(shí)值之間的差異,通常通過損失函數(shù)表示。

        在GBDT中,在構(gòu)建每棵樹并進(jìn)行預(yù)測之后,計(jì)算預(yù)測值與實(shí)際值之間的殘差(或誤差)。這些殘差本質(zhì)上是梯度的一種形式——表明損失函數(shù)是如何隨其參數(shù)變化的。然后一個(gè)新的樹適合這些殘差,而不是原始的結(jié)果變量,有效地采取“步驟”,利用梯度信息最小化損失函數(shù)。這個(gè)過程是重復(fù)的,迭代地改進(jìn)模型。

        “梯度”一詞意味著使用梯度下降優(yōu)化來指導(dǎo)樹的順序構(gòu)建,旨在不斷最小化損失函數(shù),從而使模型更具預(yù)測性。

        為什么它比決策樹和隨機(jī)森林更好?

        1. 減少過擬合:與隨機(jī)森林一樣,GBDT也避免過擬合,但它是通過構(gòu)建淺樹(弱學(xué)習(xí)器)和優(yōu)化損失函數(shù)來實(shí)現(xiàn)的,而不是通過平均或投票。
        2. 高效率:GBDT專注于難以分類的實(shí)例,更多地適應(yīng)數(shù)據(jù)集的問題區(qū)域。這可以使它在分類性能方面比隨機(jī)森林更有效,因?yàn)殡S機(jī)森林對(duì)所有實(shí)例都一視同仁。
        3. 優(yōu)化損失函數(shù):與啟發(fā)式方法(如基尼指數(shù)或信息增益)不同,GBDT中的損失函數(shù)在訓(xùn)練期間進(jìn)行了優(yōu)化,允許更精確地?cái)M合數(shù)據(jù)。
        4. 更好的性能:當(dāng)選擇正確的超參數(shù)時(shí),GBDT通常優(yōu)于隨機(jī)森林,特別是在需要非常精確的模型并且計(jì)算成本不是主要關(guān)注點(diǎn)的情況下。
        5. 靈活性:GBDT既可以用于分類任務(wù),也可以用于回歸任務(wù),而且它更容易優(yōu)化,因?yàn)槟梢灾苯幼钚』瘬p失函數(shù)。

        梯度增強(qiáng)決策樹解決的問題

        單個(gè)樹的高偏差:GBDT通過迭代修正單個(gè)樹的誤差,可以獲得比單個(gè)樹更高的性能。

        模型復(fù)雜性:隨機(jī)森林旨在減少模型方差,而GBDT在偏差和方差之間提供了一個(gè)很好的平衡,通常可以獲得更好的整體性能。

        梯度增強(qiáng)決策樹比決策樹和隨機(jī)森林具有性能、適應(yīng)性和優(yōu)化方面的優(yōu)勢。當(dāng)需要較高的預(yù)測準(zhǔn)確性并愿意花費(fèi)計(jì)算資源來微調(diào)模型時(shí),它們特別有用。

        XGBoost

        在關(guān)于基于樹的集成方法的討論中,焦點(diǎn)經(jīng)常落在標(biāo)準(zhǔn)的優(yōu)點(diǎn)上:對(duì)異常值的健壯性、易于解釋等等。但是XGBoost還有其他特性,使其與眾不同,并在許多場景中具有優(yōu)勢。

        計(jì)算效率

        通常,圍繞XGBoost的討論都集中在它的預(yù)測能力上。不常被強(qiáng)調(diào)的是它的計(jì)算效率,特別是在并行和分布式計(jì)算方面。該算法利用特征和數(shù)據(jù)點(diǎn)來并行化樹結(jié)構(gòu),使其能夠處理更大的數(shù)據(jù)集,并且比傳統(tǒng)實(shí)現(xiàn)運(yùn)行得更快。

        缺失數(shù)據(jù)的處理

        XGBoost采用了一種獨(dú)特的方法來處理缺失值。與其他通常需要單獨(dú)預(yù)處理步驟的模型不同,XGBoost可以在內(nèi)部處理丟失的數(shù)據(jù)。在訓(xùn)練過程中,算法為缺失值找到最佳的imputation值(或在樹結(jié)構(gòu)中移動(dòng)的方向),然后將其存儲(chǔ)以供將來預(yù)測。這意味著XGBoost處理丟失數(shù)據(jù)的方法是自適應(yīng)的,可以因節(jié)點(diǎn)而異,從而提供對(duì)這些值的更細(xì)致的處理。

        正則化

        雖然增強(qiáng)算法天生就容易過度擬合,特別是對(duì)于有噪聲的數(shù)據(jù),但XGBoost在訓(xùn)練過程中直接將L1 (Lasso)和L2 (Ridge)正則化合并到目標(biāo)函數(shù)中。這種方法提供了一種額外的機(jī)制來約束單個(gè)樹的復(fù)雜性,而不是簡單地限制它們的深度,從而提高泛化。

        稀疏性

        XGBoost設(shè)計(jì)用于高效地處理稀疏數(shù)據(jù),而不僅僅是密集矩陣。在使用詞袋或TF-IDF表示的自然語言處理等領(lǐng)域,特征矩陣的稀疏性可能是一個(gè)重大的計(jì)算挑戰(zhàn)。XGBoost利用壓縮的內(nèi)存高效數(shù)據(jù)結(jié)構(gòu),其算法被設(shè)計(jì)為有效地遍歷稀疏矩陣。

        硬件的優(yōu)化

        雖然很少被討論,但硬件優(yōu)化是XGBoost的一個(gè)亮點(diǎn)。它對(duì)CPU上的內(nèi)存效率和計(jì)算速度進(jìn)行了優(yōu)化,并支持GPU上的訓(xùn)練模型,進(jìn)一步加快了訓(xùn)練過程。

        特征重要性和模型可解釋性

        大多數(shù)集成方法提供特征重要性度量,包括隨機(jī)森林和標(biāo)準(zhǔn)梯度增強(qiáng)。但是XGBoost提供了一套更全面的特性重要性度量,包括增益、頻率和覆蓋范圍,從而允許對(duì)模型進(jìn)行更詳細(xì)的解釋。當(dāng)需要了解哪些特征是重要的,以及它們?nèi)绾螌?duì)預(yù)測做出貢獻(xiàn)時(shí),這一點(diǎn)非常重要。

        早停策略

        另一個(gè)未被討論的特性是提前停止。謹(jǐn)慎分割和修剪等技術(shù)用于防止過擬合,而XGBoost提供了一種更自動(dòng)化的方法。一旦模型的性能在驗(yàn)證數(shù)據(jù)集上停止改進(jìn),訓(xùn)練過程就可以停止,從而節(jié)省了計(jì)算資源和時(shí)間。

        處理分類變量

        雖然基于樹的算法可以很好地處理分類變量,但是XGBoost采用了一種獨(dú)特的方法。不需要獨(dú)熱編碼或順序編碼,可以讓分類變量保持原樣。XGBoost對(duì)分類變量的處理比簡單的二進(jìn)制分割更細(xì)致,可以捕獲復(fù)雜的關(guān)系,而無需額外的預(yù)處理。

        XGBoost的獨(dú)特功能使其不僅是預(yù)測精度方面的最先進(jìn)的機(jī)器學(xué)習(xí)算法,而且是高效和可定制的算法。它能夠處理現(xiàn)實(shí)世界的數(shù)據(jù)復(fù)雜性,如缺失值、稀疏性和多重共線性,同時(shí)計(jì)算效率高,并提供詳細(xì)的可解釋性,使其成為各種數(shù)據(jù)科學(xué)任務(wù)的寶貴工具。

        XGBoost 2.0有什么新功能?

        上面是我們介紹的一些背景知識(shí),下面開始我們將介紹XGBoost 2.0提供了幾個(gè)有趣的更新,可能會(huì)影響機(jī)器學(xué)習(xí)社區(qū)和研究。

        具有矢量葉輸出的多目標(biāo)樹

        前面我們談到了XGBoost中的決策樹是如何使用二階泰勒展開來近似目標(biāo)函數(shù)的。在2.0中向具有矢量葉輸出的多目標(biāo)樹轉(zhuǎn)變。這使得模型能夠捕捉目標(biāo)之間的相關(guān)性,這一特征對(duì)于多任務(wù)學(xué)習(xí)尤其有用。它與XGBoost對(duì)正則化的強(qiáng)調(diào)一致,以防止過擬合,現(xiàn)在允許正則化跨目標(biāo)工作。

        設(shè)備參數(shù)

        XGBoost可以使用不同硬件。在2.0版本中,XGBoost簡化了設(shè)備參數(shù)設(shè)置?!癲evice”參數(shù)取代了多個(gè)與設(shè)備相關(guān)的參數(shù),如gpu_id, gpu_hist等,這使CPU和GPU之間的切換更容易。

        Hist作為默認(rèn)樹方法

        XGBoost允許不同類型的樹構(gòu)建算法。2.0版本將' hist '設(shè)置為默認(rèn)的樹方法,這可能會(huì)提高性能的一致性。這可以看作是XGBoost將基于直方圖的方法的效率提高了一倍。

        基于gpu的近似樹方法

        XGBoost的新版本還提供了使用GPU的“近似”樹方法的初始支持。這可以看作是進(jìn)一步利用硬件加速的嘗試,這與XGBoost對(duì)計(jì)算效率的關(guān)注是一致的。

        內(nèi)存和緩存優(yōu)化

        2.0通過提供一個(gè)新參數(shù)(max_cached_hist_node)來控制直方圖的CPU緩存大小,并通過用內(nèi)存映射替換文件IO邏輯來改進(jìn)外部內(nèi)存支持,從而延續(xù)了這一趨勢。

        Learning-to-Rank增強(qiáng)

        考慮到XGBoost在各種排名任務(wù)中的強(qiáng)大性能,2.0版本引入了許多特性來改進(jìn)學(xué)習(xí)排名,例如用于配對(duì)構(gòu)建的新參數(shù)和方法,支持自定義增益函數(shù)等等。

        新的分位數(shù)回歸支持

        結(jié)合分位數(shù)回歸XGBoost可以很好的適應(yīng)對(duì)不同問題域和損失函數(shù)。它還為預(yù)測中的不確定性估計(jì)增加了一個(gè)有用的工具。

        總結(jié)

        很久沒有處理表格數(shù)據(jù)了,所以一直也沒有對(duì)XGBoost有更多的關(guān)注,但是最近才發(fā)現(xiàn)發(fā)更新了2.0版本,所以感覺還是很好的。

        XGBoost 2.0版本是一個(gè)全面的更新,它繼續(xù)建立在現(xiàn)有的可伸縮性、效率和靈活性優(yōu)勢的基礎(chǔ)上,同時(shí)引入了可以為新的應(yīng)用程序和研究機(jī)會(huì)鋪平道路的功能。

        更多信息看官方更新: https://github.com/dmlc/xgboost/releases
        干貨學(xué)習(xí),點(diǎn)三連

        瀏覽 4914
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            啊啊啊好疼视频 | 国产精品久久久夜色 | 国产一级在线观看视频 | 日韩mv欧美mv国产精品 | 四虎影院永久地址 | 另类欧美色图 | 亚洲中文字幕无码久久2021 | 91偷拍网站| 探花精品在线 | 日本老妇和子乱视频在线观看 |