色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

XGBoost超參數調優指南

冬至子 ? 來源:Bex T. ? 作者:Bex T. ? 2023-06-15 18:15 ? 次閱讀

對于XGBoost來說,默認的超參數是可以正常運行的,但是如果你想獲得最佳的效果,那么就需要自行調整一些超參數來匹配你的數據,以下參數對于XGBoost非常重要:

  • eta
  • num_boost_round
  • max_depth
  • subsample
  • colsample_bytree
  • gamma
  • min_child_weight
  • lambda
  • alpha

XGBoost的API有2種調用方法,一種是我們常見的原生API,一種是兼容Scikit-learn API的API,Scikit-learn API與Sklearn生態系統無縫集成。我們這里只關注原生API(也就是我們最常見的),但是這里提供一個列表,這樣可以幫助你對比2個API參數,萬一以后用到了呢:

如果想使用Optuna以外的超參數調優工具,可以參考該表。下圖是這些參數對之間的相互作用:

這些關系不是固定的,但是大概情況是上圖的樣子,因為有一些其他參數可能會對我們的者10個參數有額外的影響。

1、objective

這是我們模型的訓練目標

最簡單的解釋是,這個參數指定我們模型要做的工作,也就是影響決策樹的種類和損失函數。

2、num_boost_round - n_estimators

num_boost_round指定訓練期間確定要生成的決策樹(在XGBoost中通常稱為基礎學習器)的數量。默認值是100,但對于今天的大型數據集來說,這還遠遠不夠。

增加參數可以生成更多的樹,但隨著模型變得更復雜,過度擬合的機會也會顯著增加。

從Kaggle中學到的一個技巧是為num_boost_round設置一個高數值,比如100,000,并利用早停獲得最佳版本。

在每個提升回合中,XGBoost會生成更多的決策樹來提高前一個決策樹的總體得分。這就是為什么它被稱為boost。這個過程一直持續到num_boost_round輪詢為止,不管是否比上一輪有所改進。

但是通過使用早停技術,我們可以在驗證指標沒有提高時停止訓練,不僅節省時間,還能防止過擬合

有了這個技巧,我們甚至不需要調優num_boost_round。下面是它在代碼中的樣子:

# Define the rest of the params
 params = {...}
 
 # Build the train/validation sets
 dtrain_final = xgb.DMatrix(X_train, label=y_train)
 dvalid_final = xgb.DMatrix(X_valid, label=y_valid)
 
 bst_final = xgb.train(
     params,
     dtrain_final,
     num_boost_round=100000 # Set a high number
     evals=[(dvalid_final, "validation")],
     early_stopping_rounds=50, # Enable early stopping
     verbose_eval=False,
 )

上面的代碼使XGBoost生成100k決策樹,但是由于使用了早停,當驗證分數在最后50輪中沒有提高時,它將停止。一般情況下樹的數量范圍在5000-10000即可。控制num_boost_round也是影響訓練過程運行時間的最大因素之一,因為更多的樹需要更多的資源。

3、eta - learning_rate

在每一輪中,所有現有的樹都會對給定的輸入返回一個預測。例如,五棵樹可能會返回以下對樣本N的預測:

Tree 1: 0.57    Tree 2: 0.9    Tree 3: 4.25    Tree 4: 6.4    Tree 5: 2.1

為了返回最終的預測,需要對這些輸出進行匯總,但在此之前XGBoost使用一個稱為eta或學習率的參數縮小或縮放它們。縮放后最終輸出為:

output = eta * (0.57 + 0.9 + 4.25 + 6.4 + 2.1)

大的學習率給集合中每棵樹的貢獻賦予了更大的權重,但這可能會導致過擬合/不穩定,會加快訓練時間。而較低的學習率抑制了每棵樹的貢獻,使學習過程更慢但更健壯。這種學習率參數的正則化效應對復雜和有噪聲的數據集特別有用。

學習率與num_boost_round、max_depth、subsample和colsample_bytree等其他參數呈反比關系。較低的學習率需要較高的這些參數值,反之亦然。但是一般情況下不必擔心這些參數之間的相互作用,因為我們將使用自動調優找到最佳組合。

4、subsample和colsample_bytree

子抽樣subsample它將更多的隨機性引入到訓練中,從而有助于對抗過擬合。

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

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

調整這兩個參數可以控制偏差和方差之間的權衡。使用較小的值降低了樹之間的相關性,增加了集合中的多樣性,有助于提高泛化和減少過擬合。

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

5、max_depth

最大深度max_depth控制決策樹在訓練過程中可能達到的最大層次數。

更深的樹可以捕獲特征之間更復雜的相互作用。但是更深的樹也有更高的過擬合風險,因為它們可以記住訓練數據中的噪聲或不相關的模式。為了控制這種復雜性,可以限制max_depth,從而生成更淺、更簡單的樹,并捕獲更通用的模式。

Max_depth數值可以很好地平衡了復雜性和泛化。

6、7、alpha,lambda

這兩個參數一起說是因為alpha (L1)和lambda (L2)是兩個幫助過擬合的正則化參數。

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

alpha和lambda的效果可能受到max_depth、subsample和colsample_bytree等其他參數的影響。更高的alpha或lambda值可能需要調整其他參數來補償增加的正則化。例如,較高的alpha值可能受益于較大的subsample值,因為這樣可以保持模型多樣性并防止欠擬合。

8、gamma

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

在樹的葉節點上進行進一步分區所需的最小損失減少。

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

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

為了證明通過拆分葉節點向樹中添加更多層是合理的,XGBoost應該計算出該操作能夠顯著降低損失函數。

但“顯著是多少呢?”這就是gamma——它作為一個閾值來決定一個葉節點是否應該進一步分割。

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

所以調優的目標是找到導致損失函數最大減少的最佳分割,這意味著改進的模型性能。

9、min_child_weight

XGBoost從具有單個根節點的單個決策樹開始初始訓練過程。該節點包含所有訓練實例(行)。然后隨著 XGBoost 選擇潛在的特征和分割標準最大程度地減少損失,更深的節點將包含越來越少的實例。

如果讓XGBoost任意運行,樹可能會長到最后節點中只有幾個無關緊要的實例。這種情況是非常不可取的,因為這正是過度擬合的定義。

所以XGBoost為每個節點中繼續分割的最小實例數設置一個閾值。通過對節點中的所有實例進行加權,并找到權重的總和,如果這個最終權重小于min_child_weight,則分裂停止,節點成為葉節點。

上面解釋是對整個過程的最簡化的版本,因為我們主要介紹他的概念。

總結

以上就是我們對這 10個重要的超參數的解釋,如果你想更深入的了解仍有很多東西需要學習。所以建議給ChatGPT以下兩個提示:

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.

它肯定比我講的明白,對吧。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    0

    文章

    24

    瀏覽量

    3274
  • XGBoost
    +關注

    關注

    0

    文章

    9

    瀏覽量

    2221
  • ChatGPT
    +關注

    關注

    29

    文章

    1562

    瀏覽量

    7701
收藏 人收藏

    評論

    相關推薦

    KeenTune的算法之心——KeenOpt 調算法框架 | 龍蜥技術

    神經網絡參數調算法。這些調算法從貝葉斯優化和遺傳算法出發,凝聚了豐富多彩的
    發表于 10-28 10:36

    如何對電機進行調調的好處是什么?

    如何自動對電機進行調
    的頭像 發表于 08-22 00:03 ?3140次閱讀

    機器學習的參數調方法

    對于很多算法工程師來說,參數調是件非常頭疼的事,這項工作比較玄學。除了根據經驗設定所謂的“合理值”之外,一般很難找到合理的方法去尋找
    的頭像 發表于 05-03 12:24 ?2725次閱讀

    基于遺傳算法和隨機森林的XGBoost改進方法

    ( Genetic Algorithm,GA)良好的搜索能力和靈活性,以交叉驗證平均得分為目標函數值,對 Gboost算法和隨機森林算法(Raηdoπ Forest,RF)的參數進行調,選出較好的
    發表于 04-26 15:44 ?10次下載
    基于遺傳算法和隨機森林的<b class='flag-5'>XGBoost</b>改進方法

    詳細解釋XGBoost中十個最常用參數

    對于XGBoost來說,默認的參數是可以正常運行的,但是如果你想獲得最佳的效果,那么就需要自行調整一些參數來匹配你的數據
    的頭像 發表于 06-19 17:31 ?1478次閱讀
    詳細解釋<b class='flag-5'>XGBoost</b>中十個最常用<b class='flag-5'>超</b><b class='flag-5'>參數</b>

    機器學習4個參數調方法

    最好的參數。ML模型的性能與參數直接相關。參數調
    發表于 08-24 09:40 ?2948次閱讀
    機器學習4個<b class='flag-5'>超</b><b class='flag-5'>參數</b><b class='flag-5'>調</b><b class='flag-5'>優</b>方法

    jvm調參數

    JVM(Java虛擬機)是Java程序的運行環境,它負責解釋Java字節碼并執行相應的指令。為了提高應用程序的性能和穩定性,我們可以調JVM的參數。 JVM調
    的頭像 發表于 12-05 11:29 ?638次閱讀

    jvm參數的設置和jvm調

    JVM(Java虛擬機)參數的設置和調對于提高Java應用程序的性能和穩定性非常重要。在本文中,我們將詳細介紹JVM參數的設置和調
    的頭像 發表于 12-05 11:36 ?1572次閱讀

    jvm調主要是調哪里

    ,棧內存存儲方法調用和局部變量,非堆內存用于存儲加載的類信息以及一些靜態變量等。 1.1 堆內存調 堆內存是JVM中最主要的內存區域,常見的調
    的頭像 發表于 12-05 11:37 ?1571次閱讀

    深度解析JVM調實踐應用

    Tomcat自身的調是針對conf/server.xml中的幾個參數調設置。首先是對這幾個參數
    的頭像 發表于 04-01 10:24 ?473次閱讀
    深度解析JVM<b class='flag-5'>調</b><b class='flag-5'>優</b>實踐應用

    AM6xA ISP調指南

    電子發燒友網站提供《AM6xA ISP調指南.pdf》資料免費下載
    發表于 09-07 09:52 ?0次下載
    AM6xA ISP<b class='flag-5'>調</b><b class='flag-5'>優</b><b class='flag-5'>指南</b>

    TAS58xx系列通用調指南

    電子發燒友網站提供《TAS58xx系列通用調指南.pdf》資料免費下載
    發表于 09-14 10:49 ?0次下載
    TAS58xx系列通用<b class='flag-5'>調</b><b class='flag-5'>優</b><b class='flag-5'>指南</b>

    MCT8315A調指南

    電子發燒友網站提供《MCT8315A調指南.pdf》資料免費下載
    發表于 11-12 14:14 ?0次下載
    MCT8315A<b class='flag-5'>調</b><b class='flag-5'>優</b><b class='flag-5'>指南</b>

    MCT8316A調指南

    電子發燒友網站提供《MCT8316A調指南.pdf》資料免費下載
    發表于 11-13 13:49 ?0次下載
    MCT8316A<b class='flag-5'>調</b><b class='flag-5'>優</b><b class='flag-5'>指南</b>

    MCF8316A調指南

    電子發燒友網站提供《MCF8316A調指南.pdf》資料免費下載
    發表于 11-20 17:21 ?0次下載
    MCF8316A<b class='flag-5'>調</b><b class='flag-5'>優</b><b class='flag-5'>指南</b>
    主站蜘蛛池模板: 亚洲无吗精品AV九九久久| 热久久伊大人香蕉网老师| 国产白丝JK被疯狂输出视频| 2021国产精品久久久久精品免费网 | 扒开女人下面使劲桶视频| 中文中幕无码亚洲视频| 一区二区不卡在线视频| 亚洲伊人色| 夜色帮首页| 中文在线观看| 8090碰成年女人免费碰碰尤物| 中国女人内谢69xxxxxx直播| 影音先锋男人资源813.| 中文字幕一区二区三区在线观看| 在线观看视频中文字幕| 18亚洲男同gay1069| 99国产在线观看| yy8090理论三级在线看| 大香交伊人| 国产免费久久精品国产传媒| 国产亚洲精品香蕉视频播放| 狠狠撸亚洲视频| 久热久热精品在线观看| 免费麻豆国产黄网站在线观看| 欧美激情精品久久久久久不卡| 日本888xxxx| 神马影院午夜伦理限级| 亚洲国产精品天堂在线播放| 国产精品视频在线自在线| 国产精品久久久久久久久免费下载| 国产乱人伦AV麻豆网| 饥渴的新婚女教师| 久久热r在线视频精品| 伦理片97影视网| 青青草国产偷拍在线av| 视频专区亚洲欧美日韩| 亚洲精品AV无码喷奶水糖心| 在线电台收听| AV无码九九久久| 国产成人综合在线视频| 回复术士勇者免费观看全集|