XGBoost算法在實際運行的過程中,可以通過以下要點進行參數調優:
(1)添加正則項:
在模型參數中添加正則項,或加大正則項的懲罰力度,即通過調整加權參數,從而避免模型出現過擬合的情況。
(2)控制決策樹的層數:
通過葉子結點數目控制決策樹的層數,視乎樣本量大小決定,對於10萬以下
的樣本,一般在1到4之間,而針對更大的樣本量,可以嘗試更深的決策樹層數
發掘隱藏在數據里的一些規律或模式。
(3)設定葉子結點包含的最少樣本數目:
從而防止出現過小的葉子結點,降低預測
(4)增加算法迭代次數:
可有效提高訓練集的預測精度,但若迭代次數過多容易造成
成過擬合
(5)通過收縮步長和列采樣的方法來避免過擬合:
收縮步長即在每一次迭代的過程中,
對擬合的殘差乘以一個收縮系數,從而限制當前迭代過程的學習步長;列
采樣即本次迭代參與優化的特征維度並不是所有的維度,而是通過采樣得到的
維度,更少的選擇會讓算法不容易將訓練集的殘差擬合得過好,從而造成過擬
合;
(6)通過交叉驗證的方法:
來確定模型參數,從而達到預測准確率與防止過擬合之
間的平衡。交叉驗證(Cross-validation)的本質思想是把在某種意義下將原始數
據進行分組,一部分做為訓練集,另一部分做為驗證集,首先用訓練集對分類
器進行訓練,再利用驗證集來測試訓練得到的模型,以此來做為評價分類器的
性能指標。常用的交叉驗證方法是K折交叉驗證,即將樣本分為K個互不相交
的子樣本,一個單獨的子樣本被保留作為驗證模型的數據,其他K-1個樣本用
來訓練。交叉驗證重復K次,每個子樣本驗證一次,平均K次的得到結果來確定最
終模型使用的參數。
