XGBoost是非常优秀的梯度提升算法,是目前机器学习算法中最强大的算法之一。
xgboost库的参数和使用:
- n_estimators:树的数量,越高越好,但是会有局限性
- verbosity:是否要显示中间过程
- subsample:抽样比率,数据量较多时降低subsample能够有效防止过拟合
- eta:学习率,不是越高越好,过高会跳过最高值(和神经网络的学习率一样)
- xgb_model :使用哪种弱评估器。可以输入gbtree(梯度提升树),gblinear(线性模型)或dart(dropout树,防止过拟合)。
- objective:损失函数(和深度学习的loss一样)
- alpha,lambda:L1和L2正则化参数,默认为0和1,取值范围为[0, +∞]
- gamma:在树的叶节点上进行进一步分枝所需的最小目标函数减少量,让树停止生长,默认0,取值范围[0, +∞]
- max_depth:树的最大深度,与gamma影响的效果相同
建议的剪枝上的调参顺序是:n_estimators与eta共同调节,gamma或者max_depth,采样和抽样参数(纵向抽样影响更大),最后才是正则化L1,L2的两个参数。