當前位置: 首頁>>機器學習>>正文


XGBoost調參注意事項

機器學習中參數調整是門藝術,模型的最佳參數可能取決於許多場景,所以很難為此做一個全麵的指導。本文嘗試為xgboost中的參數調整提供一些說明。

xgboost

了解偏差-方差權衡(Bias-Variance Tradeoff)

在機器學習或統計課程中,偏差方差權衡可能是最重要的概念之一。當我們允許模型變得更加複雜(例如,更大的深度)時,模型具有更好的適應訓練數據的能力,從而使模型偏差較小。然而,這種複雜的模型需要更多的數據來做訓練。

xgboost中的大多數參數是關於偏差方差權衡的。最好的模型應該在模型的複雜性及模型的預測能力上做細致的權衡(注:模型的複雜度越高,對訓練數據的擬合能力就越強,其泛化或者預測能力可能就越差)。

[xgboost參數文檔]介紹了每個參數對模型造成的影響,可以幫助您在複雜的模型和簡單的模型之間自由調整。

控製過擬合

當您觀察到較高的訓練準確率,但測試精度較低時,很可能遇到了過擬合問題。

通常可以通過兩種方式來控製xgboost中的過擬合

  • 第一種方式是直接控製模型的複雜性
    • 這包括max_depthmin_child_weightgamma
  • 第二種方法是增加隨機性,使訓練對噪聲更加魯棒
    • 這包括subsamplecolsample_bytree
    • 你還可以減少步驟eta,但是當你這樣做時,需要記住增加num_round

處理不平衡數據集

對於常見情況,例如廣告點擊日誌,數據集非常不平衡。這會影響xgboost模式的訓練,有兩種方法可以改進。

  • 如果你隻關心您的預測的排名順序(AUC)
    • 通過scale_pos_weight平衡正負權重
    • 使用AUC進行評估
  • 如果你關心預測正確的概率
    • 在這種情況下,您無法重新平衡數據集
    • 在這種情況下,將參數max_delta_step設置為有限數量(例如1)將有助於收斂

英文版:http://xgboost.readthedocs.io/en/latest/how_to/param_tuning.html

本文由《純淨天空》出品。文章地址: https://vimsky.com/zh-tw/article/3363.html,未經允許,請勿轉載。