博客專欄

        EEPW首頁(yè) > 博客 > XGBoost超參數(shù)調(diào)優(yōu)指南(2)

        XGBoost超參數(shù)調(diào)優(yōu)指南(2)

        發(fā)布人:數(shù)據(jù)派THU 時(shí)間:2023-06-23 來源:工程師 發(fā)布文章
        4、subsample和colsample_bytree


        子抽樣subsample它將更多的隨機(jī)性引入到訓(xùn)練中,從而有助于對(duì)抗過擬合。


        Subsample =0.7意味著集合中的每個(gè)決策樹將在隨機(jī)選擇的70%可用數(shù)據(jù)上進(jìn)行訓(xùn)練。值1.0表示將使用所有行(不進(jìn)行子抽樣)。


        與subsample類似,也有colsample_bytree。顧名思義,colsample_bytree控制每個(gè)決策樹將使用的特征的比例。Colsample_bytree =0.8使每個(gè)樹使用每個(gè)樹中隨機(jī)80%的可用特征(列)。


        調(diào)整這兩個(gè)參數(shù)可以控制偏差和方差之間的權(quán)衡。使用較小的值降低了樹之間的相關(guān)性,增加了集合中的多樣性,有助于提高泛化和減少過擬合。


        但是它們可能會(huì)引入更多的噪聲,增加模型的偏差。而使用較大的值會(huì)增加樹之間的相關(guān)性,降低多樣性并可能導(dǎo)致過擬合。


        5、max_depth


        最大深度max_depth控制決策樹在訓(xùn)練過程中可能達(dá)到的最大層次數(shù)。


        圖片


        更深的樹可以捕獲特征之間更復(fù)雜的相互作用。但是更深的樹也有更高的過擬合風(fēng)險(xiǎn),因?yàn)樗鼈兛梢杂涀∮?xùn)練數(shù)據(jù)中的噪聲或不相關(guān)的模式。為了控制這種復(fù)雜性,可以限制max_depth,從而生成更淺、更簡(jiǎn)單的樹,并捕獲更通用的模式。


        Max_depth數(shù)值可以很好地平衡了復(fù)雜性和泛化。


        6、7、alpha,lambda


        這兩個(gè)參數(shù)一起說是因?yàn)閍lpha (L1)和lambda (L2)是兩個(gè)幫助過擬合的正則化參數(shù)。


        與其他正則化參數(shù)的區(qū)別在于,它們可以將不重要或不重要的特征的權(quán)重縮小到0(特別是alpha),從而獲得具有更少特征的模型,從而降低復(fù)雜性。


        alpha和lambda的效果可能受到max_depth、subsample和colsample_bytree等其他參數(shù)的影響。更高的alpha或lambda值可能需要調(diào)整其他參數(shù)來補(bǔ)償增加的正則化。例如,較高的alpha值可能受益于較大的subsample值,因?yàn)檫@樣可以保持模型多樣性并防止欠擬合。


        8、gamma


        如果你讀過XGBoost文檔,它說gamma是:


        在樹的葉節(jié)點(diǎn)上進(jìn)行進(jìn)一步分區(qū)所需的最小損失減少。


        英文原文:the minimum loss reduction required to make a further partition on a leaf node of the tree.


        我覺得除了寫這句話的人,其他人都看不懂。讓我們看看它到底是什么,下面是一個(gè)兩層決策樹:


        圖片


        為了證明通過拆分葉節(jié)點(diǎn)向樹中添加更多層是合理的,XGBoost應(yīng)該計(jì)算出該操作能夠顯著降低損失函數(shù)。


        但“顯著是多少呢?”這就是gamma——它作為一個(gè)閾值來決定一個(gè)葉節(jié)點(diǎn)是否應(yīng)該進(jìn)一步分割。


        如果損失函數(shù)的減少(通常稱為增益)在潛在分裂后小于選擇的伽馬,則不執(zhí)行分裂。這意味著葉節(jié)點(diǎn)將保持不變,并且樹不會(huì)從該點(diǎn)開始生長(zhǎng)。


        所以調(diào)優(yōu)的目標(biāo)是找到導(dǎo)致?lián)p失函數(shù)最大減少的最佳分割,這意味著改進(jìn)的模型性能。


        9、min_child_weight


        XGBoost從具有單個(gè)根節(jié)點(diǎn)的單個(gè)決策樹開始初始訓(xùn)練過程。該節(jié)點(diǎn)包含所有訓(xùn)練實(shí)例(行)。然后隨著 XGBoost 選擇潛在的特征和分割標(biāo)準(zhǔn)最大程度地減少損失,更深的節(jié)點(diǎn)將包含越來越少的實(shí)例。


        圖片


        如果讓XGBoost任意運(yùn)行,樹可能會(huì)長(zhǎng)到最后節(jié)點(diǎn)中只有幾個(gè)無(wú)關(guān)緊要的實(shí)例。這種情況是非常不可取的,因?yàn)檫@正是過度擬合的定義。


        所以XGBoost為每個(gè)節(jié)點(diǎn)中繼續(xù)分割的最小實(shí)例數(shù)設(shè)置一個(gè)閾值。通過對(duì)節(jié)點(diǎn)中的所有實(shí)例進(jìn)行加權(quán),并找到權(quán)重的總和,如果這個(gè)最終權(quán)重小于min_child_weight,則分裂停止,節(jié)點(diǎn)成為葉節(jié)點(diǎn)。


        上面解釋是對(duì)整個(gè)過程的最簡(jiǎn)化的版本,因?yàn)槲覀冎饕榻B他的概念。


        總結(jié)


        以上就是我們對(duì)這 10個(gè)重要的超參數(shù)的解釋,如果你想更深入的了解仍有很多東西需要學(xué)習(xí)。所以建議給ChatGPT以下兩個(gè)提示:


        1) Explain the {parameter_name} XGBoost parameter in detail and how to choose values for it wisely.
         
        2) Describe how {parameter_name} fits into the step-by-step tree-building process of XGBoost.

        它肯定比我講的明白,對(duì)吧。


        最后如果你也用optuna進(jìn)行調(diào)優(yōu),請(qǐng)參考以下的GIST:


        https://gist.github.com/BexTuychiev/823df08d2e3760538e9b931d38439a68


        *博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



        關(guān)鍵詞: AI

        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 调兵山市| 蒲城县| 镇巴县| 丘北县| 瑞丽市| 布拖县| 塘沽区| 吉隆县| 大连市| 衡阳市| 华蓥市| 富民县| 凤冈县| 天台县| 双桥区| 滨州市| 成都市| 岳阳县| 嘉荫县| 南汇区| 临泽县| 卫辉市| 将乐县| 台南市| 汝阳县| 鞍山市| 元谋县| 吉林省| 莎车县| 东源县| 龙井市| 儋州市| 徐汇区| 那坡县| 宽城| 娄烦县| 正阳县| 石柱| 科尔| 贡嘎县| 勐海县|