XGBoost 的設置有三種參數:一般參數,提升參數和學習參數。
一般參數 取決於提升器,通常是樹或線性模型
提升參數 取決於選擇的提升器的相關參數
學習參數 取決於指定學習任務和相應的學習目標
一般參數 (general parameters)
booster:選擇提升器,默認是 tree
silent:是否打印信息,默認是 0 不打印
nthread:線程數,默認為最大可用線程數
num_pbuffer:緩沖區大小,默認為訓練實例的數量
num_feature:特征緯度,默認為特征的最高緯度
提升參數 (booster parameters)
eta:學習率,范圍 [0, 1],默認為 0.3。該參數越小,計算速度越慢;該參數越大,有可能無法收斂
gamma:控制葉子個數的參數,范圍 [0, +∞),默認為 0。該參數越大,越不容易過擬合
max_depth:每顆樹的最大深度,范圍 [0, +∞),默認為 6。該參數越大,越容易過擬合
min_child_weight:每個葉子里面的最小權重和,范圍 [0, +∞),默認為 1。該參數越大,越不容易過擬合
subsample:樣本采樣比率,范圍 (0, 1],默認為 1。如果取 0.5 代表隨機用 50% 的樣本集用來訓練
colsample_bytree:列采樣比率,范圍 (0, 1],默認為 1。對每棵樹的生成用的特征進行列采樣,類似於隨機森林的列采樣
lambda:L2 正則化參數,范圍 [0, +∞),默認為 1。該參數越大,越不容易過擬合。
alpha:L1 正則化參數,范圍 [0, +∞),默認為 0。該參數越大,越不容易過擬合。
scale_pos_weight:控制正反類的平衡參數,范圍 [0, +∞),默認為 1。該參數通常設為“反類的總和/正類的總和”
學習參數 (learning parameters)
objective:損失函數,默認為 linear。其他常見類型有:
reg:logistic – 二分類
binary:logistic – 二分類概率
multi:softmax – 多分類
multi:softprob – 多分類概率
rank:pairwise – 排序
base_score:預測分數,默認為 0.5。最初每個樣例的預測分數。
eval_metric:評估指標。該指標用在驗證集上,比如回歸任務默認的是 rmse;分類任務默認為 error;排序任務默認為 map。其他常見類型有:
rmse – root mean square error
mae – mean absolute error
logloss – negative log-likelihood
error – binary classification error rate
merror – multiclass classification error rate
mlogloss – multiclass logloss
auc – area under the curve
map – mean average precision
seed:隨機種子,默認為 0,用於產生可復現的結果