博客專欄

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

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

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


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


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


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


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


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


5、max_depth


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


圖片


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


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


6、7、alpha,lambda


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


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


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


8、gamma


如果你讀過(guò)XGBoost文檔,它說(shuō)gamma是:


在樹(shù)的葉節(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.


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


圖片


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


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


如果損失函數(shù)的減少(通常稱為增益)在潛在分裂后小于選擇的伽馬,則不執(zhí)行分裂。這意味著葉節(jié)點(diǎn)將保持不變,并且樹(shù)不會(huì)從該點(diǎn)開(kāi)始生長(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è)決策樹(shù)開(kāi)始初始訓(xùn)練過(guò)程。該節(jié)點(diǎn)包含所有訓(xùn)練實(shí)例(行)。然后隨著 XGBoost 選擇潛在的特征和分割標(biāo)準(zhǔn)最大程度地減少損失,更深的節(jié)點(diǎn)將包含越來(lái)越少的實(shí)例。


圖片


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


所以XGBoost為每個(gè)節(jié)點(diǎn)中繼續(xù)分割的最小實(shí)例數(shù)設(shè)置一個(gè)閾值。通過(guò)對(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è)過(guò)程的最簡(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)閉