xgboost的核心思想(重要关键参数及调优步骤)
xgboost的核心思想(重要关键参数及调优步骤)分裂节点时,损失函数减小值只有大于等于gamma节点才分裂,gamma值越大,算法越保守,越不容易过拟合,但性能就不一定能保证,需要平衡。4. gamma [default=0 alias: min_split_loss]一个子集的所有观察值的最小权重和。如果新分裂的节点的样本权重和小于min_child_weight则停止分裂 。这个可以用来减少过拟合,但是也不能太高,会导致欠拟合。3. max_depth [default=6]树的最大深度,值越大,树越大,模型越复杂 可以用来防止过拟合,典型值是3-10。
本篇对XGBoost主要参数进行解释,方括号内是对应scikit-learn中XGBoost算法模块的叫法。提升参数虽然有两种类型的booster,但是我们这里只介绍tree。因为tree的性能比线性回归好得多,因此我们很少用线性回归。
1. eta [default=0.3 alias: learning_rate]
学习率,可以缩减每一步的权重值,使得模型更加健壮: 典型值一般设置为:0.01-0.2
2. min_child_weight [default=1]
一个子集的所有观察值的最小权重和。如果新分裂的节点的样本权重和小于min_child_weight则停止分裂 。这个可以用来减少过拟合,但是也不能太高,会导致欠拟合。
3. max_depth [default=6]
树的最大深度,值越大,树越大,模型越复杂 可以用来防止过拟合,典型值是3-10。
4. gamma [default=0 alias: min_split_loss]
分裂节点时,损失函数减小值只有大于等于gamma节点才分裂,gamma值越大,算法越保守,越不容易过拟合,但性能就不一定能保证,需要平衡。
5. subsample [default=1]
构建每棵树对样本的采样率,如果设置成0.5,XGBoost会随机选择一半的样本作为训练集。
6. colsample_bytree [default=1]
列采样率,也就是特征采样率。
mae 平均绝对误差
logloss 负对数似然函数值
error 二分类错误率(阈值为0.5)
merror 多分类错误率
mlogloss 多分类logloss损失函数
auc 曲线下面积
参数调优的一般步骤
1. 确定学习速率和提升参数调优的初始值2. max_depth 和 min_child_weight 参数调优3. gamma参数调优4. subsample 和 colsample_bytree 参数优5. 正则化参数alpha调优6. 降低学习速率和使用更多的决策树