XGBoost簡易調參指南

本文爲kaggle上一位選手分享的xgboost調參經驗的翻譯。方便對xgboost模型參數的快速調試。

原文:https://www.kaggle.com/c/bnp-paribas-cardif-claims-management/forums/t/19083/best-practices-for-parameter-tuning-on-models

數據的劃分:一般從訓練集裏劃分20%作爲驗證集,簡易的調參不做交叉驗證,因爲交叉驗證實在是耗費時間。

模型參數的初始化:

  • 模型類型:根據問題(二分類,多分類,迴歸等)選擇合適的模型類型
  • 初始參數:eta= 0.1, depth= 10, subsample=1.0, min_child_weight = 5, col_sample_bytree = 0.2(depends on feature size)
  • nround:xgboost的輪數,直接設置爲10000,若error開始不斷變高(或auc不斷變低),直接中斷程序運行即可
調參
1)先調整depth,一般depth與其他參數關聯性不大,故第一個調整。首先將其初始化爲10,訓練模型觀察最優結果。再將其調整爲8,若效果變差則調整爲12。用這種方法逐步接近最好的參數。
2)然後調整subsample,初始化爲1,觀察結果。調整爲0.8,若變好則繼續下調一點看看,否則則改回0.9。若0.9的效果還不好則改回1
3)用與depth相同的方法調整min_child_weight
4)然後調整col_sample_bytree
5)最後將eta設置爲0.05(或者更低一點),訓練模型並觀察,記錄最優的訓練輪數(num_round)——即錯誤率開始從不斷下降轉爲不斷上升的時候

通過這幾個步驟可以粗略的確定一個比較好的參數組合(不一定是最好的參數組合),這個方法實際上算是一種貪心的策略吧
發佈了33 篇原創文章 · 獲贊 225 · 訪問量 50萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章