优势
1、正则化
2、并行计算
3、可以处理空值(怎么处理?)
5、不是贪心算法。会先分到最大深度max_depth然后再进行剪枝。可以得到增益最有解。
6、有一个内置的交叉验证
7、可以在原模型上接着训练(fine_tuning? 迁移学习?)
短语参数命名规则。现在在xgboost的module中,有一个sklearn的封装。在这个module中命名规则和sklearn的命名规则一致。
参数
1、基本配置参数
booster: 基本使用gbtree,使用树模型,这个效果一般
silent 通常设为0,方便我们查看每轮的loss
nthread: 多线程,如果不设置,算法会自动查看核心数进行并行计算。
2、Booster参数
eta(learning rate): 学习率 0.01-0.2
min_chile_weight: 子节点的最低sum of weights。 高的时候预防过拟合,太低了容易欠拟合。
max_depth:树的最大深度,太高容易过拟合。通常3-10
gamma: loss阈值,loss降低超过这个阈值,就继续切分
max_delta_step:In maximum delta step we allow each tree’s weight estimation to be.,通常不用
subsample: 通常0.5-1 构建每棵树时,只取一部分样本进行构建,避免过拟合
colsample_bytree:[0.5-1] 特征抽样,
colsample_bylevel : 通常不用
lambda: L2 regularization term on weights (通常不用?)
alpha: L1 regularization term
scale_pos_weight
3、训练参数
objective 二分类使用‘binary:logistic‘ 多分类使用 ‘multi:softmax‘ 直接返回标签, 也可以使用 ‘multi:softprob‘ 或者在训练后使用predict_prob输出类别的概率
eval_metric: 用来评估validation data:rmse ,mae,logloss,error ,merror ,mlogloss,auc
原文:https://www.cnblogs.com/yjybupt/p/12937286.html