XGBoost模型的参数调优
XGBoost算法在实际运行的过程中,可以通过以下要点进行参数调优:
(1)添加正则项:
在模型参数中添加正则项,或加大正则项的惩罚力度,即通过调整加权参数,从而避免模型出现过拟合的情况。
(2)控制决策树的层数:
通过叶子结点数目控制决策树的层数,视乎样本量大小决定,对于10万以下
的样本,一般在1到4之间,而针对更大的样本量,可以尝试更深的决策树层数
发掘隐藏在数据里的一些规律或模式。
(3)设定叶子结点包含的最少样本数目:
从而防止出现过小的叶子结点,降低预测
(4)增加算法迭代次数:
可有效提高训练集的预测精度,但若迭代次数过多容易造成
成过拟合
(5)通过收缩步长和列采样的方法来避免过拟合:
收缩步长即在每一次迭代的过程中,
对拟合的残差乘以一个收缩系数,从而限制当前迭代过程的学习步长;列
采样即本次迭代参与优化的特征维度并不是所有的维度,而是通过采样得到的
维度,更少的选择会让算法不容易将训练集的残差拟合得过好,从而造成过拟
合;
(6)通过交叉验证的方法:
来确定模型参数,从而达到预测准确率与防止过拟合之
间的平衡。交叉验证(Cross-validation)的本质思想是把在某种意义下将原始数
据进行分组,一部分做为训练集,另一部分做为验证集,首先用训练集对分类
器进行训练,再利用验证集来测试训练得到的模型,以此来做为评价分类器的
性能指标。常用的交叉验证方法是K折交叉验证,即将样本分为K个互不相交
的子样本,一个单独的子样本被保留作为验证模型的数据,其他K-1个样本用
来训练。交叉验证重复K次,每个子样本验证一次,平均K次的得到结果来确定最
终模型使用的参数。